org.entityfs
Interface DirectoryView
- All Superinterfaces:
- Comparable<EntityView>, Deletable, EntityAcceptingEntityView<DirectoryView>, EntityHolder, EntityListable, EntityRepository, EntityView, Iterable<EntityView>, Lockable, Named, Observable, ReadLockable, ReadWriteLockable, ViewCapable<DirectoryView>, WriteLockable
- All Known Subinterfaces:
- Directory, DirectoryImplementation, DirectoryViewImplementation
- All Known Implementing Classes:
- DirectoryImpl, DirectoryViewImpl
public interface DirectoryView
- extends EntityAcceptingEntityView<DirectoryView>, EntityRepository
A DirectoryView is a view of a directory that uses a
Filter to hide child entities that does
not pass the filter. A directory can have any number of views associated with
it and views can also be nested.
The directory view is Iterable over its child entities. The iterator method requires execute access to and a read lock for the
directory. To iterate recursively over all entities in the directory's
subtree, use one of the iterator methods in
Directories.
A directory view is Observable for updates. It can send the following
events:
When registering an EntityObserver on a view rather on an entity, the
view puts itself as the sender of the events. If an event contain child
entities (is a ChildEntitiesEvent), all included child entities are
filtered and views with the same filter rules as the observed view are
created for ViewCapable child entities.
Read more about views in the EntityView documentation.
- Since:
- 1.0
- Author:
- Karl Gustafsson
- See Also:
Entities,
EntityAcceptingEntities,
Directories,
PollingDirectoryMonitorer- In_jar:
- entityfs-core
| Methods inherited from interface org.entityfs.EntityView |
canRead, canWrite, copy, copy, copyAttributes, createLock, disconnect, getCapability, getFileSystem, getLastModified, getParent, getType, getViewed, getViewedEntity, isConnected, isRootDirectory, isValid, lock, rename, setLastModified, supportsCapability, touch |
newEntity
EntityView newEntity(EntityType et,
String name,
Object data)
throws EntityFoundException,
IllegalArgumentException,
IllegalStateException,
WriteLockRequiredException,
AccessDeniedException
- Create a new child entity in the directory. If this is called on a
directory view, and the created entity is
ViewCapable, a view
with the same filter instances as the directory view is returned.
Directories also contains methods for creating
child entities.
- Parameters:
et - The type of the entity to create.name - The name of the new entity.data - Entity type-specific data needed to create the entity. Most
entity types (files and directories) happily accept null.
- Returns:
- The new entity. If the entity is
ViewCapable, it inherits
the view settings of this directory view. The result can be casted to the
entity interface specified by the supplied entity type, et. For
instance to an EFile if et is an ETFile or to a
DirectoryView if et is an ETDirectory.
- Throws:
EntityFoundException - If an entity with the same name already
exists in the directory.
IllegalArgumentException - If the entity name is invalid in the
file system.
IllegalStateException - If the view is disconnected.
WriteLockRequiredException - If the client does not have a write
lock for the directory.
AccessDeniedException - If the client does not have write access to
the directory.- Locks_required:
- A write lock.
- Permissions_required:
- Write access.
- Generates_events:
ChildEntityAddedEvent for this., EntityModifiedEvent for this., NewEntityEvent for the created entity., ChildEntityModifiedEvent for this's
parent directory.
getUniqueEntityName
String getUniqueEntityName(String prefix,
String suffix)
throws IllegalArgumentException,
IllegalStateException,
ReadLockRequiredException,
AccessDeniedException
- Get a unique entity name with the given prefix and suffix in the
directory. The entity name is unique in the directory (not only in the
view) at the time of calling.
- Parameters:
prefix - The prefix string to be used in generating the entity name.
It must contain at least three characters.suffix - The file name suffix, for instance .tmp.
- Returns:
- A unique entity name.
- Throws:
IllegalArgumentException - If the prefix contains fewer than three
characters.
IllegalStateException - If the view is disconnected.
ReadLockRequiredException - If the client does not have a read lock
for the directory.
AccessDeniedException - If the client does not have read access to
the directory.- Locks_required:
- A read lock. (Use a write lock if an entity with the
unique name should be created after calling this method to be certain
that the name is still unique by the time that the entity is created.)
- Permissions_required:
- Read access