2.17.2: 2011-06-17

net.sf.basedb.core
Class DataFileType

java.lang.Object
  extended by net.sf.basedb.core.BasicItem<DataFileTypeData>
      extended by net.sf.basedb.core.DataFileType
All Implemented Interfaces:
AccessControlled, Controlled, Identifiable, Nameable, Removable, Validatable, ToTransferable<DataFileTypeInfo>

public class DataFileType
extends BasicItem<DataFileTypeData>
implements Nameable, Removable, ToTransferable<DataFileTypeInfo>, Validatable

This class is used to represent types of files that are used to hold data instead of importing the data into into the database.

This class can define a DataFileValidator and a DataFileMetadataReader that can be used to validate the if a file is actually of the correct type and, if it is, extract metadata from it.

Version:
2.5
Author:
Nicklas
Last modified
$Date: 2010-08-13 10:50:27 +0200 (Fri, 13 Aug 2010) $

Field Summary
static String AFFYMETRIX_CDF
          The external ID for the file type representing Affymetrix CDF files.
static String AFFYMETRIX_CEL
          The external ID for the file type representing Affymetrix CEL files.
static String BASEFILE_MATRIX
          The external ID for the file type representing a matrix BASEFile.
static String BASEFILE_SERIAL
          The external ID for the file type representing a serial BASEFile.
static String BFS_METADATA
          The external ID for the file type representing a BFS metadata file.
static String GENERIC_EXTRAVALUE_DATA
          The external ID for the file type representing generic analysed extra value data.
static String GENERIC_PRINT_MAP
          The external ID for the file type representing a generic print map (array design layout) of any type.
static String GENERIC_RAW_DATA
          The external ID for the file type representing a generic raw data file of any type.
static String GENERIC_REPORTER_MAP
          The external ID for the file type representing a generic reporter map (array design layout) of any type.
static String GENERIC_SPOT_DATA
          The external ID for the file type representing generic analysed spot data.
static int MAX_CLASSNAME_LENGTH
          The maximum length of the class names that can be stored in the database.
static int MAX_EXTENSION_LENGTH
          The maximum length of the file extension that can be stored in the database.
static int MAX_EXTERNAL_ID_LENGTH
          The maximum length of the external ID that can be stored in the database.
static int MAX_JARPATH_LENGTH
          The maximum length of the jar paths that can be stored in the database.
static String MEV_TDMS
          The external ID for the file type representing a MeV TDMS (Tab-Delimited Multiple Sample) file.
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
DataFileType(DataFileTypeData data)
          Creates a new filetype item from the given data.
 
Method Summary
static DataFileType getByExternalId(DbControl dc, String externalId)
          Get a DataFileType item when you know the external ID.
static DataFileType getById(DbControl dc, int id)
          Get a DataFileType object when you know the ID.
 String getDescription()
          Get the description for the item.
 String getExtension()
          Get the common file extension for data files of this type.
 String getExternalId()
          Get the external id for the data file type.
 FileType getGenericType()
          Get the generic file type for this data file type.
 Item getItemType()
          Get the type of item files of this type can be used on.
 DataFileMetadataReader getMetadataReader()
          Create a new instance of the DataFileMetadataReader class specified by getMetadataReaderClass().
 String getMetadataReaderClass()
          Get the class name of the Java class that is used to extract metadata from files of this type.
 String getMetadataReaderJarPath()
          Get the path to the JAR file where the meta data reader class is located.
 String getName()
          Get the name of the item.
static DataFileType getNew(DbControl dc, String externalId, Item itemType)
          Create a new data file type.
 ItemQuery<PlatformFileType> getPlatforms()
          Get a query that returns all platforms/variants that are using this file type.
static ItemQuery<DataFileType> getQuery()
          Get a query configured to retrieve DataFileType items.
static ItemQuery<DataFileType> getQuery(FileStoreEnabled item)
          Get a query configured to retrieve DataFileType:s that can be used on a given item.
static ItemQuery<DataFileType> getQuery(Platform platform, PlatformVariant variant, Item itemType, FileType genericType)
          Get a query to retrieve DataFileType:s that can be used on specific platform/variant for a given item and/or generic file type.
 Item getType()
          Get the type of item represented by the object.
 Set<ItemProxy> getUsingItems()
          Get all: FileSetMember:s using this file type PlatformFileType:s using this file type
 DataFileValidator getValidator()
          Create a new instance of the DataFileValidator class specified by getValidatorClass().
 String getValidatorClass()
          Get the class name of the Java class that is used to validate the files of this type.
 String getValidatorJarPath()
          Get the path to the JAR file where the validator class is located.
 boolean isRemoved()
          Check if the removed flag is set for this item.
 boolean isUsed()
          Check if: A file has been tagged with this type in a file set A platform is using this file type
 void setDescription(String description)
          Set the description for the item.
 void setExtension(String extension)
          Set the most common gile extension for data file of this type.
private  void setExternalId(String externalId)
           
 void setGenericType(FileType genericType)
          Set the generic file type of this item.
private  void setItemType(Item itemType)
           
 void setMetadataReaderClass(String metadataReaderClass)
          Set the class name of the Java class that is used to extract metadata from files of this type.
 void setMetadataReaderJarPath(String metadataReaderJarPath)
          Set the path to the JAR file where the meta data reader class is located.
 void setName(String name)
          Set the name of the item.
 void setRemoved(boolean removed)
          Set the removed flag for this item.
 void setValidatorClass(String validatorClass)
          Set the class name of the Java class that is used to validate the files of this type.
 void setValidatorJarPath(String validatorJarPath)
          Set the path to the JAR file where the validator class is located.
 DataFileTypeInfo toTransferable(DataFileTypeInfo info)
          Transfer the internal state to a transferable object.
(package private)  void validate()
          Check that the validator and meta data reader classes implement the correct interfaces.
 
Methods inherited from class net.sf.basedb.core.BasicItem
addUsingItems, addUsingItems, checkPermission, equals, getData, getDbControl, getId, getPermissions, getPluginPermissions, getSessionControl, getVersion, hashCode, hasPermission, initPermissions, isDetached, isInDatabase, onAfterCommit, onAfterInsert, onBeforeCommit, onRollback, setDbControl, setProjectDefaults, toString, toTransferable
 
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.DATAFILETYPE, getType()

AFFYMETRIX_CDF

public static final String AFFYMETRIX_CDF
The external ID for the file type representing Affymetrix CDF files.

See Also:
Constant Field Values

AFFYMETRIX_CEL

public static final String AFFYMETRIX_CEL
The external ID for the file type representing Affymetrix CEL files.

See Also:
Constant Field Values

GENERIC_RAW_DATA

public static final String GENERIC_RAW_DATA
The external ID for the file type representing a generic raw data file of any type.

See Also:
Constant Field Values

GENERIC_REPORTER_MAP

public static final String GENERIC_REPORTER_MAP
The external ID for the file type representing a generic reporter map (array design layout) of any type.

See Also:
Constant Field Values

GENERIC_PRINT_MAP

public static final String GENERIC_PRINT_MAP
The external ID for the file type representing a generic print map (array design layout) of any type.

See Also:
Constant Field Values

GENERIC_SPOT_DATA

public static final String GENERIC_SPOT_DATA
The external ID for the file type representing generic analysed spot data.

Since:
2.8
See Also:
Constant Field Values

GENERIC_EXTRAVALUE_DATA

public static final String GENERIC_EXTRAVALUE_DATA
The external ID for the file type representing generic analysed extra value data.

Since:
2.8
See Also:
Constant Field Values

BASEFILE_SERIAL

public static final String BASEFILE_SERIAL
The external ID for the file type representing a serial BASEFile.

Since:
2.11
See Also:
Constant Field Values

BASEFILE_MATRIX

public static final String BASEFILE_MATRIX
The external ID for the file type representing a matrix BASEFile.

Since:
2.11
See Also:
Constant Field Values

BFS_METADATA

public static final String BFS_METADATA
The external ID for the file type representing a BFS metadata file. The metadata file may reference additional files.

Since:
2.15
See Also:
Constant Field Values

MEV_TDMS

public static final String MEV_TDMS
The external ID for the file type representing a MeV TDMS (Tab-Delimited Multiple Sample) file.

Since:
2.11
See Also:
Constant Field Values

MAX_EXTENSION_LENGTH

public static final int MAX_EXTENSION_LENGTH
The maximum length of the file extension that can be stored in the database.

See Also:
setExtension(String), Constant Field Values

MAX_CLASSNAME_LENGTH

public static final int MAX_CLASSNAME_LENGTH
The maximum length of the class names that can be stored in the database.

See Also:
setValidatorClass(String), setMetadataReaderClass(String), Constant Field Values

MAX_JARPATH_LENGTH

public static final int MAX_JARPATH_LENGTH
The maximum length of the jar paths that can be stored in the database.

See Also:
setValidatorJarPath(String), setMetadataReaderJarPath(String), Constant Field Values

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

DataFileType

DataFileType(DataFileTypeData data)
Creates a new filetype item from the given data.

Parameters:
data - the data.
Method Detail

getNew

public static DataFileType getNew(DbControl dc,
                                  String externalId,
                                  Item itemType)
Create a new data file type.

Parameters:
dc - The DbControl to use for database access
externalId - The external ID of the new type, must be unique for all file types
itemType - The type of item that files of this type can be attached to. The item must implement the FileStoreEnabled interface
Returns:
The new file set member type object

getById

public static DataFileType getById(DbControl dc,
                                   int id)
                            throws ItemNotFoundException,
                                   PermissionDeniedException,
                                   BaseException
Get a DataFileType 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 DataFileType 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 DataFileType getByExternalId(DbControl dc,
                                           String externalId)
                                    throws ItemNotFoundException,
                                           PermissionDeniedException,
                                           BaseException
Get a DataFileType 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 DataFileType 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<DataFileType> getQuery()
                                        throws BaseException
Get a query configured to retrieve DataFileType items.

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

getQuery

public static ItemQuery<DataFileType> getQuery(FileStoreEnabled item)
Get a query configured to retrieve DataFileType:s that can be used on a given item. This method will check the FileStoreEnabled.getPlatform() and FileStoreEnabled.getVariant() values and restrict the query to only return items that can be used for that platform. If the item isn't attached to any platform or variant all data file types for the Identifiable.getType() are returned.

Parameters:
item - The item to get data file types for, or null to return all data file types
Returns:
An ItemQuery object

getQuery

public static ItemQuery<DataFileType> getQuery(Platform platform,
                                               PlatformVariant variant,
                                               Item itemType,
                                               FileType genericType)
Get a query to retrieve DataFileType:s that can be used on specific platform/variant for a given item and/or generic file type. All parameters are optional. If all are null the result is the same as getQuery().

Parameters:
platform - The platform, or null to not restrict by platform (unless a variant is given)
variant - The platform variant, or null to not restrict by variant
itemType - The type of item it should be possible to attach file to, or null to not restrict by item
genericType - The generic file type, or null to not restrict by file type
Returns:
A query returning data file types matching the specified restrictions
Since:
2.9

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

validate

void validate()
        throws InvalidDataException,
               BaseException
Check that the validator and meta data reader classes implement the correct interfaces.

Overrides:
validate in class BasicItem<DataFileTypeData>
Throws:
BaseException - If there is an error
InvalidDataException
Since:
2.6
See Also:
Validatable, Core API overview - Data validation, Coding rules and guidelines for item classes

toTransferable

public DataFileTypeInfo toTransferable(DataFileTypeInfo info)
Description copied from interface: ToTransferable
Transfer the internal state to a transferable object. The method should return the same object that is passed in as an argument.

Specified by:
toTransferable in interface ToTransferable<DataFileTypeInfo>
Parameters:
info - The transferable object to use
Returns:
The transferable object with values set.
Since:
2.5

getExternalId

public String getExternalId()
Get the external id for the data file type.


setExternalId

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

getGenericType

public FileType getGenericType()
Get the generic file type for this data file type.

Returns:
A FileType item

setGenericType

public void setGenericType(FileType genericType)
Set the generic file type of this item. Null is not allowed.

Parameters:
genericType - The generic type
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission

getExtension

public String getExtension()
Get the common file extension for data files of this type.

Returns:
A string or null if there is no common file extension

setExtension

public void setExtension(String extension)
Set the most common gile extension for data file of this type.

Parameters:
extension - The extension or null
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
StringTooLongException - If the string is longer that MAX_EXTENSION_LENGTH.

setItemType

private void setItemType(Item itemType)

getItemType

public Item getItemType()
Get the type of item files of this type can be used on. The item should implement the FileStoreEnabled interface.

Returns:
An Item object

getValidatorClass

public String getValidatorClass()
Get the class name of the Java class that is used to validate the files of this type. The class must implement the DataFileValidator interface.

Returns:
A class name or null if no validator exists

setValidatorClass

public void setValidatorClass(String validatorClass)
Set the class name of the Java class that is used to validate the files of this type. The class must implement the DataFileValidator interface.

Parameters:
validatorClass - The name of the class or null to disable validation
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
StringTooLongException - If the string is longer that MAX_CLASSNAME_LENGTH.

getValidatorJarPath

public String getValidatorJarPath()
Get the path to the JAR file where the validator class is located. If the path is null the validator must be in the class path.

Returns:
The JAR path or null
Since:
2.6

setValidatorJarPath

public void setValidatorJarPath(String validatorJarPath)
Set the path to the JAR file where the validator class is located.

Parameters:
validatorJarPath - The path to the JAR file or null if the validator is in the class path
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
StringTooLongException - If the string is longer that MAX_JARPATH_LENGTH.
Since:
2.6

getValidator

public DataFileValidator getValidator()
Create a new instance of the DataFileValidator class specified by getValidatorClass().

Returns:
A validator instance or null if no class has been specified
Throws:
BaseException - If an instance of the class can't be created

getMetadataReaderClass

public String getMetadataReaderClass()
Get the class name of the Java class that is used to extract metadata from files of this type. The class must implement the DataFileMetadataReader interface.

Returns:
A class name or null if no validator exists

setMetadataReaderClass

public void setMetadataReaderClass(String metadataReaderClass)
Set the class name of the Java class that is used to extract metadata from files of this type. The class must implement the DataFileMetadataReader interface.

Parameters:
metadataReaderClass - The name of the class or null to disable validation
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
StringTooLongException - If the string is longer that MAX_CLASSNAME_LENGTH.

getMetadataReaderJarPath

public String getMetadataReaderJarPath()
Get the path to the JAR file where the meta data reader class is located. If the path is null the reader must be in the class path.

Returns:
The JAR path or null
Since:
2.6

setMetadataReaderJarPath

public void setMetadataReaderJarPath(String metadataReaderJarPath)
Set the path to the JAR file where the meta data reader class is located.

Parameters:
metadataReaderJarPath - The path to the JAR file or null if the reader is in the class path
Throws:
PermissionDeniedException - If the logged in user doesn't have write permission
StringTooLongException - If the string is longer that MAX_JARPATH_LENGTH.
Since:
2.6

getMetadataReader

public DataFileMetadataReader getMetadataReader()
Create a new instance of the DataFileMetadataReader class specified by getMetadataReaderClass().

Returns:
A metadata reader instance or null if no class has been specified
Throws:
BaseException - If an instance of the class can't be created

getPlatforms

public ItemQuery<PlatformFileType> getPlatforms()
Get a query that returns all platforms/variants that are using this file type.

Returns:
A query object

2.17.2: 2011-06-17