Class PluginType

java.lang.Object
net.sf.basedb.core.BasicItem
net.sf.basedb.core.PluginType
All Implemented Interfaces:
AccessControlled, Identifiable, Nameable, Registered, Removable

public class PluginType
extends BasicItem
implements Nameable, Removable, Registered
Version:
2.0
Author:
Nicklas
Last modified
$Date: 2017-05-22 14:35:27 +0200 (må, 22 maj 2017) $
  • Field Details

    • TYPE

      public static final Item TYPE
      The type of item represented by this class.
      See Also:
      Item.PLUGINTYPE, getType()
    • MAX_INTERFACENAME_LENGTH

      public static final int MAX_INTERFACENAME_LENGTH
      The maximum length of the interface name that can be stored in the database. Check the length against this value before calling the setInterfaceName(String) method to avoid exceptions.
      See Also:
      Constant Field Values
    • MAX_JARFILE_LENGTH

      public static final int MAX_JARFILE_LENGTH
      The maximum length of the jar path name that can be stored in the database.
      Since:
      3.0
      See Also:
      Constant Field Values
  • Constructor Details

    • PluginType

      PluginType​(PluginTypeData data)
      Creates a plugin type item.
      Parameters:
      data - the data
  • Method Details

    • getNew

      public static PluginType getNew​(DbControl dc, String interfaceName, String jarFile) throws BaseException
      Create a new PluginType item.
      Parameters:
      dc - The DbControl which will be used for permission checking and database access.
      interfaceName - The name of an interface that a plugin must implement to be of this type
      jarFile - Optional file name of the JAR file which contains the plugin class. The JAR file must be located in the plugins.dir directory. If not specified the plugin must be in the classpath
      Returns:
      The new PluginDefinition item
      Throws:
      BaseException - If there is an error
    • getById

      public static PluginType getById​(DbControl dc, int id) throws ItemNotFoundException, PermissionDeniedException, BaseException
      Get a PluginType 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 PluginType item
      Throws:
      ItemNotFoundException - If an item with the specified id is not found
      PermissionDeniedException - If the logged in user doesn't have read permission to the item
      BaseException - If there is another error
    • getByInterfaceName

      public static PluginType getByInterfaceName​(DbControl dc, String interfaceName) throws ItemNotFoundException, PermissionDeniedException, BaseException
      Get a PluginType object when you know the interface name it represents.
      Parameters:
      dc - The DbControl which will be used for permission checking and database access.
      interfaceName - The interface name of the plugin type
      Returns:
      The PluginType item
      Throws:
      ItemNotFoundException - If an item with the specified interface name is not found
      PermissionDeniedException - If the logged in user doesn't have read permission to the item
      BaseException - If there is another error
    • getQuery

      public static ItemQuery<PluginType> getQuery()
      Get a query configured to retrieve plugin types.
      Returns:
      An ItemQuery object
    • getData

      PluginTypeData getData()
      Description copied from class: BasicItem
      Get the BasicData object that holds all data for this item.
      Specified by:
      getData in class BasicItem
    • 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
    • initPermissions

      void initPermissions​(int granted, int denied) throws BaseException
      All users get READ access.
      Overrides:
      initPermissions in class BasicItem
      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
    • 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
    • getRemovedBy

      public User getRemovedBy() throws PermissionDeniedException, ItemNotFoundException
      Description copied from interface: Removable
      Get the user that flagged this item for removal.
      Specified by:
      getRemovedBy in interface Removable
      Returns:
      A User object, or null if this item has not been flagged
      Throws:
      PermissionDeniedException - If the logged in user doesn't have Permission.READ permission for the user
      ItemNotFoundException - If the user that removed this item can't be found
    • 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
    • getInterfaceName

      public String getInterfaceName()
      Get the class name of the Java class that implements this plugin. The specified class must implement the Plugin interface.
      Returns:
      The class name for this plugin
    • setInterfaceName

      private void setInterfaceName​(String interfaceName) throws InvalidDataException
      The class name cannot be changed. Used internally only.
      Throws:
      InvalidDataException
    • getJarFile

      public String getJarFile()
      Get the name of the JAR file that contains this plug-in. If this value is null, the plug-in must be on the classpath (eg. in WEB-INF/lib).
      Since:
      3.0
    • getJarPath

      public String getJarPath()
      Get the path to the JAR file that contains the plugin class file. If this value is null, the plugin must be on the classpath.
    • setJarFile

      private void setJarFile​(String jarFile) throws InvalidDataException
      The jar path cannot be changed. Used internally only.
      Throws:
      InvalidDataException
    • loadInterfaceInformation

      public void loadInterfaceInformation​(String jarFile, String interfaceName) throws InvalidDataException, BaseException
      Parameters:
      jarFile - File name of the jar file containing the plug-in. The JAR file must be located in the directory spercified by 'plugins.dir' setting in base.config. Null is allowed if plugin is located in the classpath (eg. WEB-INF/lib).
      interfaceName - The name of an interface that a plugin must implement to be of this type.
      Throws:
      InvalidDataException - If the found class not really is an interface, or if the found interface doesn't extend from Plugin
      BaseException - If there is some other error.
    • getPlugins

      public ItemQuery<PluginDefinition> getPlugins()
      Get a query that returns the plugin definitions which implements this type.
      See Also:
      PluginDefinition.getQuery()