2.17.2: 2011-06-17

net.sf.basedb.core
Class SoftwareType

java.lang.Object
  extended by net.sf.basedb.core.BasicItem<SoftwareTypeData>
      extended by net.sf.basedb.core.SoftwareType
All Implemented Interfaces:
AccessControlled, Identifiable, Nameable, Registered, SystemItem

public class SoftwareType
extends BasicItem<SoftwareTypeData>
implements Nameable, SystemItem, Registered

This class is used to represent the type of Software items in BASE. Currently, the only type of software we keep information about is feature extraction software. It is not possible for client applications to create new software types or modify existing ones.

Version:
2.0
Author:
enell
See Also:
Software
Last modified
$Date: 2009-04-06 14:52:39 +0200 (Mon, 06 Apr 2009) $

Field Summary
static String FEATURE_EXTRACTION
          The id for the SoftwareType item representing the softwaretype "feature extraction software".
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
 
Fields inherited from interface net.sf.basedb.core.SystemItem
MAX_SYSTEM_ID_LENGTH
 
Constructor Summary
SoftwareType(SoftwareTypeData data)
          Creates a new softwaretype.
 
Method Summary
static SoftwareType getById(DbControl dc, int id)
          Get a SoftwareType object when you know the ID.
 String getDescription()
          Get the description for the item.
 Date getEntryDate()
          Get the date that the item was registered in the database.
 String getName()
          Get the name of the item.
static ItemQuery<SoftwareType> getQuery()
          Get a query configured to retrieve software types.
 ItemQuery<Software> getSoftware()
          Get a query that returns all software of this type
 String getSystemId()
          Get the system id for the item.
 Item getType()
          Get the type of item represented by the object.
 Set<ItemProxy> getUsingItems()
          Get all: Software of this type
(package private)  void initPermissions(int granted, int denied)
          Initialise the logged in user's permissions for this item.
 boolean isSystemItem()
          Check if the item is a system item or not.
 boolean isUsed()
          Check if: there are any Software using this type
 Software newSoftware()
          Create a new Software item of this type.
 void setDescription(String description)
          Set the description for the item.
 void setName(String name)
          Set the name of the item.
 
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, onBeforeCommit, 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
 

Field Detail

TYPE

private static final Item TYPE
The type of item represented by this class.

See Also:
ITEM.SOFTWARETYPE, getType()

FEATURE_EXTRACTION

public static final String FEATURE_EXTRACTION
The id for the SoftwareType item representing the softwaretype "feature extraction software".

See Also:
Constant Field Values
Constructor Detail

SoftwareType

SoftwareType(SoftwareTypeData data)
Creates a new softwaretype.

Parameters:
data - the data
Method Detail

getById

public static SoftwareType getById(DbControl dc,
                                   int id)
                            throws ItemNotFoundException,
                                   PermissionDeniedException,
                                   BaseException
Get a SoftwareType object 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 SoftwareType item
Throws:
ItemNotFoundException - This exception is thrown if an item with the specified ID is not found
PermissionDeniedException - This exception is thrown if the logged in user doesn't have READ permission to the items
BaseException - This exception is thrown if there is another error

getQuery

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

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

getName

public String getName()
Description copied from interface: Nameable
Get the name of the item.

Specified by:
getName in interface Nameable
Returns:
A String with the name of the item

setName

public void setName(String name)
             throws PermissionDeniedException,
                    InvalidDataException
Description copied from interface: Nameable
Set the name of the item. The name cannot be null and mustn't be longer than the value specified by the Nameable.MAX_NAME_LENGTH constant.

Specified by:
setName in interface Nameable
Parameters:
name - The new name for the item
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
InvalidDataException - If the name is null or longer than specified by the Nameable.MAX_NAME_LENGTH constant

getDescription

public String getDescription()
Description copied from interface: Nameable
Get the description for the item.

Specified by:
getDescription in interface Nameable
Returns:
A String with a description of the item

setDescription

public void setDescription(String description)
                    throws PermissionDeniedException,
                           InvalidDataException
Description copied from interface: Nameable
Set the description for the item. The description can be null but mustn't be longer than the value specified by the Nameable.MAX_DESCRIPTION_LENGTH constant.

Specified by:
setDescription in interface Nameable
Parameters:
description - The new description for the item
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
InvalidDataException - If the description longer than specified by the Nameable.MAX_DESCRIPTION_LENGTH constant

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

getSystemId

public String getSystemId()
Description copied from interface: SystemItem
Get the system id for the item.

Specified by:
getSystemId in interface SystemItem
Returns:
The id of the item or null if it is not a system item

isSystemItem

public boolean isSystemItem()
Description copied from interface: SystemItem
Check if the item is a system item or not. A system item have a non-null value for the system id.

Specified by:
isSystemItem in interface SystemItem
Returns:
TRUE if this item is a system item, FALSE otherwise

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<SoftwareTypeData>
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:

initPermissions

void initPermissions(int granted,
                     int denied)
               throws BaseException
Description copied from class: BasicItem
Initialise the logged in user's permissions for this item. For items loaded from the database, the default implementation checks the role keys. For new items, write permission is added.

Subclasses that needs to check other keys or properties, such as the OwnedItem and SharedItem should override this method. The subclass should calculate additional permissions to be granted or denied, and combine those with whatever was passed as parameters. Use the binary OR operator ( | ) to combine the permissions. Finally the subclass must call super.initPermissions(granted, denied).

Overrides:
initPermissions in class BasicItem<SoftwareTypeData>
Parameters:
granted - Permissions that have been granted by the subclass
denied - Permissions that have been denied by the subclass
Throws:
BaseException - If the permissions couldn't be initialised

newSoftware

public Software newSoftware()
                     throws PermissionDeniedException,
                            BaseException
Create a new Software item of this type.

Returns:
The new Software item
Throws:
DetachedItemException - If this SoftwareType is detached from DbControl.
PermissionDeniedException - This exception is thrown if the logged in user doesn't have CREATE permission for software items or USE permission for this software type
BaseException - This exception is thrown if there is another error

getSoftware

public ItemQuery<Software> getSoftware()
Get a query that returns all software of this type

Returns:
An ItemQuery object

2.17.2: 2011-06-17