Class StreamContentLocation

  • All Implemented Interfaces:
    ContentEntity, ContentLocation

    public class StreamContentLocation
    extends java.lang.Object
    implements ContentLocation
    A content location that wraps around a single stream. The location will reject any attempts to create new entities or to access entities other than the single entity.
    Author:
    Thomas Morgner
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ContentItem createItem​(java.lang.String name)
      Creates a new data item in the current location.
      ContentLocation createLocation​(java.lang.String name)
      This method always throws an exception, as stream-repositories cannot create sub-locations.
      boolean delete()
      Stream-repositories do not support the deletion of entries.
      boolean exists​(java.lang.String name)
      Checks, whether an content entity with the given name exists in this content location.
      java.lang.Object getAttribute​(java.lang.String domain, java.lang.String key)
      Stream-Repositories do not support attributes.
      java.lang.Object getContentId()
      Returns a unique identifier.
      ContentEntity getEntry​(java.lang.String name)
      Returns the content entity with the given name.
      java.lang.String getName()
      Returns the generic name of this location.
      ContentLocation getParent()
      Returns a reference to the parent location.
      Repository getRepository()
      Returns the current repository, to which tis entity belongs.
      ContentEntity[] listContents()
      Returns all content entities stored in this content-location.
      boolean setAttribute​(java.lang.String domain, java.lang.String key, java.lang.Object value)
      Stream-Repositories do not support attributes.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StreamContentLocation

        public StreamContentLocation​(StreamRepository repository)
        Creates a new stream-location. There can be only one location per stream-repository.
        Parameters:
        repository - the repository for which a location is created.
    • Method Detail

      • listContents

        public ContentEntity[] listContents()
                                     throws ContentIOException
        Returns all content entities stored in this content-location. This returns a array that has at most one entry. If the repository is a write-only repository and no item has been created yet, the method returns an empty array.
        Specified by:
        listContents in interface ContentLocation
        Returns:
        the content entities for this location.
        Throws:
        ContentIOException - if an repository error occured.
      • getEntry

        public ContentEntity getEntry​(java.lang.String name)
                               throws ContentIOException
        Returns the content entity with the given name. If the entity does not exist, an Exception will be raised.
        Specified by:
        getEntry in interface ContentLocation
        Parameters:
        name - the name of the entity to be retrieved.
        Returns:
        the content entity for this name, never null.
        Throws:
        ContentIOException - if an repository error occured.
      • createItem

        public ContentItem createItem​(java.lang.String name)
                               throws ContentCreationException
        Creates a new data item in the current location. This method must never return null. This method will fail if an entity with the same name exists in this location.
        Specified by:
        createItem in interface ContentLocation
        Parameters:
        name - the name of the new entity.
        Returns:
        the newly created entity, never null.
        Throws:
        ContentCreationException - if the item could not be created.
      • exists

        public boolean exists​(java.lang.String name)
        Checks, whether an content entity with the given name exists in this content location.
        Specified by:
        exists in interface ContentLocation
        Parameters:
        name - the name of the new entity.
        Returns:
        true, if an entity exists with this name, false otherwise.
      • getName

        public java.lang.String getName()
        Returns the generic name of this location.
        Specified by:
        getName in interface ContentEntity
        Returns:
        the name.
      • getContentId

        public java.lang.Object getContentId()
        Returns a unique identifier. This can be canonical filename or a database key. It must be guaranteed that within the same repository the key will be unique.
        Specified by:
        getContentId in interface ContentEntity
        Returns:
        the unique content ID.
      • getAttribute

        public java.lang.Object getAttribute​(java.lang.String domain,
                                             java.lang.String key)
        Stream-Repositories do not support attributes.
        Specified by:
        getAttribute in interface ContentEntity
        Parameters:
        domain - the attribute domain.
        key - the name of the attribute.
        Returns:
        always null.
      • setAttribute

        public boolean setAttribute​(java.lang.String domain,
                                    java.lang.String key,
                                    java.lang.Object value)
        Stream-Repositories do not support attributes.
        Specified by:
        setAttribute in interface ContentEntity
        Parameters:
        domain - the attribute domain.
        key - the attribute name
        value - the new attribute value.
        Returns:
        always false.
      • getParent

        public ContentLocation getParent()
        Returns a reference to the parent location. If this entity represents the root directory, this method will return null.
        Specified by:
        getParent in interface ContentEntity
        Returns:
        the parent or null, if this is the root-directory.
      • getRepository

        public Repository getRepository()
        Returns the current repository, to which tis entity belongs.
        Specified by:
        getRepository in interface ContentEntity
        Returns:
        the repository.
      • delete

        public boolean delete()
        Stream-repositories do not support the deletion of entries.
        Specified by:
        delete in interface ContentEntity
        Returns:
        always false.