2.17.2: 2011-06-17

net.sf.basedb.core
Class ChildItem<D extends BasicData>

java.lang.Object
  extended by net.sf.basedb.core.BasicItem<D>
      extended by net.sf.basedb.core.ChildItem<D>
All Implemented Interfaces:
AccessControlled, Identifiable
Direct Known Subclasses:
ArrayDesignBlock, ArrayDesignPlate, BioAssay, BioAssaySet, BioMaterialEvent, BioPlateEventParticipant, BioWell, DataCube, DataCubeColumn, DataCubeExtraValue, DataCubeFilter, DataCubeLayer, ExtraValue, Help, Image, JobAgentSettings, PlateEvent, PlateEventType, SpotImages, Transformation, VirtualDb, Well

abstract class ChildItem<D extends BasicData>
extends BasicItem<D>

An abstract base class for all items which are child items to a Shareable parent item. This class implements the initPermissions(int, int) method and sets the permissions for the child item based on the permissions for the parent item.

If the logged in user has read permission for the parent, READ permission is granted. If the logged in user has write permission for the parent, WRITE, DELETE and CREATE permission is granted.

This class should only be used if the parent item itself hasn't overridden the initPermissions method, since that method is never called. This class can be used even if the immediate parent isn't a shareable item, as long as it is possible for a child item to follow a chain of association to the actual parent where the permissions are set. For example BioAssay --> BioAssaySet --> Experiment.

Version:
2.0
Author:
Nicklas
See Also:
Shareable
Last modified
$Date: 2009-04-06 14:52:39 +0200 (Mon, 06 Apr 2009) $

Constructor Summary
ChildItem(D data)
           
 
Method Summary
(package private)  Permission getPermissionForWriteDeleteAndCreate()
          Get the permission that is required on the parent item that gives write, delete and create permission on the child item.
(package private)  PluginPermission getPluginPermissions()
           
(package private) abstract  SharedData getSharedParent()
          Get the shareable parent item of this child item.
(package private)  void initPermissions(int granted, int denied)
          If the logged in user has read permission for the parent, read permission is granted.
 
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, onBeforeCommit, 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
getType
 

Constructor Detail

ChildItem

ChildItem(D data)
Method Detail

initPermissions

void initPermissions(int granted,
                     int denied)
               throws BaseException
If the logged in user has read permission for the parent, read permission is granted. If the logged in user has the permission returned by the getPermissionForWriteDeleteAndCreate() method for the parent, WRITE, DELETE and CREATE permission is granted.

Overrides:
initPermissions in class BasicItem<D extends BasicData>
Parameters:
granted - Permissions that have been granted by the subclass
denied - Permissions that have been denied by the subclass
Throws:
BaseException - If the permissions couldn't be initialised

getPluginPermissions

PluginPermission getPluginPermissions()
Overrides:
getPluginPermissions in class BasicItem<D extends BasicData>

getPermissionForWriteDeleteAndCreate

Permission getPermissionForWriteDeleteAndCreate()
Get the permission that is required on the parent item that gives write, delete and create permission on the child item. The defult permission is write.


getSharedParent

abstract SharedData getSharedParent()
Get the shareable parent item of this child item. This is used by the initPermissions(int, int) method to calculate the logged in user's permissions for the child item.

Returns:
The parent item

2.17.2: 2011-06-17