Package com.iizix.urn

Class URNResource

java.lang.Object
com.iizix.urn.URN
com.iizix.urn.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 Details

    • type

      protected final URNResourceType type
      The resource type.
    • id

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

    • URNResource

      protected URNResource(String urnString, URNResourceType type, 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.
  • Method Details

    • getType

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

      public final 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 String getURL() throws 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:
      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 URNResource.
      Overrides:
      isURNResource in class URN
      Returns:
      Always true as the instance is always a URNResource type.
    • asURNResource

      public final URNResource asURNResource()
      Gets this instance as URNResource type.
      Overrides:
      asURNResource in class URN
      Returns:
      The URNResource 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(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 String getParamString()
      Gets the parameter string for the URN.toString() method.
      Specified by:
      getParamString in class URN
      Returns:
      The parameter string, always non-null.