Class DSpaceControlledVocabulary

java.lang.Object
org.dspace.core.SelfNamedPlugin
org.dspace.content.authority.DSpaceControlledVocabulary
All Implemented Interfaces:
ChoiceAuthority, HierarchicalAuthority, NameAwarePlugin

public class DSpaceControlledVocabulary extends SelfNamedPlugin implements HierarchicalAuthority
ChoiceAuthority source that reads the hierarchical vocabularies from ${dspace.dir}/config/controlled-vocabularies/*.xml and turns them into autocompleting authorities. Configuration: This MUST be configured as a self-named plugin, e.g.: plugin.selfnamed.org.dspace.content.authority.ChoiceAuthority = \ org.dspace.content.authority.DSpaceControlledVocabulary It AUTOMATICALLY configures a plugin instance for each XML file in the controlled vocabularies directory. The name of the plugin is the basename of the file; e.g., ${dspace.dir}/config/controlled-vocabularies/nsi.xml would generate a plugin called "nsi". Each configured plugin comes with three configuration options: vocabulary.plugin._plugin_.hierarchy.store = <true|false> # Store entire hierarchy along with selected value. Default: TRUE vocabulary.plugin._plugin_.hierarchy.suggest = <true|false> # Display entire hierarchy in the suggestion list. Default: TRUE vocabulary.plugin._plugin_.delimiter = "<string>" # Delimiter to use when building hierarchy strings. Default: "::"
Author:
Michael B. Klein
  • Field Details

    • xpathTemplate

      protected static String xpathTemplate
    • idTemplate

      protected static String idTemplate
    • labelTemplate

      protected static String labelTemplate
    • idParentTemplate

      protected static String idParentTemplate
    • rootTemplate

      protected static String rootTemplate
    • idAttribute

      protected static String idAttribute
    • labelAttribute

      protected static String labelAttribute
    • pluginNames

      protected static String[] pluginNames
    • vocabularyName

      protected String vocabularyName
    • vocabulary

      protected InputSource vocabulary
    • suggestHierarchy

      protected Boolean suggestHierarchy
    • storeHierarchy

      protected Boolean storeHierarchy
    • hierarchyDelimiter

      protected String hierarchyDelimiter
    • preloadLevel

      protected Integer preloadLevel
    • valueAttribute

      protected String valueAttribute
    • valueTemplate

      protected String valueTemplate
  • Constructor Details

    • DSpaceControlledVocabulary

      public DSpaceControlledVocabulary()
  • Method Details

    • storeAuthorityInMetadata

      public boolean storeAuthorityInMetadata()
      Description copied from interface: ChoiceAuthority
      Provide a recommendation to store the authority in the metadata value if available in the in the provided choice(s). Usually ChoiceAuthority should recommend that so the default is true and it only need to be implemented in the unusual scenario
      Specified by:
      storeAuthorityInMetadata in interface ChoiceAuthority
      Returns:
      true if the authority provided in any choice of this authority should be stored in the metadata value
    • getPluginNames

      public static String[] getPluginNames()
    • init

      protected void init(String locale)
    • buildString

      protected String buildString(Node node)
    • getMatches

      public Choices getMatches(String text, int start, int limit, String locale)
      Description copied from interface: ChoiceAuthority
      Get all values from the authority that match the preferred value. Note that the offering was entered by the user and may contain mixed/incorrect case, whitespace, etc so the plugin should be careful to clean up user data before making comparisons. Value of a "Name" field will be in canonical DSpace person name format, which is "Lastname, Firstname(s)", e.g. "Smith, John Q.". Some authorities with a small set of values may simply return the whole set for any sample value, although it's a good idea to set the defaultSelected index in the Choices instance to the choice, if any, that matches the value.
      Specified by:
      getMatches in interface ChoiceAuthority
      Parameters:
      text - user's value to match
      start - choice at which to start, 0 is first.
      limit - maximum number of choices to return, 0 for no limit.
      locale - explicit localization key if available, or null
      Returns:
      a Choices object (never null).
    • getBestMatch

      public Choices getBestMatch(String text, String locale)
      Description copied from interface: ChoiceAuthority
      Get the single "best" match (if any) of a value in the authority to the given user value. The "confidence" element of Choices is expected to be set to a meaningful value about the circumstances of this match. This call is typically used in non-interactive metadata ingest where there is no interactive agent to choose from among options.
      Specified by:
      getBestMatch in interface ChoiceAuthority
      Parameters:
      text - user's value to match
      locale - explicit localization key if available, or null
      Returns:
      a Choices object (never null) with 1 or 0 values.
    • getLabel

      public String getLabel(String key, String locale)
      Description copied from interface: ChoiceAuthority
      Get the canonical user-visible "label" (i.e. short descriptive text) for a key in the authority. Can be localized given the implicit or explicit locale specification. This may get called many times while populating a Web page so it should be implemented as efficiently as possible.
      Specified by:
      getLabel in interface ChoiceAuthority
      Parameters:
      key - authority key known to this authority.
      locale - explicit localization key if available, or null
      Returns:
      descriptive label - should always return something, never null.
    • getValue

      public String getValue(String key, String locale)
      Description copied from interface: ChoiceAuthority
      Get the canonical value to store for a key in the authority. Can be localized given the implicit or explicit locale specification.
      Specified by:
      getValue in interface ChoiceAuthority
      Parameters:
      key - authority key known to this authority.
      locale - explicit localization key if available, or null
      Returns:
      value to store - should always return something, never null.
    • getChoice

      public Choice getChoice(String authKey, String locale)
      Description copied from interface: ChoiceAuthority
      Build the preferred choice associated with the authKey. The default implementation delegate the creato to the ChoiceAuthority.getLabel(String, String) ChoiceAuthority.getValue(String, String) and ChoiceAuthority.getExtra(String, String) methods but can be directly overridden for better efficiency or special scenario
      Specified by:
      getChoice in interface ChoiceAuthority
      Parameters:
      authKey - authority key known to this authority.
      locale - explicit localization key if available, or null
      Returns:
      the preferred choice for this authKey and locale
    • isHierarchical

      public boolean isHierarchical()
      Description copied from interface: ChoiceAuthority
      Return true for hierarchical authorities
      Specified by:
      isHierarchical in interface ChoiceAuthority
      Specified by:
      isHierarchical in interface HierarchicalAuthority
      Returns:
      true if hierarchical, default false
    • getTopChoices

      public Choices getTopChoices(String authorityName, int start, int limit, String locale)
      Description copied from interface: HierarchicalAuthority
      Get all values from the authority that match the preferred value. Note that the offering was entered by the user and may contain mixed/incorrect case, whitespace, etc so the plugin should be careful to clean up user data before making comparisons. Value of a "Name" field will be in canonical DSpace person name format, which is "Lastname, Firstname(s)", e.g. "Smith, John Q.". Some authorities with a small set of values may simply return the whole set for any sample value, although it's a good idea to set the defaultSelected index in the Choices instance to the choice, if any, that matches the value.
      Specified by:
      getTopChoices in interface HierarchicalAuthority
      Parameters:
      authorityName - authority name
      start - choice at which to start, 0 is first.
      limit - maximum number of choices to return, 0 for no limit.
      locale - explicit localization key if available, or null
      Returns:
      a Choices object (never null).
    • getChoicesByParent

      public Choices getChoicesByParent(String authorityName, String parentId, int start, int limit, String locale)
      Description copied from interface: HierarchicalAuthority
      Get all values from the authority that match the preferred value. Note that the offering was entered by the user and may contain mixed/incorrect case, whitespace, etc so the plugin should be careful to clean up user data before making comparisons. Value of a "Name" field will be in canonical DSpace person name format, which is "Lastname, Firstname(s)", e.g. "Smith, John Q.". Some authorities with a small set of values may simply return the whole set for any sample value, although it's a good idea to set the defaultSelected index in the Choices instance to the choice, if any, that matches the value.
      Specified by:
      getChoicesByParent in interface HierarchicalAuthority
      Parameters:
      authorityName - authority name
      parentId - user's value to match
      start - choice at which to start, 0 is first.
      limit - maximum number of choices to return, 0 for no limit.
      locale - explicit localization key if available, or null
      Returns:
      a Choices object (never null).
    • getParentChoice

      public Choice getParentChoice(String authorityName, String childId, String locale)
      Description copied from interface: HierarchicalAuthority
      It returns the parent choice in the hierarchy if any
      Specified by:
      getParentChoice in interface HierarchicalAuthority
      Parameters:
      authorityName - authority name
      childId - user's value to match
      locale - explicit localization key if available, or null
      Returns:
      a Choice object
    • getPreloadLevel

      public Integer getPreloadLevel()
      Description copied from interface: HierarchicalAuthority
      Provides an hint for the UI to preload some levels to improve the UX. It usually mean that these preloaded level will be shown expanded by default
      Specified by:
      getPreloadLevel in interface ChoiceAuthority
      Specified by:
      getPreloadLevel in interface HierarchicalAuthority
      Returns:
      0 if hierarchical, null otherwise