|
2.17.2: 2011-06-17 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.basedb.core.BasicItem<D> net.sf.basedb.core.OwnedItem<D> net.sf.basedb.core.SharedItem<DirectoryData> net.sf.basedb.core.Directory
public class Directory
This is used to represent directory items. Directories can
be used to group File
:s into more manageable
compartments. Directories can be organised into an arbitrarily
deep tree-like structure. For each directory no two sub-directories
may have the same name, and no two files may have the same name.
However, it is legal for a file to have the same name as a directory.
Field Summary | |
---|---|
static String |
HOME
The id for the Directory item representing
the home directory. |
static String |
ROOT
The id for the Directory item representing
the root. |
static String |
TEMPLATE
The id for the Directory item representing
the template directory. |
static Item |
TYPE
The type of item represented by this class. |
Fields inherited from interface net.sf.basedb.core.Nameable |
---|
MAX_DESCRIPTION_LENGTH, MAX_NAME_LENGTH |
Fields inherited from interface net.sf.basedb.core.SystemItem |
---|
MAX_SYSTEM_ID_LENGTH |
Constructor Summary | |
---|---|
Directory(DirectoryData data)
Creates a new directory item from the given data. |
Method Summary | |
---|---|
static void |
copySubdirectories(DbControl dc,
Directory from,
Directory to,
User owner)
This method copies a directory strucure to the destination directory. |
static Directory |
createHomeDirectory(DbControl dc,
User user,
boolean copyTemplate)
Creates a homedirectory for a specified user. |
static boolean |
exists(DbControl dc,
Directory directory,
String subdirectoryName)
Checks if a subdirectory with the specified name exists in a directory. |
boolean |
getAutoCompress()
If files that are uploaded to this directory should be compressed or not. |
boolean |
getAutoShare()
If new files and subdirectories that are created in this directory automatically should be shared wtih the same permissions as this directory. |
static Directory |
getById(DbControl dc,
int id)
Get a Directory item when you know the ID. |
static Directory |
getByPath(DbControl dc,
Path path)
Get a Directory item when you know the path. |
String |
getDescription()
Get the description for the item. |
ItemQuery<File> |
getFiles()
Get a query that return all files in this directory. |
static int |
getIdFromPath(DbControl dc,
Path path)
Get the id of a directory when you know the path. |
String |
getName()
Get the name of the item. |
static Directory |
getNew(DbControl dc,
Directory parent)
Create a new Directory item. |
static Directory |
getNew(DbControl dc,
Path path)
Create a new or existing Directory from a path. |
Directory |
getParent()
Get the parent directory of this directory. |
Path |
getPath()
Get the complete path to this directory. |
static ItemQuery<Directory> |
getQuery()
Get a query configured to retrieve directories. |
ItemQuery<Directory> |
getSubDirectories()
Get a query that return subdirectories of this directory. |
String |
getSystemId()
Get the system id for the item. |
Item |
getType()
Get the type of item represented by the object. |
Set<ItemProxy> |
getUsingItems()
Get all: File :s in this directory
Sub-Directory :s in this directory
User :s having this directory as their home-directory
Experiment :s having this directory as the plugin directory
|
(package private) void |
initPermissions(int granted,
int denied)
Grant permissions according to the item and project keys. |
boolean |
isHomeDirectory()
Returns TRUE if this directory is a subdirectory to HOME . |
boolean |
isRemoved()
Check if the removed flag is set for this item. |
boolean |
isRootDirectory()
Returns TRUE if this directories parent equals null and therfore is a root directory. |
boolean |
isSystemItem()
Check if the item is a system item or not. |
boolean |
isUsed()
Check that: no files are in the directory no subdirectories are in the directory no user has this directory as the home directory |
Directory |
newSubDirectory()
Create a new subdirectory to this directory. |
void |
setAutoCompress(boolean autoCompress)
Set if files of should automatically be compressed when they are uploaded to this directory. |
void |
setAutoShare(boolean autoShare)
Set if new files and subdirectories of should automatically be shared with the same permissions as this directory. |
void |
setDescription(String description)
Set the description for the item. |
void |
setName(String name)
Set the name of the item. |
void |
setParent(Directory parent)
Set the parent directory of this directory. |
void |
setRemoved(boolean removed)
Set the removed flag for this item. |
Methods inherited from class net.sf.basedb.core.SharedItem |
---|
getItemKey, getProjectKey, isShared, onBeforeCommit, setItemKey, setProjectKey, toTransferable |
Methods inherited from class net.sf.basedb.core.OwnedItem |
---|
getOwner, isOwner, setOwner, takeOwnership, toTransferable |
Methods inherited from class net.sf.basedb.core.BasicItem |
---|
addUsingItems, addUsingItems, checkPermission, equals, getData, getDbControl, getId, getPermissions, getPluginPermissions, getSessionControl, getVersion, hashCode, hasPermission, isDetached, isInDatabase, onAfterCommit, onAfterInsert, onRollback, setDbControl, setProjectDefaults, toString, toTransferable, validate |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface net.sf.basedb.core.Identifiable |
---|
getId, getVersion |
Methods inherited from interface net.sf.basedb.core.AccessControlled |
---|
checkPermission, getPermissions, hasPermission |
Methods inherited from interface net.sf.basedb.core.Ownable |
---|
getOwner, isOwner, setOwner, takeOwnership |
Field Detail |
---|
public static final Item TYPE
Item.DIRECTORY
,
getType()
public static final String ROOT
Directory
item representing
the root.
public static final String HOME
Directory
item representing
the home directory. The home directory is the parent directory for
the user's home directories.
public static final String TEMPLATE
Directory
item representing
the template directory. The template directory is used to create
the directory structure for new users.
Constructor Detail |
---|
Directory(DirectoryData data)
data
- the data.Method Detail |
---|
public static Directory getNew(DbControl dc, Directory parent) throws BaseException
Directory
item.
dc
- The DbControl
which will be used for
permission checking and database access.parent
- The parent directory for this directory. It cannot be
null
Directory
item
PermissionDeniedException
- This exception is thrown if
the logged in user doesn't have CREATE
permission for this type of items
BaseException
- This exception is thrown if there is another
errorpublic static Directory getNew(DbControl dc, Path path)
Directory
from a path. Every
directory that doesn't exist is created.
NOTE! If the directory given by the path already exists, the existing directory object is returned. Since there is existing code that expects this behavior we will not change the implementation to throw an exception which might have been expected.
dc
- The DbControl
which will be used for
permission checking and database accesspath
- The path to create
public static Directory getById(DbControl dc, int id) throws ItemNotFoundException, PermissionDeniedException, BaseException
Directory
item when you know the ID.
dc
- The DbControl
which will be used for
permission checking and database access.id
- The ID of the item to load
Directory
item
ItemNotFoundException
- If an item with the specified ID is not found
PermissionDeniedException
- If the logged in user doesn't have
Permission.READ
permission to the item
BaseException
- If there is another errorpublic static Directory getByPath(DbControl dc, Path path) throws ItemNotFoundException, PermissionDeniedException, BaseException
Directory
item when you know the path.
dc
- The DbControl
which will be used for
permission checking and database access.path
- The path to the directory to load
Directory
item
ItemNotFoundException
- If an item with the specified path is not found
PermissionDeniedException
- If the logged in user doesn't have
Permission.READ
permission to the item
BaseException
- If there is another errorpublic static int getIdFromPath(DbControl dc, Path path) throws BaseException
dc
- The DbControl
which will be used for
permission checking and database access.path
- The path to the directory to load
Directory
item
ItemNotFoundException
- If an item with the specified path is not found
BaseException
- If there is another errorpublic static boolean exists(DbControl dc, Directory directory, String subdirectoryName) throws BaseException
dc
- The DbControl
which will be used for
permission checking and database access.directory
- The directory to check insubdirectoryName
- The name of the subdirectory to look for
BaseException
- If there is an errorpublic static Directory createHomeDirectory(DbControl dc, User user, boolean copyTemplate) throws PermissionDeniedException, BaseException
HOME
.
dc
- The DbControl
which will be used for
permission checking and database access.user
- The user whose home directry should be created.copyTemplate
- TRUE if the new home directory shold copy the directory
structure in the template directory.
PermissionDeniedException
- If the logged in user doesn't have
Permission.WRITE
or Permission.CREATE
permission
to the item.
BaseException
- If there is another error.public static void copySubdirectories(DbControl dc, Directory from, Directory to, User owner) throws BaseException
dc
- The DbControl
which will be used for
permission checking and database access.from
- The source directory to copyto
- The destination directory where the new directory structure is createdowner
- The owner of the destination directory
BaseException
- If there is an errorpublic static ItemQuery<Directory> getQuery()
ItemQuery
objectpublic String getName()
Nameable
getName
in interface Nameable
String
with the name of the itempublic void setName(String name) throws PermissionDeniedException, InvalidDataException
Nameable
Nameable.MAX_NAME_LENGTH
constant.
setName
in interface Nameable
name
- The new name for the item
PermissionDeniedException
- If the logged in user doesn't
have write permission
InvalidDataException
- If the name is null or longer
than specified by the Nameable.MAX_NAME_LENGTH
constantpublic String getDescription()
Nameable
getDescription
in interface Nameable
String
with a description of the itempublic void setDescription(String description) throws PermissionDeniedException, InvalidDataException
Nameable
Nameable.MAX_DESCRIPTION_LENGTH
constant.
setDescription
in interface Nameable
description
- The new description for the item
PermissionDeniedException
- If the logged in user doesn't
have write permission
InvalidDataException
- If the description longer
than specified by the Nameable.MAX_DESCRIPTION_LENGTH
constantpublic Item getType()
Identifiable
Item
enumeration.
getType
in interface Identifiable
public boolean isRemoved()
Removable
isRemoved
in interface Removable
public void setRemoved(boolean removed) throws PermissionDeniedException
Removable
setRemoved
in interface Removable
removed
- TRUE if the item should be flagged as removed,
FALSE otherwise
PermissionDeniedException
- If the logged in user doesn't
have Permission.DELETE
permission for setting the flag
to TRUE or Permission.WRITE
permission for setting the
flag to FALSEpublic String getSystemId()
SystemItem
getSystemId
in interface SystemItem
public boolean isSystemItem()
SystemItem
isSystemItem
in interface SystemItem
public boolean isUsed() throws BaseException
isUsed
in class BasicItem<DirectoryData>
BaseException
- If there is an error.BasicItem.getUsingItems()
public Set<ItemProxy> getUsingItems()
File
:s in this directory
Directory
:s in this directory
User
:s having this directory as their home-directory
Experiment
:s having this directory as the plugin directory
getUsingItems
in class BasicItem<DirectoryData>
BasicItem.addUsingItems(Set, Item, org.hibernate.Query)
void initPermissions(int granted, int denied) throws BaseException
SharedItem
initPermissions
in class SharedItem<DirectoryData>
granted
- Permissions that have been granted by the subclassdenied
- Permissions that have been denied by the subclass
BaseException
- If the permissions couldn't be initialisedpublic Directory getParent() throws PermissionDeniedException, BaseException
Directory
, or null if
this directory is a root directory
PermissionDeniedException
- This exception is thrown if
the logged in user doesn't have READ
permission to the items
BaseException
- If there is another errorpublic void setParent(Directory parent) throws PermissionDeniedException, InvalidDataException
parent
- The new parent directory. Cant be null.
PermissionDeniedException
- If the logged in user doesn't
have Permission.WRITE
permission to this directory or
Permission.USE
permission to the parent directory
permission for the parent directory
InvalidDataException
- If parent is null or is a subdirectory
to this directorypublic boolean getAutoCompress()
public void setAutoCompress(boolean autoCompress) throws PermissionDeniedException
autoCompress
- TRUE to enable auto-compression
PermissionDeniedException
- If the logged in user doesn't have
write permissionpublic boolean getAutoShare()
public void setAutoShare(boolean autoShare) throws PermissionDeniedException
autoShare
- TRUE to enable auto-sharing
PermissionDeniedException
- If the logged in user doesn't have
write permissionpublic boolean isRootDirectory()
public boolean isHomeDirectory()
HOME
.
public Path getPath()
Path
objectpublic Directory newSubDirectory() throws PermissionDeniedException, BaseException
Directory
item
PermissionDeniedException
- This exception is thrown if
the logged in user doesn't have CREATE
permission for directory items, or WRITE
permission for this directory
BaseException
- This exception is thrown if there is another
errorpublic ItemQuery<Directory> getSubDirectories()
ItemQuery
objectpublic ItemQuery<File> getFiles()
ItemQuery
object
|
2.17.2: 2011-06-17 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |