2.17.2: 2011-06-17

net.sf.basedb.core
Class QuotaType

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

public class QuotaType
extends BasicItem<QuotaTypeData>
implements Nameable, SystemItem, Registered

This class represents the different types a quota can have.

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

Field Summary
static String EXPERIMENT
          The ID for experiments.
static String FILE
          The ID for the file.
static String RAW_DATA
          The ID for the raw data.
static String TOTAL
          The ID for the total quota.
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
QuotaType(QuotaTypeData data)
          Creates a new QuotaType item.
 
Method Summary
static QuotaType getById(DbControl dc, int id)
          Get a QuotaType 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<QuotaType> getQuery()
          Get a query configured to retrieve QuotaType.
 String getSystemId()
          Get the system id for the item.
 Item getType()
          Get the type of item represented by the object.
 boolean hasSecondaryLocation()
          Check if items using quota from this quota type can be stored in the secondary location or not.
(package private)  void initPermissions(int granted, int denied)
          The logged in user has read permission to the quota assigned to him/her.
 boolean isSystemItem()
          Check if the item is a system item or not.
 boolean isUsed()
          Check if this item is used by some other item.
 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, getUsingItems, 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

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

See Also:
Item.QUOTATYPE, getType()

TOTAL

public static final String TOTAL
The ID for the total quota.

See Also:
Constant Field Values

FILE

public static final String FILE
The ID for the file.

See Also:
Constant Field Values

RAW_DATA

public static final String RAW_DATA
The ID for the raw data.

See Also:
Constant Field Values

EXPERIMENT

public static final String EXPERIMENT
The ID for experiments.

See Also:
Constant Field Values
Constructor Detail

QuotaType

QuotaType(QuotaTypeData data)
Creates a new QuotaType item.

Parameters:
data - The data class for this item.
Method Detail

getById

public static QuotaType getById(DbControl dc,
                                int id)
                         throws ItemNotFoundException,
                                PermissionDeniedException,
                                BaseException
Get a QuotaType 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 QuotaType 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<QuotaType> getQuery()
Get a query configured to retrieve QuotaType. All logged in users have READ permission to all QuotaType items.

Returns:
An ItemQuery object

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

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()
Description copied from class: BasicItem
Check if this item is used by some other item. With used we mean that another item is linking to this item in way that prevents this item from beeing deleted. Ie. if we tried to delete an item that is used, we would get a foreign key violation error from the database. If the subclass overrides this method it should propagate the call to the superclass, ie. super.isUsed(), unless it has decided that the item is used by some other means.

Overrides:
isUsed in class BasicItem<QuotaTypeData>
Returns:
Allways return true.
See Also:
BasicItem.getUsingItems()

initPermissions

void initPermissions(int granted,
                     int denied)
               throws BaseException
The logged in user has read permission to the quota assigned to him/her. If this is a system item, delete and create permissions are denied.

Overrides:
initPermissions in class BasicItem<QuotaTypeData>
Parameters:
granted - Permissions that have been granted by the subclass
denied - Permissions that have been denied by the subclass
Throws:
BaseException - This exception is thrown if there is any error

hasSecondaryLocation

public boolean hasSecondaryLocation()
Check if items using quota from this quota type can be stored in the secondary location or not.

Returns:
true if the secondary location can be used, false otherwise

2.17.2: 2011-06-17