Interface ProductDerivation

All Known Subinterfaces:
OpenJPAProductDerivation
All Known Implementing Classes:
AbstractProductDerivation, JDBCPersistenceProductDerivation, JDBCProductDerivation, PersistenceProductDerivation, ProductDerivation

public interface ProductDerivation
Hooks for deriving products with additional functionality. Parses configuration information from global, default or explictly-specified resources. All implementations of this interface will have a chance to mutate a Configuration both before and after the user-specified configuration data is loaded. The order in which the product derivations are evaluated is determined by the specificity of the derivation type.
Since:
0.4.1
Author:
Abe White, Pinaki Poddar
  • Field Details

  • Method Details

    • getType

      int getType()
      Return the type of derivation.
    • getConfigurationPrefix

      String getConfigurationPrefix()
      Return the configuration prefix for properties of this product.
    • validate

      void validate() throws Exception
      Ensure that this derivation is valid. This action might consist of loading classes for the product this derivation represents to be sure they exist. Throw any throwable to indicate an invalid derivation. Invalid derivations will not be used.
      Throws:
      Exception
    • loadGlobals

      ConfigurationProvider loadGlobals(ClassLoader loader) throws Exception
      Load globals into the returned ConfigurationProvider, or return null if no globals are found.
      Throws:
      Exception
    • loadDefaults

      ConfigurationProvider loadDefaults(ClassLoader loader) throws Exception
      Load defaults into the returned ConfigurationProvider, or return null if no defaults are found.
      Throws:
      Exception
    • load

      ConfigurationProvider load(String resource, String anchor, ClassLoader loader) throws Exception
      Load the given given resource into the returned ConfigurationProvider, or return null if it is not a resource this receiver understands. The given class loader may be null.
      Parameters:
      anchor - optional named anchor within a multiple-configuration resource
      Throws:
      Exception
    • load

      ConfigurationProvider load(File file, String anchor) throws Exception
      Load given file, or return null if it is not a file this receiver understands.
      Parameters:
      anchor - optional named anchor within a multiple-configuration file
      Throws:
      Exception
    • getDefaultResourceLocation

      String getDefaultResourceLocation()
      Return a string identifying the default resource location for this product derivation, if one exists. If there is no default location, returns null.
      Since:
      1.1.0
    • getAnchorsInFile

      List<String> getAnchorsInFile(File file) throws IOException, Exception
      Return a List of all the anchors defined in file. The returned names are not fully-qualified, so must be used in conjunction with file in calls to load(java.io.File, String). Returns null or an empty list if no anchors could be found.
      Throws:
      IOException
      Exception
      Since:
      1.1.0
    • getAnchorsInResource

      List<String> getAnchorsInResource(String resource) throws Exception
      Return a List of all the anchors defined in resource. The returned names are not fully-qualified, so must be used in conjunction with resource in calls to load(java.io.File, String). Returns null or an empty list if no anchors could be found.
      Throws:
      Exception
      Since:
      1.1.0
    • beforeConfigurationConstruct

      boolean beforeConfigurationConstruct(ConfigurationProvider cp)
      Provides the instance with a callback to mutate the initial properties of the ConfigurationProvider. This is primarily to alter or add properties that determine what type of configuration is constructed, and therefore is typically used at runtime only.
      Returns:
      true if given ConfigurationProvider has been mutated.
    • beforeConfigurationLoad

      boolean beforeConfigurationLoad(Configuration conf)
      Provides the instance with the opportunity to mutate conf before the user configuration is applied.
      Returns:
      true if given Configuration has been mutated.
    • afterSpecificationSet

      boolean afterSpecificationSet(Configuration conf)
      Called after the specification has been set.
      Returns:
      true if given Configuration has been mutated.
    • beforeConfigurationClose

      void beforeConfigurationClose(Configuration conf)
      Called before the given Configuration is closed.
      Since:
      0.9.7
    • getSupportedQueryHints

      Set<String> getSupportedQueryHints()
      Return set of Query hint keys recognized by this receiver.
      Since:
      2.0.0