|
3.1.1: 2012-03-29 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectnet.sf.basedb.core.BasicItem<D>
net.sf.basedb.core.OwnedItem<ProjectData>
net.sf.basedb.core.Project
public class Project
This class is used to represent projects. A project is used to collect items of particular interest in one place. Users and groups can also be granted access to projects, allowing everyone easy access to shared items within the project.
While working with BASE it is possible to set one project as the active project. This enables some useful functionality in the core:
Shareable item the user creates is automatically
shared to the project.
It is also possible to add an item to other
projects, or remove it completely from all projects. Every member of
a project has a special project permission which gives the highest
permission for accessing items in the project. Normally this permission
is Permission.USE. One person might be assigned
administrator of the project and given higher permissions.
Items may also be given a permission within the project. The normal
is to give full access, but it may also be set to for example
Permission.READ. Then, not even the project administrator
will get more than read permissions to the item. This feature can
for example be used when a project needs to access data from
a user that is not a member of the project.
Role,
Project,
SessionControl.setActiveProject(Project)| Nested Class Summary | |
|---|---|
private static class |
Project.QueryRuntimeFilterImpl
A runtime filter implementation that limits a query to only return projects where the logged in user is a member or owner unless the logged in user has generic read permission. |
| Field Summary | |
|---|---|
private static QueryRuntimeFilter |
RUNTIME_FILTER
This filter will limit a query to only return projects where the logged in user is a member or owner unless the logged in user has generic read permission. |
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 |
| Constructor Summary | |
|---|---|
Project(ProjectData projectData)
|
|
| Method Summary | |
|---|---|
void |
addDefaultItem(BasicItem defaultItem)
Add an item as a default project item. |
(package private) List<BasicData> |
findAllDefaultData(Item itemType,
ItemSubtypeData subtype,
boolean strict)
Find all default items in this project of the given item type (required) and subtype (optional). |
(package private) BasicData |
findDefaultData(DbControl dc,
String subtypeId,
boolean strict)
|
(package private) BasicData |
findDefaultData(Item itemType,
ItemSubtypeData subtype,
boolean strict)
Find a default item in this project of the given item type (required) and subtype (optional). |
List<? extends BasicItem> |
findDefaultItems(DbControl dc,
Item itemType,
boolean strict)
Find the default items of the given item type. |
List<? extends BasicItem> |
findDefaultItems(DbControl dc,
ItemSubtype subtype,
boolean strict)
Find the default (subtypable) items that has the given subtype. |
List<? extends BasicItem> |
findDefaultItemsOfRelatedSubtype(DbControl dc,
ItemSubtype subtype,
Item relatedType)
Utility method for finding default items of the given relatedType. |
(package private) BasicData |
findDefaultRelatedData(DbControl dc,
Subtypable item,
Item relatedItemType,
boolean strict)
|
Set<Permission> |
getAutoPermission()
The permissions to use when automatically sharing new items to the project when it is the active project. |
static Project |
getById(DbControl dc,
int id)
Get a Project item when you know the ID. |
List<BasicItem> |
getDefaultItems(DbControl dc)
Get a list with all default items added to this project. |
List<BasicItem> |
getDefaultItems(DbControl dc,
Item itemType)
Get a list with all default items of a given item type added to this project. |
RawDataType |
getDefaultRawDataType()
Gets the default raw data type for this project. |
String |
getDescription()
Get the description for the item. |
Date |
getEntryDate()
Get the date that the item was registered in the database. |
ItemQuery<Group> |
getGroups()
Get a query that returns the groups that are members of this project. |
ResultList<Shareable> |
getItems(Item itemType,
int firstItem,
int maxItems,
Permission permission,
Set<Include> include)
|
ResultList<Shareable> |
getItems(Set<Item> itemTypes,
int firstItem,
int maxItems,
Permission permission,
Set<Include> include,
Restriction restriction)
Load the items in a project. |
String |
getName()
Get the name of the item. |
static Project |
getNew(DbControl dc)
Create a new Project item. |
Set<Permission> |
getPermissions(Group group)
Get the permissions for a group in this project. |
Set<Permission> |
getPermissions(User user)
Get the permissions for a user in this project. |
PermissionTemplate |
getPermissionTemplate()
Get the permission template that is used to share new items when this project is active. |
(package private) PluginPermission |
getPluginPermissions()
Make sure plug-ins always has at least read access to the active project. |
static ItemQuery<Project> |
getQuery()
Get a query configured to retrieve projects. |
Item |
getType()
Get the type of item represented by the object. |
ItemQuery<User> |
getUsers()
Get a query that returns the users that are members of this project. |
boolean |
hasDefaultForItem(BasicItem item)
Check if the project has a default item that has the same class and subtype as the given item. |
boolean |
hasDefaultOfType(Item itemType,
ItemSubtype subtype)
Check if the project has a default item of the given item type and (optional) subtype. |
(package private) void |
initPermissions(int granted,
int denied)
If the logged in user is a member of this project, read or use permission is granted. |
boolean |
isDefaultItem(BasicItem item)
Check if the given item is a default item in this project. |
boolean |
isRemoved()
Check if the removed flag is set for this item. |
(package private) void |
onBeforeCommit(Transactional.Action action)
Overrides the BasicItem.onBeforeCommit(Transactional.Action)
method. |
void |
removeDefaultItem(BasicItem defaultItem)
Remove an item from the list of default items for this project. |
void |
setAutoPermission(Set<Permission> permissions)
Set the default permissions to use when automatically sharing new item the project when it is the active project. |
void |
setDefaultRawDataType(RawDataType rawDataType)
Sets a raw data type to be used as default for a project. |
void |
setDescription(String description)
Set the description for the item. |
void |
setName(String name)
Set the name of the item. |
void |
setPermissions(Group group,
Set<Permission> permissions)
Grant a group permissions to this project. |
void |
setPermissions(User user,
Set<Permission> permissions)
Grant a user permissions to this project. |
void |
setPermissionTemplate(PermissionTemplate template)
Set the permission template that should be used to share new items when this project is active. |
void |
setRemoved(boolean removed)
Set the removed flag for this item. |
ProjectInfo |
toTransferable(ProjectInfo info)
Transfer the internal state to a transferable object. |
| 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, getSessionControl, getUsingItems, getVersion, hashCode, hasPermission, isDetached, isInDatabase, isUsed, 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 |
| Field Detail |
|---|
public static final Item TYPE
Item.PROJECT,
getType()private static final QueryRuntimeFilter RUNTIME_FILTER
| Constructor Detail |
|---|
Project(ProjectData projectData)
| Method Detail |
|---|
public static Project getNew(DbControl dc)
throws BaseException
Project item.
dc - The DbControl which will be used for
permission checking and database access.
Project item
BaseException - If there is an error
public static Project getById(DbControl dc,
int id)
throws ItemNotFoundException,
PermissionDeniedException,
BaseException
Project 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
Project 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 ItemQuery<Project> getQuery()
ItemQuery objectpublic Item getType()
IdentifiableItem enumeration.
getType in interface Identifiablepublic String getName()
Nameable
getName in interface NameableString with the name of the item
public void setName(String name)
throws PermissionDeniedException,
InvalidDataException
NameableNameable.MAX_NAME_LENGTH constant.
setName in interface Nameablename - 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 NameableString with a description of the item
public void setDescription(String description)
throws PermissionDeniedException,
InvalidDataException
NameableNameable.MAX_DESCRIPTION_LENGTH constant.
setDescription in interface Nameabledescription - 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 boolean isRemoved()
Removable
isRemoved in interface Removable
public void setRemoved(boolean removed)
throws PermissionDeniedException
Removable
setRemoved in interface Removableremoved - 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 Date getEntryDate()
Registered
getEntryDate in interface Registered
void onBeforeCommit(Transactional.Action action)
throws NotLoggedInException,
BaseException
OwnedItemBasicItem.onBeforeCommit(Transactional.Action)
method. It sets the owner of the new item to the logged in user, unless
it has already been specified.
onBeforeCommit in class OwnedItem<ProjectData>NotLoggedInException - If no user is logged in
BaseException - If there is another errorTransactional,
Developer documentation: Transactions,
Developer documentation: Coding rules and guidelines for item classes
void initPermissions(int granted,
int denied)
throws BaseException
initPermissions in class OwnedItem<ProjectData>granted - Permissions that have been granted by the subclassdenied - Permissions that have been denied by the subclass
BaseException - If the permissions couldn't be initialisedPluginPermission getPluginPermissions()
getPluginPermissions in class BasicItem<ProjectData>public Set<Permission> getAutoPermission()
getPermissionTemplate()).
public void setAutoPermission(Set<Permission> permissions)
throws PermissionDeniedException,
InvalidDataException
getPermissionTemplate()).
permissions - The permissions, must not be null or empty
PermissionDeniedException - If the logged in user doesn't
have write permission
InvalidDataException - If the permissions are null or emptypublic PermissionTemplate getPermissionTemplate()
public void setPermissionTemplate(PermissionTemplate template)
template - A permission template, or null to not use any template
public void setPermissions(User user,
Set<Permission> permissions)
throws PermissionDeniedException,
InvalidDataException
Set or null
to remove all permissions for the user.
user - The Userpermissions - The permissions to grant, or null to revoke all permissions
PermissionDeniedException - If the logged in user doesn't have
Permission.WRITE permission for the project
InvalidDataException - If the user is nullPermission
public Set<Permission> getPermissions(User user)
throws InvalidDataException
user - The User for which we want to get the permission
Set containing the granted permissions, or an
empty set if no permissions have been granted
InvalidDataException - If the user is nullPermission
public ItemQuery<User> getUsers()
throws BaseException
BaseException - If the query couldn't be created or configured.User.getQuery()
public void setPermissions(Group group,
Set<Permission> permissions)
throws PermissionDeniedException,
InvalidDataException,
BaseException
Set or null
to remove all permissions for the group. To share to the Group.EVERYONE
group Permission.SHARE_TO_EVERYONE is required.
group - The Grouppermissions - The permissions to grant, or null to revoke all permissions
PermissionDeniedException - If the logged in user doesn't have
Permission.WRITE permission for the project
InvalidDataException - If the group is null
BaseException - If there is another errorPermission
public Set<Permission> getPermissions(Group group)
throws InvalidDataException
group - The Group for which we want to get the permission
EnumSet containing the granted permissions, or an
empty set if no permissions have been granted
InvalidDataException - If the group is nullPermissionpublic ItemQuery<Group> getGroups()
Group.getQuery()
public ResultList<Shareable> getItems(Item itemType,
int firstItem,
int maxItems,
Permission permission,
Set<Include> include)
getItems(Set, int, int, Permission, Set, Restriction)
public ResultList<Shareable> getItems(Set<Item> itemTypes,
int firstItem,
int maxItems,
Permission permission,
Set<Include> include,
Restriction restriction)
itemTypes - Limit the list to only return items of the specified types,
use null or an empty set to return items of all typesfirstItem - The index of the first item to return (0-based)maxItems - The maximum number of items to return, or 0 to return all itemspermission - The permission the logged in user must have on the iteminclude - Options for which items that should be included/excluded from the
result, or null to include all non-removed itemsrestriction - An optional restriction that is applied to the
queries to further reduce the list
SessionControl.setActiveProject(Project)public void addDefaultItem(BasicItem defaultItem)
defaultItem - The item to make defaultpublic void removeDefaultItem(BasicItem defaultItem)
defaultItem - The item to remove
public List<? extends BasicItem> findDefaultItems(DbControl dc,
Item itemType,
boolean strict)
dc - A DbControl for database accessitemType - The type of item to find
public List<? extends BasicItem> findDefaultItems(DbControl dc,
ItemSubtype subtype,
boolean strict)
dc - A DbControl for database accesssubtype - The requested subtypestrict - TRUE to strictly match the subtype, FALSE to also
search for items without subtype
public List<? extends BasicItem> findDefaultItemsOfRelatedSubtype(DbControl dc,
ItemSubtype subtype,
Item relatedType)
findDefaultItems(DbControl, Item, boolean)
was called with strict=true (eg. it will only find items that doesn't have a subtype).
If a related subtype is found this method behaves as if
findDefaultItems(DbControl, ItemSubtype, boolean)
was called with the related subtype and strict=false.
dc - A DbControl for database accesssubtype - The main subtyperelatedType - The related item type that we are interested in
public List<BasicItem> getDefaultItems(DbControl dc)
dc - A DbControl for database access
public List<BasicItem> getDefaultItems(DbControl dc,
Item itemType)
dc - A DbControl for database accessitemType - The type of the default item or null to return all default items
public boolean isDefaultItem(BasicItem item)
item - The item to check
public boolean hasDefaultOfType(Item itemType,
ItemSubtype subtype)
itemType - The item type to look forsubtype - The subtype to look for, or null to ignore subtypes
public boolean hasDefaultForItem(BasicItem item)
item - The item to check
BasicData findDefaultRelatedData(DbControl dc,
Subtypable item,
Item relatedItemType,
boolean strict)
BasicData findDefaultData(DbControl dc,
String subtypeId,
boolean strict)
BasicData findDefaultData(Item itemType,
ItemSubtypeData subtype,
boolean strict)
If more than one item matches the critera, the first one found is returned.
itemType - The main item type of the item we are looking forsubtype - The subtype of the item we are looking for (optional)strict - TRUE if the subtype must match
List<BasicData> findAllDefaultData(Item itemType,
ItemSubtypeData subtype,
boolean strict)
itemType - The main item type of the item we are looking forsubtype - The subtype of the item we are looking for (optional)strict - TRUE if the subtype must matchpublic RawDataType getDefaultRawDataType()
RawDataType objectpublic void setDefaultRawDataType(RawDataType rawDataType)
rawDataType is Null
rawDataType - the RawDataType to use as default.public ProjectInfo toTransferable(ProjectInfo info)
ToTransferable
toTransferable in interface ToTransferable<ProjectInfo>info - The transferable object to use
|
3.1.1: 2012-03-29 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||