java.lang.Object
org.eclipse.persistence.internal.sessions.PropertiesHandler

public class PropertiesHandler extends Object
The class processes some of EclipseLink properties. The class may be used for any properties, but it only makes sense to use it in the following two cases: 1. There is a set of legal values defined either requiring translation (like CacheTypeProp); or not (like LoggingLevelProp). 2. Property is really a prefix from which the property obtained by appending entity or class name (like DescriptorCustomizerProp - it corresponds to "eclipselink.descriptor.customizer." prefix that allows to define properties like "eclipselink.descriptor.customizer.myPackage.MyClass"). EclipseLink properties and their values defined in org.eclipse.persistence.config package. To add a new property: Define a new property in PersistenceUnitProperties; Add a class containing property's values if required to config package (like CacheType); Alternatively values may be already defined elsewhere (like in LoggingLevelProp). Add an inner class to this class extending Prop corresponding to the new property (like CacheTypeProp); The first constructor parameter is property name; the second is default value; In constructor provide 2-dimensional value array in case the values should be translated (like CacheTypeProp); in case translation is not required provide a single-dimension array (like LoggingLevelProp). In inner class Prop static initializer addProp an instance of the new prop class (like addProp(new CacheTypeProp())).
See Also:
  • Constructor Details

    • PropertiesHandler

      public PropertiesHandler()
  • Method Details

    • getPropertyValue

      public static String getPropertyValue(String name, Map m)
      INTERNAL: Gets property value from the map, if none found looks in System properties. Use this to get a value for a non-prefixed property. Could be used on prefixes (like "org.eclipse.persistence.cache-type.") too, but will always return null Throws IllegalArgumentException in case the property value is illegal.
    • getPropertyValueLogDebug

      public static String getPropertyValueLogDebug(String name, Map m, AbstractSession session)
    • getPropertyValue

      public static String getPropertyValue(String name, Map m, boolean useSystemAsDefault)
    • getPropertyValueLogDebug

      public static String getPropertyValueLogDebug(String name, Map m, AbstractSession session, boolean useSystemAsDefault)
    • getPropertyValue

      public static String getPropertyValue(String name, String value)
      INTERNAL: Given property name and value verifies and translates the value. Throws IllegalArgumentException in case the property value is illegal.
    • getPropertyValueLogDebug

      public static String getPropertyValueLogDebug(String name, String value, AbstractSession session)
    • getPrefixedPropertyValue

      public static String getPrefixedPropertyValue(String prefix, String suffix, Map m)
      INTERNAL: Gets property value from the map, if none found looks in System properties. Use this to get a value for a prefixed property: for "org.eclipse.persistence.cache-type.Employee" pass "org.eclipse.persistence.cache-type.", "Employee". Throws IllegalArgumentException in case the property value is illegal.
    • getPrefixValues

      public static Map getPrefixValues(String prefix, Map m)
      INTERNAL: Gets properties' values from the map, if none found looks in System properties. In the returned map values keyed by suffixes. Use it with prefixes (like "org.eclipse.persistence.cache-type."). Could be used on simple properties (not prefixes, too), but will always return either an empty map or a map containing a single value keyed by an empty String. Throws IllegalArgumentException in case the property value is illegal.
    • getPrefixValuesLogDebug

      public static Map getPrefixValuesLogDebug(String prefix, Map m, AbstractSession session)
    • getDefaultPropertyValue

      public static String getDefaultPropertyValue(String name)
      INTERNAL: Returns the default property value that should be applied. Throws IllegalArgumentException in case the name doesn't correspond to any property.
    • getDefaultPropertyValueLogDebug

      public static String getDefaultPropertyValueLogDebug(String name, AbstractSession session)
    • shouldUseDefault

      protected static boolean shouldUseDefault(String value)
      INTERNAL: Empty String value indicates that the default property value should be used.