Class TypedProperties

All Implemented Interfaces:
Serializable, Cloneable, Map<Object,Object>

public class TypedProperties extends Properties
Type-aware properties. Extends the JDK Properties class to provide accessors that convert values to certain types, using default values if a conversion is not possible.
Since:
4.0
Author:
Manik Surtani
See Also:
  • Constructor Details

    • TypedProperties

      public TypedProperties(Map<?,?> p)
      Copy constructor
      Parameters:
      p - properties instance to from. If null, then it is treated as an empty Properties instance.
    • TypedProperties

      public TypedProperties()
      Default constructor that returns an empty instance
  • Method Details

    • toTypedProperties

      public static TypedProperties toTypedProperties(Map<?,?> p)
      Factory method that converts a JDK Map (including Properties instance to an instance of TypedProperties, if needed.
      Parameters:
      p - properties to convert.
      Returns:
      A TypedProperties object. Returns an empty TypedProperties instance if p is null.
    • getIntProperty

      public int getIntProperty(String key, int defaultValue)
      Retrieves an integer property value. Returns the default if not found or invalid.
      Parameters:
      key - the property key.
      defaultValue - the value to return if the key is missing or invalid.
      Returns:
      the integer value of the property or the default value.
    • getIntProperty

      public int getIntProperty(String key, int defaultValue, boolean doStringReplace)
      Retrieves an integer property value. Returns the default if not found or invalid.
      Parameters:
      key - the property key.
      defaultValue - the value to return if the key is missing or invalid.
      doStringReplace - whether to apply string property replacement.
      Returns:
      the integer value of the property or the default value.
    • getLongProperty

      public long getLongProperty(String key, long defaultValue)
      Retrieves a long property value. Returns the default if not found or invalid.
      Parameters:
      key - the property key.
      defaultValue - the value to return if the key is missing or invalid.
      Returns:
      the long value of the property or the default value.
    • getLongProperty

      public long getLongProperty(String key, long defaultValue, boolean doStringReplace)
      Retrieves a long property value. Returns the default if not found or invalid.
      Parameters:
      key - the property key.
      defaultValue - the value to return if the key is missing or invalid.
      doStringReplace - whether to apply string property replacement.
      Returns:
      the long value of the property or the default value.
    • getDurationProperty

      public long getDurationProperty(String key, long defaultValue)
      Retrieves a duration property value in long. Returns the default if not found or invalid.
      Parameters:
      key - the property key.
      defaultValue - the value to return if the key is missing or invalid.
      Returns:
      the long value of the duration property or the default value.
    • getDurationProperty

      public long getDurationProperty(String key, long defaultValue, boolean doStringReplace)
      Retrieves a duration property value in long. Returns the default if not found or invalid.
      Parameters:
      key - the property key.
      defaultValue - the value to return if the key is missing or invalid.
      doStringReplace - whether to apply string property replacement.
      Returns:
      the long value of the duration property or the default value.
    • getBooleanProperty

      public boolean getBooleanProperty(String key, boolean defaultValue)
      Retrieves a boolean property value. Returns the default if not found or invalid.
      Parameters:
      key - the property key.
      defaultValue - the value to return if the key is missing or invalid.
      Returns:
      the boolean value of the property or the default value.
    • getBooleanProperty

      public boolean getBooleanProperty(String key, boolean defaultValue, boolean doStringReplace)
      Retrieves a boolean property value. Returns the default if not found or invalid.
      Parameters:
      key - the property key.
      defaultValue - the value to return if the key is missing or invalid.
      doStringReplace - whether to apply string property replacement.
      Returns:
      the boolean value of the property or the default value.
    • getEnumProperty

      public <T extends Enum<T>> T getEnumProperty(String key, Class<T> enumClass, T defaultValue)
      Retrieves an enum property value. Returns the default if not found or invalid.
      Parameters:
      key - the property key.
      defaultValue - the value to return if the key is missing or invalid.
      Returns:
      the enum value of the property or the default value.
    • getEnumProperty

      public <T extends Enum<T>> T getEnumProperty(String key, Class<T> enumClass, T defaultValue, boolean doStringReplace)
      Retrieves an enum property value. Returns the default if not found or invalid.
      Parameters:
      key - the property key.
      defaultValue - the value to return if the key is missing or invalid.
      doStringReplace - whether to apply string property replacement.
      Returns:
      the enum value of the property or the default value.
    • getProperty

      public String getProperty(String key, String defaultValue, boolean doStringReplace)
      Get the property associated with the key, optionally applying string property replacement as defined in StringPropertyReplacer.replaceProperties(String) to the result.
      Parameters:
      key - the hashtable key.
      defaultValue - a default value.
      doStringReplace - boolean indicating whether to apply string property replacement
      Returns:
      the value in this property list with the specified key value after optionally being inspected for String property replacement
    • getProperty

      public String getProperty(String key, boolean doStringReplace)
      Get the property associated with the key, optionally applying string property replacement as defined in StringPropertyReplacer.replaceProperties(String) to the result.
      Parameters:
      key - the hashtable key.
      doStringReplace - boolean indicating whether to apply string property replacement
      Returns:
      the value in this property list with the specified key value after optionally being inspected for String property replacement
    • putIfAbsent

      public TypedProperties putIfAbsent(String key, String value)
      Put a value if the associated key is not present
      Parameters:
      key - new key
      value - new value
      Returns:
      this TypedProperties instance for method chaining
    • setProperty

      public TypedProperties setProperty(String key, String value)
      Overrides:
      setProperty in class Properties
    • setProperty

      public TypedProperties setProperty(String key, int value)
      Sets an integer property value.
      Parameters:
      key - the property key.
      value - the integer value to set.
      Returns:
      this TypedProperties instance for chaining.
    • setProperty

      public TypedProperties setProperty(String key, long value)
      Sets a long property value.
      Parameters:
      key - the property key.
      value - the long value to set.
      Returns:
      this TypedProperties instance for chaining.
    • setProperty

      public TypedProperties setProperty(String key, boolean value)
      Sets a boolean property value.
      Parameters:
      key - the property key.
      value - the boolean value to set.
      Returns:
      this TypedProperties instance for chaining.