Package net.sf.basedb.core
Class Software
- All Implemented Interfaces:
AccessControlled
,Annotatable
,Identifiable
,Nameable
,Ownable
,Registered
,Removable
,Shareable
,Subtypable
This class is used to represent individual software items
and information about them. In the current version of BASE
the only type of software we keep information about is feature extraction software.
- Version:
- 2.0
- Author:
- enell
- Last modified
- $Date: 2017-05-22 14:35:27 +0200 (må, 22 maj 2017) $
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The id for theSoftwareType
item representing software used for aligning sequenced data against a known reference database.static final String
The id for theSoftwareType
item representing the softwaretype "feature extraction software".static final int
The maximum length of the version variable that can be stored in the database.private static final Item
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
-
Method Summary
Modifier and TypeMethodDescriptionGet all parents objects which are annotatable and the logged in user has read permission to.static Software
Get aSoftware
item when you know the ID.(package private) SoftwareData
getData()
Get theBasicData
object that holds all data for this item.static String
getDefaultSystemId
(Item itemType) Get the system id for the software subtype that should be used on an item that doesn't have a subtype.Get the date that the item was registered in the database.Get the subtype of the item.static Software
Create a newSoftware
item.getQuery()
Get a query configured to retrieve software.getType()
Get the type of item represented by the object.Get all:RawBioAssay
:s created with this softwareDerivedBioAssay
: created with this softwareGet the versionstring of thisSoftware
item.boolean
isUsed()
Check if: a RawBioAssay was created with this software a DerivedBioassay was created with this softwarevoid
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 thisSoftware
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 Details
-
TYPE
The type of item represented by this class.- See Also:
- Last modified
- $Date: 2017-05-22 14:35:27 +0200 (må, 22 maj 2017) $
-
FEATURE_EXTRACTION
The id for theSoftwareType
item representing the softwaretype "feature extraction software".- Since:
- 3.0
- See Also:
-
ALIGNMENT
The id for theSoftwareType
item representing software used for aligning sequenced data against a known reference database.- Since:
- 3.0
- See Also:
-
MAX_VERSIONSTRING_LENGTH
public static final int MAX_VERSIONSTRING_LENGTHThe 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:
-
-
Constructor Details
-
Software
Software(SoftwareData data) Creates a new software item.- Parameters:
data
- the data
-
-
Method Details
-
getDefaultSystemId
Get the system id for the software 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 software.- Parameters:
itemType
- The item type- Returns:
- The system id of the default software type or null
- Since:
- 3.0
-
getNew
Create a newSoftware
item.- Parameters:
dc
- TheDbControl
which will be used for permission checking and database access.- Returns:
- The new
Software
item - Throws:
BaseException
- This exception is thrown if there is another error
-
getById
public static Software getById(DbControl dc, int id) throws ItemNotFoundException, PermissionDeniedException, BaseException Get aSoftware
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
Software
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
Get a query configured to retrieve software.- Returns:
- An
ItemQuery
object - Throws:
BaseException
- If getting the query fails.
-
getData
SoftwareData getData()Description copied from class:BasicItem
Get theBasicData
object that holds all data for this item.- Overrides:
getData
in classAnnotatedItem
-
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
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
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
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
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:
-
setItemSubtype
Description copied from interface:Subtypable
Set the subtype on the item.- Specified by:
setItemSubtype
in interfaceSubtypable
- Parameters:
subtype
- A subtype or null- See Also:
-
isUsed
Check if:- a RawBioAssay was created with this software
- a DerivedBioassay was created with this software
- 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:
-
getUsingItems
Get all:RawBioAssay
:s created with this softwareDerivedBioAssay
: created with this software
- 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:
-
getVersionString
Get the versionstring of thisSoftware
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 thisSoftware
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 the version is longer thenMAX_VERSIONSTRING_LENGTH
PermissionDeniedException
- If the logged in user don't have write permission on this item
-