Class StreamContentLocation

  • All Implemented Interfaces:
    ContentEntity, ContentLocation

    public class StreamContentLocation
    extends 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
    • 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​(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​(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​(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 String getName()
        Returns the generic name of this location.
        Specified by:
        getName in interface ContentEntity
        Returns:
        the name.
      • getContentId

        public 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 Object getAttribute​(String domain,
                                   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​(String domain,
                                    String key,
                                    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.