Package net.sf.basedb.core
Class Hardware
-
- All Implemented Interfaces:
AccessControlled
,Annotatable
,Identifiable
,Nameable
,Ownable
,Registered
,Removable
,Shareable
,Subtypable
public class Hardware extends AnnotatedItem implements Registered, Subtypable
This class is used to represent individual hardware items and information about them. In the current version of BASE the only type of hardware we keep information about is scanners.- Version:
- 2.0
- Author:
- enell
- Last modified
- $Date: 2017-05-22 14:35:27 +0200 (må, 22 maj 2017) $
-
-
Field Summary
Fields Modifier and Type Field Description static String
CABINET
The id for theHardwareType
object representing a cabinet.static String
CLUSTER_GENERATOR
The id for theHardwareType
object representing a cluster generator station.static String
FREEZER
The id for theHardwareType
object representing a freezer.static String
HYBRIDIZATION_STATION
The id for theHardwareType
object representing a hybridization station.static int
MAX_VERSIONSTRING_LENGTH
The maximum length of the version variable that can be stored in the database.static String
OTHER
The id for theHardwareType
object representing something else.static String
PRINT_ROBOT
The id for theHardwareType
object representing a print robot.static String
SCANNER
The id for theHardwareType
object representing a scanner.static String
SEQUENCER
The id for theHardwareType
object representing a sequencer.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
Constructors Constructor Description Hardware(HardwareData data)
Creates a new hardware item.
-
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 Hardware
getById(DbControl dc, int id)
Get aHardware
item when you know the ID.(package private) HardwareData
getData()
Get theBasicData
object that holds all data for this item.static String
getDefaultSystemId(Item itemType)
Get the system id for the hardware 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.ItemSubtype
getItemSubtype()
Get the subtype of the item.static Hardware
getNew(DbControl dc)
Create a newHardware
item.static ItemQuery<Hardware>
getQuery()
Get a query configured to retrieve hardware.Item
getType()
Get the type of item represented by the object.Set<ItemProxy>
getUsingItems()
Get all:DerivedBioAssay
:s with this hardwareArrayBatch
:s with this hardwareBioMaterial
:s andPhysicalBioAssay
:s with this hardwarePlate
:s with this hardwareString
getVersionString()
Get the versionstring of thisHardware
item.boolean
isUsed()
Check if: aDerivedBioAssay
is linked to this hardware anArrayBatch
is linked to this hardware aBioMaterialEvent
is linked to this hardware aPlateEvent
is linked to this hardwarevoid
setEntryDate(Date entryDate)
Set the date the entry was registered in the database.void
setItemSubtype(ItemSubtype subtype)
Set the subtype on the item.void
setVersionString(String versionString)
Set the versionstring for thisHardware
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
public static final Item TYPE
The type of item represented by this class.- See Also:
Item.HARDWARE
,getType()
-
SCANNER
public static final String SCANNER
The id for theHardwareType
object representing a scanner.- Since:
- 3.0
- See Also:
- Constant Field Values
-
PRINT_ROBOT
public static final String PRINT_ROBOT
The id for theHardwareType
object representing a print robot.- Since:
- 3.0
- See Also:
- Constant Field Values
-
HYBRIDIZATION_STATION
public static final String HYBRIDIZATION_STATION
The id for theHardwareType
object representing a hybridization station.- Since:
- 3.0
- See Also:
- Constant Field Values
-
CLUSTER_GENERATOR
public static final String CLUSTER_GENERATOR
The id for theHardwareType
object representing a cluster generator station. Used when creating aPhysicalBioAssay
.- Since:
- 3.0
- See Also:
- Constant Field Values
-
SEQUENCER
public static final String SEQUENCER
The id for theHardwareType
object representing a sequencer.- Since:
- 3.0
- See Also:
- Constant Field Values
-
FREEZER
public static final String FREEZER
The id for theHardwareType
object representing a freezer.- Since:
- 3.0
- See Also:
- Constant Field Values
-
CABINET
public static final String CABINET
The id for theHardwareType
object representing a cabinet.- Since:
- 3.2
- See Also:
- Constant Field Values
-
OTHER
public static final String OTHER
The id for theHardwareType
object representing something else.- Since:
- 3.0
- See Also:
- Constant Field Values
-
MAX_VERSIONSTRING_LENGTH
public static final int MAX_VERSIONSTRING_LENGTH
The maximum length of the version variable that can be stored in the database. Check the length against this value before calling thesetVersionString(String)
method to avoid exceptions.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Hardware
Hardware(HardwareData data)
Creates a new hardware item.- Parameters:
data
- the data
-
-
Method Detail
-
getDefaultSystemId
public static String getDefaultSystemId(Item itemType)
Get the system id for the hardware 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 hardware.- Parameters:
itemType
- The item type- Returns:
- The system id of the default hardware type or null
- Since:
- 3.0
-
getNew
public static Hardware getNew(DbControl dc) throws BaseException
Create a newHardware
item.- Parameters:
dc
- TheDbControl
which will be used for permission checking and database access.- Returns:
- The new
Hardware
item - Throws:
BaseException
- If there is an error
-
getById
public static Hardware getById(DbControl dc, int id) throws ItemNotFoundException, PermissionDeniedException, BaseException
Get aHardware
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
Hardware
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<Hardware> getQuery() throws BaseException
Get a query configured to retrieve hardware.- Returns:
- An
ItemQuery
object - Throws:
BaseException
- When the query could not be configured.
-
getData
HardwareData 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
- Since:
- 3.3
-
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
DerivedBioAssay
is linked to this hardware - an
ArrayBatch
is linked to this hardware - a
BioMaterialEvent
is linked to this hardware - a
PlateEvent
is linked to this hardware
- Overrides:
isUsed
in classBasicItem
- Returns:
- TRUE if this hardware is used.
- Throws:
BaseException
- if there is any error.- See Also:
BasicItem.getUsingItems()
- a
-
getUsingItems
public Set<ItemProxy> getUsingItems()
Get all:DerivedBioAssay
:s with this hardwareArrayBatch
:s with this hardwareBioMaterial
:s andPhysicalBioAssay
:s with this hardwarePlate
:s with this hardware
- Overrides:
getUsingItems
in classBasicItem
- Returns:
- A set containing proxies for the items, or an empty set if no items are using this item
- Since:
- 2.2
- See Also:
BasicItem.addUsingItems(Set, Item, org.hibernate.query.Query)
-
getVersionString
public String getVersionString()
Get the versionstring of thisHardware
item.- Returns:
- A string with the version of this item, or null if not known
-
setVersionString
public void setVersionString(String versionString) throws StringTooLongException, PermissionDeniedException
Set the versionstring for thisHardware
item. The value must not be longer than the value specified by theMAX_VERSIONSTRING_LENGTH
constant.- Parameters:
versionString
- The new version for this item, or null if not known- Throws:
StringTooLongException
- If versionString is longer thenMAX_VERSIONSTRING_LENGTH
PermissionDeniedException
- If the logged in user don't have write permission on this item
-
-