2.17.2: 2011-06-17

net.sf.basedb.core
Class PlatformVariant

java.lang.Object
  extended by net.sf.basedb.core.BasicItem<D>
      extended by net.sf.basedb.core.BasicChildItem<PlatformVariantData>
          extended by net.sf.basedb.core.PlatformVariant
All Implemented Interfaces:
AccessControlled, Identifiable, Nameable, Removable

public class PlatformVariant
extends BasicChildItem<PlatformVariantData>
implements Nameable, Removable

Represents variants of a Platform.

Version:
2.5
Author:
Nicklas
Last modified
$Date: 2011-02-18 13:19:38 +0100 (Fri, 18 Feb 2011) $

Field Summary
static int MAX_EXTERNAL_ID_LENGTH
          The maximum length of the external ID that can be stored in the database.
private static QueryRuntimeFilter RUNTIME_FILTER
          This filter will only return items if the logged in user has generic read permission to platforms.
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
PlatformVariant(PlatformVariantData data)
          Creates a new filetype item from the given data.
 
Method Summary
 void addFileType(DataFileType type, boolean required)
          Add a file type to this platform variant.
static PlatformVariant getByExternalId(DbControl dc, String externalId)
          Get a PlatformVariant item when you know the external ID.
static PlatformVariant getById(DbControl dc, int id)
          Get a PlatformVariant object when you know the ID.
 String getDescription()
          Get the description for the item.
 String getExternalId()
          Get the external id for the platform variant.
 ItemQuery<PlatformFileType> getFileTypes(boolean restrict)
          Get a query returning file types registered with this platform variant.
 String getName()
          Get the name of the item.
static PlatformVariant getNew(DbControl dc, Platform platform, String externalId)
          Create a new variant of a platform.
static PlatformVariant getNew(DbControl dc, Platform platform, String externalId, int channels)
          Create a new file-only variant of a platform.
static PlatformVariant getNew(DbControl dc, Platform platform, String externalId, RawDataType rawDataType)
          Create a new platform variant which may optionally import data into the database.
(package private)  Item getParentType()
          Get the type of item that is the parent of this item.
 Platform getPlatform()
          Get that platform this is a variant of.
static ItemQuery<PlatformVariant> getQuery()
          Get a query configured to retrieve PlatformVariant items.
 RawDataType getRawDataType()
          Get the raw data type this platform variant is locked to.
 Item getType()
          Get the type of item represented by the object.
 Set<ItemProxy> getUsingItems()
          Get all: ArrayDesign:s and RawBioAssay:s using this platform variant
 boolean isFileOnly()
          Check if the platform variant is a file-only variant or if it allows data to be imported into the database.
 boolean isRemoved()
          Check if the removed flag is set for this item.
 boolean isUsed()
          Check if: any raw bioassays or array design are using this platform variant
(package private)  void onAfterCommit(Transactional.Action action)
          Register file-only platforms as raw data type after insert and unregister after delete.
 void removeFileType(DataFileType type)
          Remove a file type from this platform variant.
private  void setChannels(int channels)
          Set the number of channels for a file-only platform variant.
 void setDescription(String description)
          Set the description for the item.
private  void setExternalId(String externalId)
           
 void setName(String name)
          Set the name of the item.
private  void setPlatform(Platform platform)
           
private  void setRawDataType(RawDataType rawDataType)
          Set the raw data type.
 void setRemoved(boolean removed)
          Set the removed flag for this item.
 
Methods inherited from class net.sf.basedb.core.BasicChildItem
getPermissionForWriteDeleteAndCreate, getPluginPermissions, initPermissions
 
Methods inherited from class net.sf.basedb.core.BasicItem
addUsingItems, addUsingItems, checkPermission, equals, getData, getDbControl, getId, getPermissions, getSessionControl, getVersion, hashCode, hasPermission, isDetached, isInDatabase, 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

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

See Also:
Item.PLATFORM, getType()

RUNTIME_FILTER

private static final QueryRuntimeFilter RUNTIME_FILTER
This filter will only return items if the logged in user has generic read permission to platforms.


MAX_EXTERNAL_ID_LENGTH

public static final int MAX_EXTERNAL_ID_LENGTH
The maximum length of the external ID that can be stored in the database.

See Also:
setExternalId(String), Constant Field Values
Constructor Detail

PlatformVariant

PlatformVariant(PlatformVariantData data)
Creates a new filetype item from the given data.

Parameters:
data - the data.
Method Detail

getNew

public static PlatformVariant getNew(DbControl dc,
                                     Platform platform,
                                     String externalId)
Create a new variant of a platform. If the platform is a file-only platform the new variant will also be a file-only variant.

Parameters:
dc - The DbControl to use for database access
platform - The platform to create a variant for
externalId - The external ID of the variant, it must be unique for all variants
Returns:
The new PlatformVariant item

getNew

public static PlatformVariant getNew(DbControl dc,
                                     Platform platform,
                                     String externalId,
                                     int channels)
Create a new file-only variant of a platform. Data for this variant can't be imported to the database.

Parameters:
dc - The DbControl to use for database access
platform - The platform to create a variant for
externalId - The external ID of the variant, it must be unique for all variants
channels - Number of channels in this variant
Returns:
The new variant object

getNew

public static PlatformVariant getNew(DbControl dc,
                                     Platform platform,
                                     String externalId,
                                     RawDataType rawDataType)
Create a new platform variant which may optionally import data into the database.

Parameters:
dc - The DbControl to use for database access
platform - The platform to create a variant for
externalId - The external ID of the platform variant, must be unique for all variants (including those for other platforms)
rawDataType - A specific raw data type this platform will be locked to or null if it is not locked to any specific raw data type
Returns:
The new platform object

getById

public static PlatformVariant getById(DbControl dc,
                                      int id)
                               throws ItemNotFoundException,
                                      PermissionDeniedException,
                                      BaseException
Get a PlatformVariant 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 PlatformVariant 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 items
BaseException - If there is another error

getByExternalId

public static PlatformVariant getByExternalId(DbControl dc,
                                              String externalId)
                                       throws ItemNotFoundException,
                                              PermissionDeniedException,
                                              BaseException
Get a PlatformVariant item when you know the external ID.

Parameters:
dc - The DbControl which will be used for permission checking and database access.
externalId - The external ID of the item to load
Returns:
The PlatformVariant item.
Throws:
ItemNotFoundException - If an item with the specified ID is not found
PermissionDeniedException - If the logged in user doesn't have read permission for the item
BaseException - If there is another error

getQuery

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

Returns:
An ItemQuery object
Throws:
BaseException - If the query could not be created.

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

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

isRemoved

public boolean isRemoved()
Description copied from interface: Removable
Check if the removed flag is set for this item.

Specified by:
isRemoved in interface Removable
Returns:
TRUE if the item is flagged as removed, FALSE otherwise

setRemoved

public void setRemoved(boolean removed)
                throws PermissionDeniedException
Description copied from interface: Removable
Set the removed flag for this item.

Specified by:
setRemoved in interface Removable
Parameters:
removed - TRUE if the item should be flagged as removed, FALSE otherwise
Throws:
PermissionDeniedException - If the logged in user doesn't have Permission.DELETE permission for setting the flag to TRUE or Permission.WRITE permission for setting the flag to FALSE

isUsed

public boolean isUsed()
               throws BaseException
Check if:

Overrides:
isUsed in class BasicItem<PlatformVariantData>
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:

onAfterCommit

void onAfterCommit(Transactional.Action action)
Register file-only platforms as raw data type after insert and unregister after delete.

Overrides:
onAfterCommit in class BasicItem<PlatformVariantData>
Since:
2.16.2
See Also:
Transactional, Core API overview - Transaction handling, Coding rules and guidelines for item classes

getParentType

Item getParentType()
Description copied from class: BasicChildItem
Get the type of item that is the parent of this item.

Specified by:
getParentType in class BasicChildItem<PlatformVariantData>
Returns:
The item type of the parent item

getPlatform

public Platform getPlatform()
Get that platform this is a variant of.

Returns:
A Platform item
Throws:
PermissionDeniedException - If the logged in user doesn't have read permission to the item

setPlatform

private void setPlatform(Platform platform)

getExternalId

public String getExternalId()
Get the external id for the platform variant.


setExternalId

private void setExternalId(String externalId)
                    throws PermissionDeniedException,
                           InvalidDataException,
                           BaseException
Throws:
PermissionDeniedException
InvalidDataException
BaseException

isFileOnly

public boolean isFileOnly()
Check if the platform variant is a file-only variant or if it allows data to be imported into the database.

Returns:
TRUE if only file data is allowed, FALSE if import to database is allowed

setChannels

private void setChannels(int channels)
Set the number of channels for a file-only platform variant.


setRawDataType

private void setRawDataType(RawDataType rawDataType)
Set the raw data type. The raw data type must allow data to be imported into the database.

Parameters:
rawDataType - The raw data type, null is allowed

getRawDataType

public RawDataType getRawDataType()
Get the raw data type this platform variant is locked to. File-only variants are always locked to a raw data type. Variants that support import of data to the database may or may not be locked. Note! If the variant is a file-only variant that hasn't been committed to the database a new instance of RawDataType is returned for each call to this method.

Returns:
The raw data type or null if the platform isn't locked

getFileTypes

public ItemQuery<PlatformFileType> getFileTypes(boolean restrict)
Get a query returning file types registered with this platform variant.

Parameters:
restrict - If TRUE the query will only return file types that has been directly registered with this variant, if FALSE the query will also return file types that have been registered with the platform
See Also:
PlatformFileType.getQuery(Platform, PlatformVariant, boolean)

addFileType

public void addFileType(DataFileType type,
                        boolean required)
Add a file type to this platform variant. If the file type has already been registered this method does nothing.

Parameters:
type - The file type
required - TRUE if this file type should be required by the platform, FALSE otherwise.
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission to the platform
InvalidUseOfNullException - If type is null
See Also:
Platform.addFileType(DataFileType, boolean, PlatformVariant)

removeFileType

public void removeFileType(DataFileType type)
Remove a file type from this platform variant. If the file type isn't registered this method does nothing.

Parameters:
type - The file type to remove
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission to the platform
InvalidUseOfNullException - If type is null
See Also:
Platform.removeFileType(DataFileType, PlatformVariant)

2.17.2: 2011-06-17