Package net.sf.basedb.core
Class Kit
-
- All Implemented Interfaces:
AccessControlled
,Annotatable
,Identifiable
,Nameable
,Ownable
,Registered
,Removable
,Shareable
,Subtypable
public class Kit extends AnnotatedItem implements Registered, Subtypable
This class is used to represent a kit of reagents and other stuff used in the lab process.- Since:
- 3.7
- Author:
- Nicklas
-
-
Field Summary
Fields Modifier and Type Field Description static String
CLUSTER_GENERATION
The ID for the cluster generation (in a flow cell) kit type, for example a protocol used when creating aPhysicalBioAssay
.static String
EXTRACTION
static String
HYBRIDIZATION
The ID for the hybridization kit type, for example a kit used when creating aPhysicalBioAssay
from a set of (labeled)Extract
:s.static String
LABELING
The ID for the labeling kit type, for example a kit used when creating a labeled extract from anExtract
.static String
LIBRARY_PREPARATION
The ID for the library preparation kit type, for example a kit used when creating a library extract from anExtract
.static String
SAMPLING
static String
SEQUENCING
The ID for the sequencing kit type, for example a kit used when creating aDerivedBioAssay
from aPhysicalBioAssay
.private 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
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Set<Annotatable>
getAnnotatableParents()
Get all parents objects which are annotatable and the logged in user has read permission to.static Kit
getById(DbControl dc, int id)
Get aKit
item when you know the ID.(package private) KitData
getData()
Get theBasicData
object that holds all data for this item.static String
getDefaultSystemId(Item itemType)
Get the system id for the kit subtype that should be used on an item that doesn't have a subtype.Date
getEntryDate()
Get the date that the item was registered in the database.Date
getExpirationDate()
Get the expiration date of the kit.ItemSubtype
getItemSubtype()
Get the subtype of the item.static Kit
getNew(DbControl dc)
Create a newKit
item.static ItemQuery<Kit>
getQuery()
Get a query configured to retrieve kits.Item
getType()
Get the type of item represented by the object.Set<ItemProxy>
getUsingItems()
Get all:BioMaterial
:s andPhysicalBioAssay
:s using this kitBioPlateEvent
:s with this kitDerivedBioAssay
: with this kitboolean
isInactive()
Check if the kit is inactive.boolean
isUsed()
Check if: aBioMaterialEvent
is linked to this kit aBioPlateEvent
is linked to this kitvoid
setEntryDate(Date entryDate)
Set the date the entry was registered in the database.void
setExpirationDate(Date expirationDate)
Set the expiration date.void
setInactive(boolean inactive)
Set the inactive flag.void
setItemSubtype(ItemSubtype subtype)
Set the subtype on the item.-
Methods inherited from class net.sf.basedb.core.AnnotatedItem
getAnnotationSet, getProtocol, isAnnotated, removeAnnotations
-
Methods inherited from class net.sf.basedb.core.CommonItem
getDescription, getName, getRemovedBy, isRemoved, setDescription, setName, setRemoved
-
Methods inherited from class net.sf.basedb.core.SharedItem
getItemKey, getProjectKey, initPermissions, isShared, onBeforeCommit, setItemKey, setProjectKey
-
Methods inherited from class net.sf.basedb.core.OwnedItem
getOwner, isOwner, setOwner, takeOwnership
-
Methods inherited from class net.sf.basedb.core.BasicItem
addAnnotatableParents, addUsingItems, addUsingItems, breakCircularReferences, checkBatchAnnotatableUsage, checkPermission, equals, getBasicData, getDbControl, getId, getPermissions, getPluginPermissions, getSessionControl, getVersion, hashCode, hasPermission, isDetached, isInDatabase, onAfterCommit, onAfterInsert, onRollback, setDbControl, setProjectDefaults, toString, validate
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.basedb.core.AccessControlled
checkPermission, getPermissions, hasPermission
-
Methods inherited from interface net.sf.basedb.core.Identifiable
getId, getVersion
-
Methods inherited from interface net.sf.basedb.core.Ownable
getOwner, isOwner, setOwner, takeOwnership
-
-
-
-
Field Detail
-
TYPE
private static final Item TYPE
The type of item represented by this class.
-
SAMPLING
public static final String SAMPLING
- See Also:
- Constant Field Values
-
EXTRACTION
public static final String EXTRACTION
- See Also:
- Constant Field Values
-
LABELING
public static final String LABELING
The ID for the labeling kit type, for example a kit used when creating a labeled extract from anExtract
.- See Also:
- Constant Field Values
-
LIBRARY_PREPARATION
public static final String LIBRARY_PREPARATION
The ID for the library preparation kit type, for example a kit used when creating a library extract from anExtract
.- See Also:
- Constant Field Values
-
HYBRIDIZATION
public static final String HYBRIDIZATION
The ID for the hybridization kit type, for example a kit used when creating aPhysicalBioAssay
from a set of (labeled)Extract
:s.- See Also:
- Constant Field Values
-
CLUSTER_GENERATION
public static final String CLUSTER_GENERATION
The ID for the cluster generation (in a flow cell) kit type, for example a protocol used when creating aPhysicalBioAssay
.- See Also:
- Constant Field Values
-
SEQUENCING
public static final String SEQUENCING
The ID for the sequencing kit type, for example a kit used when creating aDerivedBioAssay
from aPhysicalBioAssay
.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Kit
Kit(KitData data)
Creates a new kit item.- Parameters:
data
- the data
-
-
Method Detail
-
getDefaultSystemId
public static String getDefaultSystemId(Item itemType)
Get the system id for the kit subtype that should be used on an item that doesn't have a subtype. This includesSubtypable
items with a nullItemSubtype
and all other non-subtypable items which can be linked to a kit.- Parameters:
itemType
- The item type- Returns:
- The system id of the default kit type or null
-
getNew
public static Kit getNew(DbControl dc) throws BaseException
Create a newKit
item.- Parameters:
dc
- TheDbControl
which will be used for permission checking and database access.- Returns:
- The new
Kit
item - Throws:
BaseException
- This exception is thrown if there is another error
-
getById
public static Kit getById(DbControl dc, int id) throws ItemNotFoundException, PermissionDeniedException, BaseException
Get aKit
item when you know the ID.- Parameters:
dc
- TheDbControl
which will be used for permission checking and database access.id
- The ID of the item to load- Returns:
- The
Kit
item - Throws:
ItemNotFoundException
- If an item with the specified ID is not foundPermissionDeniedException
- If the logged in user doesn't havePermission.READ
permission to the itemBaseException
- If there is another error
-
getQuery
public static ItemQuery<Kit> getQuery() throws BaseException
Get a query configured to retrieve kits.- Returns:
- An
ItemQuery
object - Throws:
BaseException
- If getting the query fails.
-
getData
KitData getData()
Description copied from class:BasicItem
Get theBasicData
object that holds all data for this item.- Overrides:
getData
in classAnnotatedItem
-
getType
public Item getType()
Description copied from interface:Identifiable
Get the type of item represented by the object. The returned value is one of the values defined in theItem
enumeration.- Specified by:
getType
in interfaceIdentifiable
- Returns:
- A value indicating the type of item
-
getEntryDate
public Date getEntryDate()
Description copied from interface:Registered
Get the date that the item was registered in the database.- Specified by:
getEntryDate
in interfaceRegistered
- Returns:
- A date or null if this is not known
-
setEntryDate
public void setEntryDate(Date entryDate)
Description copied from interface:Registered
Set the date the entry was registered in the database. Implementations should only allow this property to be set before the item is first stored in the database. The intention of this method is to facilitate export/import of data between server.- Specified by:
setEntryDate
in interfaceRegistered
- Parameters:
entryDate
- A date or null to use today's date
-
getAnnotatableParents
public Set<Annotatable> getAnnotatableParents()
Description copied from interface:Annotatable
Get all parents objects which are annotatable and the logged in user has read permission to. If the item doesn't have any annotatable parents, it may return null or an empty set. The method should only return the immediate parent(s), not parents to parents, etc. As of BASE 3.1 this method may also return child items if the child item is aSubtypable
item that has a subtype with theItemSubtype.getPushAnnotations()
flag set.- Specified by:
getAnnotatableParents
in interfaceAnnotatable
- Returns:
- Always null
-
getItemSubtype
public ItemSubtype getItemSubtype()
Description copied from interface:Subtypable
Get the subtype of the item.- Specified by:
getItemSubtype
in interfaceSubtypable
- 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 interfaceSubtypable
- Parameters:
subtype
- A subtype or null- See Also:
ItemSubtype.setOnItem(Subtypable)
-
isUsed
public boolean isUsed() throws BaseException
Check if:- a
BioMaterialEvent
is linked to this kit - a
BioPlateEvent
is linked to this kit
- Overrides:
isUsed
in classBasicItem
- Returns:
- TRUE if this item is used, FALSE otherwise
- Throws:
BaseException
- If not able to tell if item is used or not.- See Also:
BasicItem.getUsingItems()
- a
-
getUsingItems
public Set<ItemProxy> getUsingItems()
Get all:BioMaterial
:s andPhysicalBioAssay
:s using this kitBioPlateEvent
:s with this kitDerivedBioAssay
: with this kit
- Overrides:
getUsingItems
in classBasicItem
- Returns:
- A set containing proxies for the items, or an empty set if no items are using this item
- See Also:
BasicItem.addUsingItems(Set, Item, org.hibernate.query.Query)
-
isInactive
public boolean isInactive()
Check if the kit is inactive. An inactive kit should not be used when creating new biomaterial. This is a recommendation only and is not enforced by the core API.
-
setInactive
public void setInactive(boolean inactive) throws PermissionDeniedException
Set the inactive flag.- Parameters:
inactive
- TRUE if the kit is inactive, FALSE otherwise.- Throws:
PermissionDeniedException
- If the logged in user doesn't have write permission on the item.
-
getExpirationDate
public Date getExpirationDate()
Get the expiration date of the kit. A kit should not be used after it's expiration date. This is a recommendation only and is not enforced by the core API.
-
setExpirationDate
public void setExpirationDate(Date expirationDate)
Set the expiration date.- Parameters:
expirationDate
- A date or null- Throws:
PermissionDeniedException
- If the logged in user doesn't have write permission on the item.
-
-