Interface ProfileProperties

All Superinterfaces:
org.refcodes.mixin.AnnotatorAccessor, org.refcodes.struct.CanonicalMap, org.refcodes.struct.Containable, org.refcodes.mixin.DelimiterAccessor, org.refcodes.struct.Dictionary<String,String>, org.refcodes.mixin.Dumpable, org.refcodes.mixin.EmptyAccessor, org.refcodes.struct.InterOperableMap<String>, org.refcodes.struct.Keys<String,String>, org.refcodes.struct.PathMap<String>, Properties, org.refcodes.mixin.TypeAccessor<String>
All Known Subinterfaces:
ProfileProperties.MutableProfileProperties, ProfileProperties.ProfilePropertiesBuilder
All Known Implementing Classes:
ProfilePropertiesDecorator

public interface ProfileProperties extends Properties
The ProfileProperties extend the Properties with Runtime-Profiles support. Properties belonging to provided Runtime-Profiles overwrite the default properties. Use toRuntimeProfile() to generate accordingly processed Runtime-Profiles with Runtime-Profiles defined below the getRuntimeProfilesPath(), which by default is "/runtime/profiles". As more than one profile can be evaluated (a preceding profile overwriting succeeding profile), the getRuntimeProfilesPath() points to an array with the Runtime-Profiles denoted as follows (assuming "/runtime/profiles" containing your active Runtime-Profiles):
  • runtime/profiles/0=local
  • runtime/profiles/1=oauth
  • runtime/profiles/2=development
(getRuntimeProfilesPath() defaults to "runtime/profiles" represented by the path defined by PropertiesPath.RUNTIME_PROFILES_PATH) In case a value is found at the path "runtime/profiles", this is parsed as a comma-separated list and converted to an array. The above configuration therewith may also be written as follows: runtime/profiles=local,oauth,development This array beats the above kind of declaration so that the active Runtime-Profiles can easily be overwritten by ProfileProperties supporting Java System-Properties (passed to the JVM via "-Dx=y") e.g. the RuntimePropertiesComposite found in the refcodes-runtime artifact. Below find an example on properties with settings for the above Runtime-Profiles:
  • db_url=someStagingDbUrl
  • db_user=admin
  • security=false
  • oauth/security=true
  • local/db_user=devops
  • local/db_url=someLocalDbUrl
  • development/db_user=admin
  • development/db_url=someDevelopmentDbUrl
  • test/db_user=test
  • test/db_url=someTestDbUrl
In the above example, the default settings would be:
  • db_url=someStagingDbUrl
  • db_user=admin
The default settings are replaced / enriched by the settings found in the "local" profile, any settings not found for the "local" profile are overwritten / enriched by the "oauth" profile. Any settings not found in the "oauth" profile (and not found in the "local" profile") are overwritten / enriched by the "development" profile. The properties created from the active Runtime-Profiles specified below the path "runtime/profiles" via toRuntimeProfile() result in the below default properties:
  • /db_url:= someLocalDbUrl
  • /db_user:= devops
  • /security:= true
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    The Interface MutableProfileProperties.
    static interface 
    The Interface ProfilePropertiesBuilder.

    Nested classes/interfaces inherited from interface org.refcodes.mixin.AnnotatorAccessor

    org.refcodes.mixin.AnnotatorAccessor.AnnotatorBuilder<B extends org.refcodes.mixin.AnnotatorAccessor.AnnotatorBuilder<B>>, org.refcodes.mixin.AnnotatorAccessor.AnnotatorMutator, org.refcodes.mixin.AnnotatorAccessor.AnnotatorProperty

    Nested classes/interfaces inherited from interface org.refcodes.struct.CanonicalMap

    org.refcodes.struct.CanonicalMap.CanonicalMapBuilder, org.refcodes.struct.CanonicalMap.MutableCanonicalMap

    Nested classes/interfaces inherited from interface org.refcodes.mixin.DelimiterAccessor

    org.refcodes.mixin.DelimiterAccessor.DelimiterBuilder<B extends org.refcodes.mixin.DelimiterAccessor.DelimiterBuilder<B>>, org.refcodes.mixin.DelimiterAccessor.DelimiterMutator, org.refcodes.mixin.DelimiterAccessor.DelimiterProperty

    Nested classes/interfaces inherited from interface org.refcodes.struct.Dictionary

    org.refcodes.struct.Dictionary.MutableDictionary<K extends Object,V extends Object>

    Nested classes/interfaces inherited from interface org.refcodes.mixin.EmptyAccessor

    org.refcodes.mixin.EmptyAccessor.EmptyMutator, org.refcodes.mixin.EmptyAccessor.EmptyProperty

    Nested classes/interfaces inherited from interface org.refcodes.struct.InterOperableMap

    org.refcodes.struct.InterOperableMap.InterOperableMapBuilder<T extends Object>, org.refcodes.struct.InterOperableMap.MutableInterOperableMap<T extends Object>

    Nested classes/interfaces inherited from interface org.refcodes.struct.Keys

    org.refcodes.struct.Keys.MutableKeys<K extends Object,V extends Object>, org.refcodes.struct.Keys.MutableValues<K extends Object,V extends Object>

    Nested classes/interfaces inherited from interface org.refcodes.struct.PathMap

    org.refcodes.struct.PathMap.MutablePathMap<T extends Object>, org.refcodes.struct.PathMap.PathMapBuilder<T extends Object>

    Nested classes/interfaces inherited from interface org.refcodes.properties.Properties

    Properties.MutableProperties, Properties.PropertiesBuilder

    Nested classes/interfaces inherited from interface org.refcodes.mixin.TypeAccessor

    org.refcodes.mixin.TypeAccessor.TypeBuilder<T extends Object,B extends org.refcodes.mixin.TypeAccessor.TypeBuilder<T,B>>, org.refcodes.mixin.TypeAccessor.TypeMutator<T extends Object>, org.refcodes.mixin.TypeAccessor.TypeProperty<T extends Object>
  • Field Summary

    Fields inherited from interface org.refcodes.struct.PathMap

    ANNOTATOR, DELIMITER

    Fields inherited from interface org.refcodes.properties.Properties

    DEFAULT_COMMENT
  • Method Summary

    Modifier and Type
    Method
    Description
    default String[]
    The getRuntimeProfilesPath() points to an array with the Runtime-Profiles denoted as follows (pointing to your active Runtime-Profiles): runtime/profiles/0=local runtime/profiles/1=oauth runtime/profiles/2=development (getRuntimeProfilesPath() defaults to "runtime/profiles" represented by the path defined by PropertiesPath.RUNTIME_PROFILES_PATH) In case a value is found at the path "runtime/profiles", this is parsed as a comma-separated list and converted to an array.
    default String
    Returns the path which points to your active Runtime-Profiles.
    default Properties
    Evaluates the active Runtime-Profiles as of getRuntimeProfiles() and creates the according Properties.
    default Properties
    toRuntimeProfile(String... aProfiles)
    Evaluates the provided Runtime-Profiles and creates the according Properties.

    Methods inherited from interface org.refcodes.struct.CanonicalMap

    asArray, asArray, asArray, asArray, asBooleanArray, asBooleanArray, asBooleanArray, asBooleanArray, asByteArray, asByteArray, asByteArray, asByteArray, asCharArray, asCharArray, asCharArray, asCharArray, asDoubleArray, asDoubleArray, asDoubleArray, asDoubleArray, asFloatArray, asFloatArray, asFloatArray, asFloatArray, asIntArray, asIntArray, asIntArray, asIntArray, asLongArray, asLongArray, asLongArray, asLongArray, asShortArray, asShortArray, asShortArray, asShortArray, queryBetween, toMap, toProperties

    Methods inherited from interface org.refcodes.struct.Containable

    size

    Methods inherited from interface org.refcodes.mixin.Dumpable

    toDump, toDump

    Methods inherited from interface org.refcodes.mixin.EmptyAccessor

    isEmpty

    Methods inherited from interface org.refcodes.struct.InterOperableMap

    getBoolean, getBoolean, getBoolean, getBoolean, getBoolean, getBooleanOr, getBooleanOr, getBooleanOr, getBooleanOr, getBooleanOr, getByte, getByte, getByte, getByte, getByte, getByteOr, getByteOr, getByteOr, getByteOr, getByteOr, getChar, getChar, getChar, getChar, getChar, getCharOr, getCharOr, getCharOr, getCharOr, getCharOr, getClass, getClass, getClass, getClass, getClass, getClassOr, getClassOr, getClassOr, getClassOr, getClassOr, getDouble, getDouble, getDouble, getDouble, getDouble, getDoubleOr, getDoubleOr, getDoubleOr, getDoubleOr, getDoubleOr, getEnum, getEnum, getEnum, getEnum, getEnum, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getFloat, getFloat, getFloat, getFloat, getFloat, getFloatOr, getFloatOr, getFloatOr, getFloatOr, getFloatOr, getInt, getInt, getInt, getInt, getInt, getIntOr, getIntOr, getIntOr, getIntOr, getIntOr, getLong, getLong, getLong, getLong, getLong, getLongOr, getLongOr, getLongOr, getLongOr, getLongOr, getShort, getShort, getShort, getShort, getShort, getShortOr, getShortOr, getShortOr, getShortOr, getShortOr, getString, getString, getString, getString, getString, getStringOr, getStringOr, getStringOr, getStringOr, getStringOr

    Methods inherited from interface org.refcodes.struct.Keys

    containsKey, get, getOr, keySet, use, values

    Methods inherited from interface org.refcodes.struct.PathMap

    children, children, children, children, children, children, containsKey, containsKey, containsKey, dirs, dirs, dirs, dirs, dirs, dirs, findPaths, fromExternalPath, get, get, get, getArray, getArray, getArray, getArray, getArray, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayOr, getArrayOr, getArrayOr, getArrayOr, getArrayOr, getDirIndexes, getDirIndexes, getDirIndexes, getDirIndexes, getDirIndexes, getRootPath, getValueAt, getValueAt, getValueAt, getValueAt, getValueAt, getValueAt, hasChildren, hasChildren, hasChildren, hasChildren, hasChildren, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasParentPath, hasPath, hasPath, hasPath, hasPath, hasSubDirs, hasSubDirs, hasSubDirs, hasSubDirs, hasValue, hasValue, hasValue, hasValue, hasValue, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, isArray, isArray, isArray, isArray, isArray, isArray, isChild, isChild, isChild, isChild, isDir, isDir, isDir, isDir, isDir, isEqualTo, isIndexDir, isIndexDir, isIndexDir, isIndexDir, isIndexDir, isLeaf, isLeaf, isLeaf, isLeaf, isLeaf, isRootPath, keySet, keySet, keySet, keySet, keySet, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, leaves, leaves, leaves, leaves, leaves, leaves, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, paths, paths, paths, paths, paths, paths, queryPaths, queryPaths, queryPaths, queryPaths, queryPaths, queryPaths, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, toDataStructure, toDataStructure, toExternalPath, toInstance, toInstance, toLeaf, toMap, toNormalizedPath, toParentPath, toPath, toPath, toPath, toPath, toPathElements, toPathList, toPathStack, toPrintable, toPropertyPath, toType, toType, toType, toType, toType, toType, toType, toType
  • Method Details

    • getRuntimeProfiles

      default String[] getRuntimeProfiles()
      The getRuntimeProfilesPath() points to an array with the Runtime-Profiles denoted as follows (pointing to your active Runtime-Profiles):
      • runtime/profiles/0=local
      • runtime/profiles/1=oauth
      • runtime/profiles/2=development
      (getRuntimeProfilesPath() defaults to "runtime/profiles" represented by the path defined by PropertiesPath.RUNTIME_PROFILES_PATH) In case a value is found at the path "runtime/profiles", this is parsed as a comma-separated list and converted to an array. The above configuration therewith may also be written as follows: runtime/profiles=local,oauth,development This array beats the above kind of declaration so that the active Runtime-Profiles can easily be overwritten by ProfileProperties supporting Java System-Properties (passed to the JVM via "-Dx=y") e.g. the RuntimePropertiesComposite found in the refcodes-runtime artifact.
      Returns:
      Your active Runtime-Profiles defined at the getRuntimeProfilesPath().
    • getRuntimeProfilesPath

      default String getRuntimeProfilesPath()
      Returns the path which points to your active Runtime-Profiles. The method getRuntimeProfiles() evaluates the path and creates a list of active Runtime-Profiles. By default, the path points to the path represented by PropertiesPath.RUNTIME_PROFILES_PATH.
      Returns:
      The path pointing to your active Runtime-Profiles, defaults to "runtime/profiles".
    • toRuntimeProfile

      default Properties toRuntimeProfile()
      Evaluates the active Runtime-Profiles as of getRuntimeProfiles() and creates the according Properties.
      Returns:
      The Properties as of the active Runtime-Profiles.
    • toRuntimeProfile

      default Properties toRuntimeProfile(String... aProfiles)
      Evaluates the provided Runtime-Profiles and creates the according Properties.
      Parameters:
      aProfiles - the profiles
      Returns:
      The Properties as of the provided Runtime-Profiles.