3.0.4: 2012-03-05

net.sf.basedb.core
Class BioMaterial<D extends BioMaterialData>

java.lang.Object
  extended by net.sf.basedb.core.BasicItem<D>
      extended by net.sf.basedb.core.OwnedItem<D>
          extended by net.sf.basedb.core.SharedItem<D>
              extended by net.sf.basedb.core.CommonItem<D>
                  extended by net.sf.basedb.core.AnnotatedItem<D>
                      extended by net.sf.basedb.core.BioMaterial<D>
All Implemented Interfaces:
AccessControlled, Annotatable, Identifiable, Nameable, Ownable, Removable, Shareable, Subtypable
Direct Known Subclasses:
BioSource, MeasuredBioMaterial

public abstract class BioMaterial<D extends BioMaterialData>
extends AnnotatedItem<D>
implements Subtypable

This is the base class for for the three types of biomaterials: BioSource, Sample and Extract.

Version:
2.0
Author:
Nicklas
Last modified
$Date: 2011-06-22 16:03:17 +0200 (Wed, 22 Jun 2011) $

Field Summary
static int MAX_EXTERNAL_ID_LENGTH
          The maximum length of the external id that can be stored in the database.
 
Fields inherited from interface net.sf.basedb.core.Nameable
MAX_DESCRIPTION_LENGTH, MAX_NAME_LENGTH
 
Constructor Summary
BioMaterial(D bioMaterialData)
           
 
Method Summary
abstract  long countChildren(boolean pooled)
          Count the number of already existing children to this biomaterial.
static BioMaterial getById(DbControl dc, int id)
          Get a biomaterial item when you know the id.
 SpecialQuery<BioMaterialEventSource> getChildCreationEvents()
          Get a query returning all events where this biomaterial has been used as a source item.
 String getExternalId()
          Get the external id of the biomaterial.
 ItemSubtype getItemSubtype()
          Get the subtype of the item.
(package private)  void onBeforeCommit(Transactional.Action action)
          On delete action: issue an update to decrease the size of all BioMaterialList:s this is a member of.
 void setExternalId(String externalId)
          Set the external id of the biomaterial.
 void setItemSubtype(ItemSubtype subtype)
          Set the subtype on the item.
 
Methods inherited from class net.sf.basedb.core.AnnotatedItem
getAnnotationSet, getProtocol, isAnnotated, removeAnnotations, toTransferable
 
Methods inherited from class net.sf.basedb.core.CommonItem
getDescription, getName, isRemoved, setDescription, setName, setRemoved, toTransferable
 
Methods inherited from class net.sf.basedb.core.SharedItem
getItemKey, getProjectKey, initPermissions, isShared, 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, 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, getType, getVersion
 
Methods inherited from interface net.sf.basedb.core.AccessControlled
checkPermission, getPermissions, hasPermission
 
Methods inherited from interface net.sf.basedb.core.Annotatable
getAnnotatableParents
 
Methods inherited from interface net.sf.basedb.core.Ownable
getOwner, isOwner, setOwner, takeOwnership
 

Field Detail

MAX_EXTERNAL_ID_LENGTH

public static final int MAX_EXTERNAL_ID_LENGTH
The maximum length of the external id that can be stored in the database.

See Also:
setExternalId(String), Constant Field Values
Constructor Detail

BioMaterial

BioMaterial(D bioMaterialData)
Method Detail

getById

public static BioMaterial getById(DbControl dc,
                                  int id)
Get a biomaterial item when you know the id. This method can return any of the subclasses of BioMaterial. Eg. BioSource, Sample or Extract.

Parameters:
dc - The DbControl which will be used for permission checking and database access.
id - The id of the item to load
Returns:
The Sample item
Throws:
ItemNotFoundException - If an item with the specified id is not found
PermissionDeniedException - If the logged in user doesn't have read permission to the item
BaseException - If there is another error
Since:
2.17

getItemSubtype

public ItemSubtype getItemSubtype()
Description copied from interface: Subtypable
Get the subtype of the item.

Specified by:
getItemSubtype in interface Subtypable
Returns:
A subtype of null if not set
See Also:
SubtypableRelatedItems

setItemSubtype

public void setItemSubtype(ItemSubtype subtype)
Description copied from interface: Subtypable
Set the subtype on the item.

Specified by:
setItemSubtype in interface Subtypable
Parameters:
subtype - A subtype or null
See Also:
ItemSubtype.setOnItem(Subtypable)

onBeforeCommit

void onBeforeCommit(Transactional.Action action)
              throws NotLoggedInException,
                     BaseException
On delete action: issue an update to decrease the size of all BioMaterialList:s this is a member of.

Overrides:
onBeforeCommit in class SharedItem<D extends BioMaterialData>
Throws:
NotLoggedInException - If no user is logged in
BaseException - If there is another error
See Also:
Transactional, Developer documentation: Transactions, Developer documentation: Coding rules and guidelines for item classes

getExternalId

public String getExternalId()
Get the external id of the biomaterial. This value can be used to link with information in external databases. It is not used by the BASE core and it doesn't have to be unique.

Returns:
The external id for the biomaterial

setExternalId

public void setExternalId(String externalId)
                   throws PermissionDeniedException,
                          InvalidDataException
Set the external id of the biomaterial. The value may be null but must not be longer than the value specified by the MAX_EXTERNAL_ID_LENGTH constant.

Parameters:
externalId - The new value for the external id
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
InvalidDataException - If the string is too long

countChildren

public abstract long countChildren(boolean pooled)
Count the number of already existing children to this biomaterial. The count includes items that the logged in user doesn't have access to.

Parameters:
pooled - If TRUE, the count is for biomaterials of the same type, if FALSE the count is for biomaterials of the child type
Since:
2.16

getChildCreationEvents

public SpecialQuery<BioMaterialEventSource> getChildCreationEvents()
Get a query returning all events where this biomaterial has been used as a source item.

Returns:
A special query
Since:
3.0

3.0.4: 2012-03-05