java.lang.Object
org.refcodes.properties.AbstractPropertiesDecorator<Properties>
org.refcodes.properties.NormalizedPropertiesDecorator
- All Implemented Interfaces:
org.refcodes.mixin.AnnotatorAccessor,org.refcodes.mixin.DelimiterAccessor,org.refcodes.mixin.Dumpable,org.refcodes.mixin.EmptyAccessor,org.refcodes.mixin.TypeAccessor<String>,Properties,org.refcodes.struct.CanonicalMap,org.refcodes.struct.Containable,org.refcodes.struct.InterOperableMap<String>,org.refcodes.struct.Keys<String,,String> org.refcodes.struct.PathMap<String>,org.refcodes.struct.Table<String,String>
The
NormalizedPropertiesDecorator type decorates a Properties
instance and converts a path delimiter such as the full-stop (".") to the
Properties properties' path delimiter slash ("/", as of
AbstractPropertiesDecorator.getDelimiter()). E.g. you get a projection of your
Properties using "." as the path delimiter as if them had a "/" as
path delimiter. Invoking
NormalizedPropertiesDecorator(Properties, char[]) the constructor,
you can define the delimiters to be projected to the default "/" delimiter
(as of AbstractPropertiesDecorator.getDelimiter()). Upon accessing a key, the implementation
first tests whether the decorated (underlying) Properties contain
this key, then the decorated (underlying) Properties' keys are tested
by converting the keys using the first provided delimiter to be replaced by
the "/" delimiter". If we have a match, then this property is processed, else
the procedure continues with the next delimiter. This means that the first
match wins, if we have succeeding matches with succeeding delimiters then an
AmbiguousKeyRuntimeException is thrown In case of accessing the
keySet(), all keys are converted by replacing all the provided
delimiters (or the full-stop ("."), depending on the constructor you called)
to the default delimiter "/". In case we have a key collision then an
AmbiguousKeyRuntimeException is thrown.-
Nested Class Summary
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.AnnotatorPropertyNested classes/interfaces inherited from interface org.refcodes.struct.CanonicalMap
org.refcodes.struct.CanonicalMap.CanonicalMapBuilder, org.refcodes.struct.CanonicalMap.MutableCanonicalMapNested 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.DelimiterPropertyNested classes/interfaces inherited from interface org.refcodes.mixin.EmptyAccessor
org.refcodes.mixin.EmptyAccessor.EmptyMutator, org.refcodes.mixin.EmptyAccessor.EmptyPropertyNested 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.PropertiesBuilderNested classes/interfaces inherited from interface org.refcodes.struct.Table
org.refcodes.struct.Table.TableDictionary<K extends Object,V extends Object> 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, DELIMITERFields inherited from interface org.refcodes.properties.Properties
DEFAULT_COMMENT -
Constructor Summary
ConstructorsConstructorDescriptionNormalizedPropertiesDecorator(Properties aProperties) Decorates the providedPropertieswith additional behavior by normalizing the key representing the path pointing to the according value.NormalizedPropertiesDecorator(Properties aProperties, char[] aDelimiters) Decorates the providedPropertieswith additional behavior by normalizing the key representing the path pointing to the according value. -
Method Summary
Modifier and TypeMethodDescriptionbooleancontainsKey(Object aKey) protected static StringfromNormalized(String aKey, char aFromDelimiter, char aToDelimiter) keySet()retrieveFrom(String aFromPath) retrieveTo(String aToPath) protected Stringprotected static StringtoNormalized(String aKey, char aToDelimiter, char... aFromDelimiters) Methods inherited from class org.refcodes.properties.AbstractPropertiesDecorator
getAnnotator, getDelimiter, getProperties, isEmpty, setProperties, size, toDataStructure, toDump, toDump, toPrintable, valuesMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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, toPropertiesMethods 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, getStringOrMethods inherited from interface org.refcodes.struct.Keys
getOr, useMethods 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, getArray, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayOr, getArrayOr, getArrayOr, getArrayOr, getArrayOr, getArrayOr, getDirIndexes, 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, 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, toExternalPath, toInstance, toInstance, toLeaf, toMap, toNormalizedPath, toParentPath, toPath, toPath, toPath, toPath, toPathElements, toPathList, toPathStack, toPropertyPath, toType, toType, toType, toType, toType, toType, toType, toTypeMethods inherited from interface org.refcodes.properties.Properties
containsValue, getDir, getDir, getDir, getDir, getDir, getDirAt, getDirAt, getDirAt, getDirAt, getDirAt, getDirAt, getDirs, getDirs, getDirs, getDirs, getDirs, getType, query, query, query, query, query, queryBetween, queryBetween, queryBetween, queryBetween, queryBetween, queryFrom, queryFrom, queryFrom, queryFrom, queryFrom, queryFrom, queryTo, queryTo, queryTo, queryTo, queryTo, queryTo, retrieveBetween, retrieveBetween, retrieveBetween, retrieveBetween, retrieveBetween, retrieveFrom, retrieveFrom, retrieveFrom, retrieveFrom, retrieveTo, retrieveTo, retrieveTo, retrieveTo
-
Constructor Details
-
NormalizedPropertiesDecorator
Decorates the providedPropertieswith additional behavior by normalizing the key representing the path pointing to the according value. You providePropertieswith a path delimiter different from the default delimiter and you getPropertieswhich act as if the delimiter was the default delimiter: Paths containing the namespace delimiter "." (as ofDelimiter.NAMESPACEare converted to paths' with delimiter "/" (as ofDelimiter.PATH. Changes applied to the providedPropertiesaffect the decorator.- Parameters:
aProperties- ThePropertiesto be decorated.
-
NormalizedPropertiesDecorator
Decorates the providedPropertieswith additional behavior by normalizing the key representing the path pointing to the according value. You providePropertieswith a path delimiter different from the default delimiter and you getPropertieswhich act as if the delimiter was the default delimiter: Paths containing the provided delimiters are converted to the paths' with delimiter "/" (as ofDelimiter.PATH. Changes applied to the providedPropertiesaffect the decorator.- Parameters:
aProperties- ThePropertiesto be decorated.aDelimiters- The delimiters to be converted forth and back
-
-
Method Details
-
containsKey
- Specified by:
containsKeyin interfaceorg.refcodes.struct.Keys<String,String> - Overrides:
containsKeyin classAbstractPropertiesDecorator<Properties>
-
get
- Specified by:
getin interfaceorg.refcodes.struct.Keys<String,String> - Overrides:
getin classAbstractPropertiesDecorator<Properties>
-
keySet
- Specified by:
keySetin interfaceorg.refcodes.struct.Keys<String,String> - Overrides:
keySetin classAbstractPropertiesDecorator<Properties>
-
retrieveFrom
- Specified by:
retrieveFromin interfaceorg.refcodes.struct.CanonicalMap- Specified by:
retrieveFromin interfaceorg.refcodes.struct.PathMap<String>- Specified by:
retrieveFromin interfaceProperties- Overrides:
retrieveFromin classAbstractPropertiesDecorator<Properties>
-
retrieveTo
- Specified by:
retrieveToin interfaceorg.refcodes.struct.CanonicalMap- Specified by:
retrieveToin interfaceorg.refcodes.struct.PathMap<String>- Specified by:
retrieveToin interfaceProperties- Overrides:
retrieveToin classAbstractPropertiesDecorator<Properties>
-
toDelimiters
-
fromNormalized
-
toNormalized
-