2.17.2: 2011-06-17

net.sf.basedb.core
Class Software

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<SoftwareData>
                  extended by net.sf.basedb.core.Software
All Implemented Interfaces:
AccessControlled, Identifiable, Nameable, Ownable, Registered, Removable, Shareable

public class Software
extends CommonItem<SoftwareData>
implements Registered

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: 2009-04-06 14:52:39 +0200 (Mon, 06 Apr 2009) $

Field Summary
static int MAX_VERSIONSTRING_LENGTH
          The maximum length of the version variable that can be stored in the database.
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
 
Constructor Summary
Software(SoftwareData data)
          Creates a new software item.
 
Method Summary
static Software getById(DbControl dc, int id)
          Get a Software item when you know the ID.
 Date getEntryDate()
          Get the date that the item was registered in the database.
static Software getNew(DbControl dc, SoftwareType softwareType)
          Create a new Software item.
static ItemQuery<Software> getQuery()
          Get a query configured to retrieve software.
 SoftwareType getSoftwareType()
          Get the associated SoftwareType item.
 Item getType()
          Get the type of item represented by the object.
 Set<ItemProxy> getUsingItems()
          Get all: RawBioAssay:s created with this software
 String getVersionString()
          Get the versionstring of this Software item.
 boolean isUsed()
          Check if: a RawBioAssay was created with this software
 void setSoftwareType(SoftwareType softwareType)
          Set the SoftwareType of this Software item.
 void setVersionString(String versionString)
          Set the versionstring for this Software item.
 
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, onBeforeCommit, 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, getVersion, hashCode, hasPermission, isDetached, isInDatabase, 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, getVersion
 
Methods inherited from interface net.sf.basedb.core.AccessControlled
checkPermission, getPermissions, hasPermission
 
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.

See Also:
Item.SOFTWARE, getType()
Last modified
$Date: 2009-04-06 14:52:39 +0200 (Mon, 06 Apr 2009) $

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 the setVersionString(String) method to avoid exceptions.

See Also:
Constant Field Values
Constructor Detail

Software

Software(SoftwareData data)
Creates a new software item.

Parameters:
data - the data
Method Detail

getNew

public static Software getNew(DbControl dc,
                              SoftwareType softwareType)
                       throws BaseException
Create a new Software item.

Parameters:
dc - The DbControl which will be used for permission checking and database access.
softwareType - The type of this software
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 a Software item when you know the ID.

Parameters:
dc - The DbControl 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 found
PermissionDeniedException - If the logged in user doesn't have Permission.READ permission to the item
BaseException - If there is another error

getQuery

public static ItemQuery<Software> getQuery()
                                    throws BaseException
Get a query configured to retrieve software.

Returns:
An ItemQuery object
Throws:
BaseException - If getting the query fails.

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 the Item enumeration.

Specified by:
getType in interface Identifiable
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 interface Registered
Returns:
A date or null if this is not known

isUsed

public boolean isUsed()
               throws BaseException
Check if:

Overrides:
isUsed in class BasicItem<SoftwareData>
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()

getUsingItems

public Set<ItemProxy> getUsingItems()
Get all:

getSoftwareType

public SoftwareType getSoftwareType()
                             throws PermissionDeniedException,
                                    BaseException
Get the associated SoftwareType item. All Software items must have a type.

Returns:
The SoftwareType item
Throws:
PermissionDeniedException - If the logged in user doesn't have Permission.READ permission for the software type
BaseException - If there is another error

setSoftwareType

public void setSoftwareType(SoftwareType softwareType)
                     throws PermissionDeniedException,
                            InvalidUseOfNullException
Set the SoftwareType of this Software item. This parameter mustn't be null.

Parameters:
softwareType - The new SoftwareType
Throws:
PermissionDeniedException - If the logged in user doesn't have Permission.WRITE permission for the software or Permission.USE permission for the software type
InvalidUseOfNullException - If software type is null

getVersionString

public String getVersionString()
Get the versionstring of this Software 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 this Software item. The value must not be longer than the value specified by the MAX_VERSIONSTRING_LENGTH constant.

Parameters:
versionString - The new version for this item, or null if not known
Throws:
StringTooLongException - If the version is longer then MAX_VERSIONSTRING_LENGTH
PermissionDeniedException - If the logged in user don't have write permission on this item

2.17.2: 2011-06-17