Class Software

All Implemented Interfaces:
AccessControlled, Annotatable, Identifiable, Nameable, Ownable, Registered, Removable, Shareable, Subtypable

public class Software extends AnnotatedItem implements Registered, Subtypable
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: 2017-05-22 14:35:27 +0200 (må, 22 maj 2017) $
  • Field Details

    • TYPE

      private static final Item TYPE
      The type of item represented by this class.
      See Also:
      Last modified
      $Date: 2017-05-22 14:35:27 +0200 (må, 22 maj 2017) $
    • FEATURE_EXTRACTION

      public static final String FEATURE_EXTRACTION
      The id for the SoftwareType item representing the softwaretype "feature extraction software".
      Since:
      3.0
      See Also:
    • ALIGNMENT

      public static final String ALIGNMENT
      The id for the SoftwareType item representing software used for aligning sequenced data against a known reference database.
      Since:
      3.0
      See Also:
    • 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:
  • Constructor Details

    • Software

      Software(SoftwareData data)
      Creates a new software item.
      Parameters:
      data - the data
  • Method Details

    • getDefaultSystemId

      public static String getDefaultSystemId(Item itemType)
      Get the system id for the software subtype that should be used on an item that doesn't have a subtype. This includes Subtypable items with a null ItemSubtype and all other non-subtypable items which can be linked to a software.
      Parameters:
      itemType - The item type
      Returns:
      The system id of the default software type or null
      Since:
      3.0
    • getNew

      public static Software getNew(DbControl dc) throws BaseException
      Create a new Software item.
      Parameters:
      dc - The DbControl which will be used for permission checking and database access.
      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.
    • getData

      SoftwareData getData()
      Description copied from class: BasicItem
      Get the BasicData object that holds all data for this item.
      Overrides:
      getData in class AnnotatedItem
    • 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
    • setEntryDate

      public void setEntryDate(Date entryDate)
      Description copied from interface: Registered
      Set the date the entry was registered in the database. Implementations should only allow this property to be set before the item is first stored in the database. The intention of this method is to facilitate export/import of data between server.
      Specified by:
      setEntryDate in interface Registered
      Parameters:
      entryDate - A date or null to use today's date
    • getAnnotatableParents

      public Set<Annotatable> getAnnotatableParents()
      Description copied from interface: Annotatable
      Get all parents objects which are annotatable and the logged in user has read permission to. If the item doesn't have any annotatable parents, it may return null or an empty set. The method should only return the immediate parent(s), not parents to parents, etc. As of BASE 3.1 this method may also return child items if the child item is a Subtypable item that has a subtype with the ItemSubtype.getPushAnnotations() flag set.
      Specified by:
      getAnnotatableParents in interface Annotatable
      Returns:
      Always null
      Since:
      3.3
    • getItemSubtype

      public ItemSubtype getItemSubtype()
      Description copied from interface: Subtypable
      Get the subtype of the item.
      Specified by:
      getItemSubtype in interface Subtypable
      Returns:
      A subtype of null if not set
      See Also:
    • setItemSubtype

      public void setItemSubtype(ItemSubtype subtype)
      Description copied from interface: Subtypable
      Set the subtype on the item.
      Specified by:
      setItemSubtype in interface Subtypable
      Parameters:
      subtype - A subtype or null
      See Also:
    • isUsed

      public boolean isUsed() throws BaseException
      Check if:
      • a RawBioAssay was created with this software
      • a DerivedBioassay was created with this software
      Overrides:
      isUsed in class BasicItem
      Returns:
      TRUE if this item is used, FALSE otherwise
      Throws:
      BaseException - If not able to tell if item is used or not.
      See Also:
    • getUsingItems

      public Set<ItemProxy> getUsingItems()
      Get all:
      Overrides:
      getUsingItems in class BasicItem
      Returns:
      A set containing proxies for the items, or an empty set if no items are using this item
      Since:
      2.2
      See Also:
    • 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