Package com.iizix.urn

Class URNResource

  • Direct Known Subclasses:
    FileURN

    public abstract class URNResource
    extends URN
    The URN resource contains information of for local server environment from where it was originated. Thus the final URL could vary depending on the server and/or cluster configuration.

    Resource URN's are encoded in IIZI as:

    urn:nssPrefix:type:identifier

    where the valid nssPrefix currently values are:

    and types are (in lower case):

    • {@link URNResourceType#COMMON_DATABASE_PERSISTENT}:
      Common server files stored in database (cached on the server even for starts/stops),
    • {@link URNResourceType#COMMON_PERSISTENT}:
      Common server files (persists when server starts/stops),
    • {@link URNResourceType#COMMON_VOLATILE}:
      Common server files (volatile when server starts/stops),
    • {@link URNResourceType#EXTERNAL_FILES}:
      External files (typically accessible using the 'file:' protocol),
    • {@link URNResourceType#APPLICATION_DATABASE_PERSISTENT}:
      Application files in database,
    • {@link URNResourceType#APPLICATION_PERSISTENT}:
      Application files,
    • {@link URNResourceType#APPLICATION_VOLATILE}:
      Application files,
    • {@link URNResourceType#GROUP_DATABASE_FILES}:
      Private user group files stored in database (cached on server),
    • {@link URNResourceType#USER_FILES}:
      Private user files,
    • {@link URNResourceType#USER_DATABASE_FILES}:
      Private user files stored in database (cached on server),
    • {@link URNResourceType#APP_SESSION}:
      Application session (private) files,
    • {@link URNResourceType#CLIENT_SESSION}:
      Client session (private) files.

    The identifier is file identifier in the type identifier.

    Author:
    Christopher Mindus
    • Field Summary

      Fields 
      Modifier and TypeFieldDescription
      protected java.lang.Objectid
      The resource ID depending on the type: Long or String.
      protected URNResourceTypetype
      The resource type.
    • Constructor Summary

      Constructors 
      ModifierConstructorDescription
      protectedURNResource​(java.lang.String urnString, URNResourceType type, java.lang.Object id)
      Constructs a URNResource from a string that has contains the media type followed by Base64 encoded data.
    • Field Detail

      • id

        protected final java.lang.Object id
        The resource ID depending on the type: Long or String.
    • Constructor Detail

      • URNResource

        protected URNResource​(java.lang.String urnString,
                              URNResourceType type,
                              java.lang.Object id)
        Constructs a URNResource from a string that has contains the media type followed by Base64 encoded data.
        Parameters:
        urnString - The URN string formatted the "IIZI" way.
        type - The URN resource type.
        id - An ID for the URN.
        Throws:
        ValueException - If there is a problem with the URN parsing, e.g. the string doesn't start with "urn:".
        java.lang.NullPointerException - If the urnString, type or id is null.
    • Method Detail

      • getType

        public final URNResourceType getType()
        Gets the resource type.
        Returns:
        The resource type.
      • getID

        public final java.lang.Object getID()
        Returns the ID used for the resource.
        Returns:
        The ID is of type Long for ID's of a User ID, Group or a String for a User ID or Application ID. null is returned when the URN resource is not related to either a user profile or an application.
      • getURL

        public java.lang.String getURL()
                                throws java.io.IOException
        Gets the URL of this resource relative the current web server.
        Specified by:
        getURL in class URN
        Returns:
        The URL relative the current server, if based on the current server.
        Throws:
        java.io.IOException - If there was a problem retrieving the file or an SQL error.
      • isURNResource

        public final boolean isURNResource()
        Checks if this URN instance is a .
        Overrides:
        isURNResource in class URN
        Returns:
        Always true as the instance is always a type.
      • asURNResource

        public final URNResource asURNResource()
        Gets this instance as type.
        Overrides:
        asURNResource in class URN
        Returns:
        The instance, always non-null.
      • isImageTargetSupported

        public boolean isImageTargetSupported()
        Checks if this instance supports returning the image target interface {@link IImageTarget}.
        Overrides:
        isImageTargetSupported in class URN
        Returns:
        true if the URN supports the image target interface, false (default) otherwise.
      • getImageTarget

        public IImageTarget getImageTarget()
        Gets the image target interface for this URN instance, if supported.
        Overrides:
        getImageTarget in class URN
        Returns:
        The image target interface, or null (default) if not supported.
      • hashCode

        public int hashCode()
        Gets the hash code of the instance. The original URN string is not used for this hash code, rather the URN 'NID' and the parameters.
        Specified by:
        hashCode in class URN
        Returns:
        A hash code value.
      • equals

        public boolean equals​(java.lang.Object obj)
        Checks if another URN is equal to this one. The original URN string is not used for this comparison, rather the URN 'NID' and the parameters.
        Specified by:
        equals in class URN
        Parameters:
        obj - The other object to compare with.
        Returns:
        true if the URN's are equal, false otherwise.
      • getParamString

        public java.lang.String getParamString()
        Gets the parameter string for the URN.toString() method.
        Specified by:
        getParamString in class URN
        Returns:
        The parameter string, always non-null.