Class RuntimePropertiesImpl
- java.lang.Object
-
- org.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
- org.refcodes.configuration.ext.runtime.RuntimePropertiesImpl
-
- All Implemented Interfaces:
org.refcodes.component.Resetable
,ArgsParserProperties
,RuntimeProperties
,org.refcodes.configuration.ProfileProperties
,org.refcodes.configuration.Properties
,org.refcodes.configuration.ResourceProperties
,org.refcodes.configuration.ResourcePropertiesMixin<RuntimeProperties>
,org.refcodes.console.ArgsParser
,org.refcodes.console.ArgsParserMixin<RuntimeProperties>
,org.refcodes.console.RootConditionAccessor
,org.refcodes.console.RootConditionAccessor.RootConditionBuilder<RuntimeProperties>
,org.refcodes.console.RootConditionAccessor.RootConditionMutator
,org.refcodes.mixin.DelimiterAccessor
,org.refcodes.mixin.DescriptionAccessor.DescriptionBuilder<RuntimeProperties>
,org.refcodes.mixin.DescriptionAccessor.DescriptionMutator
,org.refcodes.mixin.Dumpable
,org.refcodes.mixin.NameAccessor.NameBuilder<RuntimeProperties>
,org.refcodes.mixin.NameAccessor.NameMutator
,org.refcodes.mixin.SecretAccessor.SecretBuilder<RuntimeProperties>
,org.refcodes.mixin.SecretAccessor.SecretMutator
,org.refcodes.mixin.TitleAccessor.TitleBuilder<RuntimeProperties>
,org.refcodes.mixin.TitleAccessor.TitleMutator
,org.refcodes.mixin.TypeAccessor<RuntimeProperties>
,org.refcodes.structure.CanonicalMap
,org.refcodes.structure.Containable
,org.refcodes.structure.Dictionary<java.lang.String,T>
,org.refcodes.structure.Keys<java.lang.String,T>
,org.refcodes.structure.PathMap<RuntimeProperties>
,org.refcodes.structure.PropertiesAccessorMixin
public class RuntimePropertiesImpl extends org.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties> implements RuntimeProperties
TheRuntimePropertiesImpl
composite represent command line properties, system properties as well as environment variables (in that order) and resource properties. TheRuntimePropertiesImpl
are actually constructed fromArgsParserProperties
,SystemProperties
,EnvironmentProperties
andResourceProperties
instances (in that precedence). Add theResourceProperties
via the following methodsRuntimeProperties.withFile(File)
,RuntimeProperties.withFilePath(String)
,RuntimeProperties.withUrl(URL)
orRuntimeProperties.withInputStream(InputStream)
. Obfuscation may be applied to the properties as of theObfuscationProperties
andObfuscationProperties.ObfuscationPropertiesBuilder
types.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.refcodes.structure.CanonicalMap
org.refcodes.structure.CanonicalMap.CanonicalMapBuilder, org.refcodes.structure.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.structure.Dictionary
org.refcodes.structure.Dictionary.MutableDictionary<K extends java.lang.Object,V extends java.lang.Object>
-
Nested classes/interfaces inherited from interface org.refcodes.structure.PathMap
org.refcodes.structure.PathMap.MutablePathMap<T extends java.lang.Object>, org.refcodes.structure.PathMap.PathMapBuilder<T extends java.lang.Object>
-
Nested classes/interfaces inherited from interface org.refcodes.configuration.ProfileProperties
org.refcodes.configuration.ProfileProperties.MutableProfileProperties, org.refcodes.configuration.ProfileProperties.ProfilePropertiesBuilder
-
Nested classes/interfaces inherited from interface org.refcodes.configuration.Properties
org.refcodes.configuration.Properties.MutableProperties, org.refcodes.configuration.Properties.PropertiesBuilder
-
Nested classes/interfaces inherited from interface org.refcodes.structure.PropertiesAccessorMixin
org.refcodes.structure.PropertiesAccessorMixin.PropertiesBuilderMixin<T extends java.lang.Object>, org.refcodes.structure.PropertiesAccessorMixin.PropertiesMixin, org.refcodes.structure.PropertiesAccessorMixin.PropertiesMutatorMixin
-
Nested classes/interfaces inherited from interface org.refcodes.configuration.ResourceProperties
org.refcodes.configuration.ResourceProperties.MutableResoureProperties, org.refcodes.configuration.ResourceProperties.ResourcePropertiesBuilder
-
Nested classes/interfaces inherited from interface org.refcodes.console.RootConditionAccessor
org.refcodes.console.RootConditionAccessor.RootConditionBuilder<B extends org.refcodes.console.RootConditionAccessor.RootConditionBuilder<B>>, org.refcodes.console.RootConditionAccessor.RootConditionMutator, org.refcodes.console.RootConditionAccessor.RootConditionProperty
-
-
Field Summary
-
Fields inherited from interface org.refcodes.configuration.ext.runtime.RuntimeProperties
DELIMITERS
-
-
Constructor Summary
Constructors Constructor Description RuntimePropertiesImpl()
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments.RuntimePropertiesImpl(java.lang.String aSecret)
Constructs aRuntimeProperties
instance with a custom secret for obfuscation.RuntimePropertiesImpl(java.lang.String[] aArgs)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done.RuntimePropertiesImpl(java.lang.String[] aArgs, java.lang.String aSecret)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done.RuntimePropertiesImpl(java.lang.String[] aArgs, org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done.RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments.RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, java.lang.String aSecret)
Constructs aRuntimeProperties
instance with a custom secret for obfuscation.RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, java.lang.String[] aArgs)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done.RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, java.lang.String[] aArgs, java.lang.String aSecret)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done.RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, java.lang.String[] aArgs, org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done.RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, org.refcodes.console.Condition aRootCondition)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments.RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, org.refcodes.console.Condition aRootCondition, java.lang.String aSecret)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments.RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, org.refcodes.console.Condition aRootCondition, org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments.RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs theRuntimeProperties
with the given obfuscation modeRuntimePropertiesImpl(org.refcodes.console.Condition aRootCondition)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments.RuntimePropertiesImpl(org.refcodes.console.Condition aRootCondition, java.lang.String aSecret)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments.RuntimePropertiesImpl(org.refcodes.console.Condition aRootCondition, org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments.RuntimePropertiesImpl(org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs theRuntimeProperties
with the given obfuscation mode
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addProperties(java.io.File aFile, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters)
Reads theResourceProperties.ResourcePropertiesBuilder
from the given data sink.protected void
addProperties(java.io.InputStream aInputStream, char[] aDelimiters)
Reads theResourceProperties
from the given data sink.protected void
addProperties(java.lang.Class<?> aResourceClass, java.lang.String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters)
Reads theResourceProperties.ResourcePropertiesBuilder
from the given data sink.protected void
addProperties(java.net.URL aUrl, char... aDelimiters)
Reads theResourceProperties
from the given data sink.protected void
addProperties(org.refcodes.configuration.Properties aProperties)
boolean
containsKey(java.lang.Object aKey)
void
errorLn(java.lang.String aLine)
java.util.List<? extends org.refcodes.console.Operand<?>>
evalArgs(java.lang.String[] aArgs)
java.util.List<? extends org.refcodes.console.Operand<?>>
evalArgs(java.lang.String aToPath, java.lang.String[] aArgs)
java.util.List<? extends org.refcodes.console.Operand<?>>
evalArgs(java.lang.String aToPath, java.util.List<java.lang.String> aArgs)
java.util.List<? extends org.refcodes.console.Operand<?>>
evalArgs(java.util.List<java.lang.String> aArgs)
java.lang.String
get(java.lang.Object aKey)
char
getDelimiter()
protected org.refcodes.configuration.Properties
getProperties()
org.refcodes.console.Condition
getRootCondition()
boolean
isEmpty()
java.util.Set<java.lang.String>
keySet()
void
printBanner()
void
printCopyrightNote()
void
printDescription()
void
printHelp()
void
printLicenseNote()
void
printLn()
void
printLn(java.lang.String aLine)
void
printOptions()
void
printSeparatorLn()
void
printUsage()
org.refcodes.configuration.Properties
reload()
org.refcodes.configuration.Properties
reload(org.refcodes.configuration.ReloadMode aReloadMode)
void
reset()
org.refcodes.configuration.Properties
retrieveFrom(java.lang.String aFromPath)
org.refcodes.configuration.Properties
retrieveTo(java.lang.String aToPath)
void
setBannerFont(org.refcodes.textual.Font aBannerFont)
void
setBannerFontPalette(char[] aColorPalette)
void
setConsoleWidth(int aConsoleWidth)
void
setCopyrightNote(java.lang.String aCopyrightNote)
void
setDescription(java.lang.String aDescription)
void
setErrorOut(java.io.PrintStream aErrorOut)
void
setLicenseNote(java.lang.String aLicenseNote)
void
setLineBreak(java.lang.String aLineBreak)
void
setMaxConsoleWidth(int aMaxConsoleWidth)
void
setName(java.lang.String aName)
void
setObfuscationMode(org.refcodes.runtime.SystemContext aObfuscationMode)
Specifies the obfuscation mode to be used.void
setRootCondition(org.refcodes.console.Condition aRootCondition)
void
setSecret(java.lang.String aSecret)
void
setSeparatorChar(char aSeparatorChar)
void
setStandardOut(java.io.PrintStream aStandardOut)
void
setSyntaxNotation(org.refcodes.console.SyntaxNotation aSyntaxNotation)
void
setTitle(java.lang.String aTitle)
void
setUsageLabel(java.lang.String aUsageLabel)
int
size()
java.lang.Object
toDataStructure(java.lang.String aFromPath)
org.refcodes.configuration.Properties
toRuntimeProfile(java.lang.String... aProfiles)
java.lang.String
toSerialized()
Returns the serialized format as of theResourceProperties.ResourcePropertiesBuilder
instance being produced upon invocation of thePolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory.toProperties(Properties)
method.java.lang.String
toSerialized(char aDelimiter)
Returns the serialized format as of theResourceProperties.ResourcePropertiesBuilder
instance being produced upon invocation of thePolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory.toProperties(Properties)
method.java.util.Collection<java.lang.String>
values()
RuntimeProperties
withFile(java.io.File aFile, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters)
RuntimeProperties
withFilePath(java.lang.Class<?> aResourceClass, java.lang.String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters)
RuntimeProperties
withInputStream(java.io.InputStream aInputStream, char... aDelimiters)
RuntimeProperties
withParseArgs(java.lang.String[] aArgs)
RuntimeProperties
withProperties(org.refcodes.configuration.Properties aProperties)
A hook for you to provideProperties
programmatically.RuntimeProperties
withUrl(java.net.URL aUrl, char... aDelimiters)
-
Methods inherited from interface org.refcodes.structure.CanonicalMap
getBoolean, getBoolean, getByte, getByte, getCharacter, getCharacter, getDouble, getDouble, getFloat, getFloat, getInteger, getInteger, getLong, getLong, getShort, getShort, toInstance, toInstance, toType, toType
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.refcodes.structure.PathMap
children, children, children, children, children, containsKey, containsKey, dirs, dirs, dirs, dirs, dirs, fromExternalPath, get, get, getArray, getArray, getArray, getArray, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayIndexes, getDirAt, getDirAt, getDirAt, getDirIndexes, getDirIndexes, getDirIndexes, getDirIndexes, getRootPath, getValueAt, getValueAt, getValueAt, getValueAt, getValueAt, hasChildren, hasChildren, hasChildren, hasChildren, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasParentPath, hasPath, hasPath, hasPath, hasValueAt, hasValueAt, hasValueAt, hasValueAt, isArray, isArray, isArray, isArray, isArray, isArrayIndex, isArrayIndex, isArrayIndex, isArrayIndex, isArrayIndex, isChild, isChild, isChild, isDir, isDir, isDir, isDir, isDirIndex, isDirIndex, isDirIndex, isDirIndex, isLeaf, isLeaf, isLeaf, isLeaf, isRootPath, keySet, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, leaves, leaves, leaves, leaves, leaves, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, paths, paths, paths, paths, paths, queryPaths, toDataStructure, toExternalPath, toLeaf, toMap, toNormalizedPath, toParentPath, toPath, toPath, toPath, toPathElements
-
Methods inherited from interface org.refcodes.configuration.ProfileProperties
getRuntimeProfiles, getRuntimeProfilesPath, toRuntimeProfile
-
Methods inherited from interface org.refcodes.configuration.Properties
containsValue, getDirAt, getDirAt, getType, query, query, queryFrom, queryTo, retrieve, retrieveFrom, retrieveFrom, retrieveFrom, retrieveTo, retrieveTo, retrieveTo, toMap, toProperties, toPropertyPath
-
Methods inherited from interface org.refcodes.structure.PropertiesAccessorMixin
asArray, asArray, asArray, asArray, asArray, asArray, asBooleanArray, asBooleanArray, asBooleanArray, asBooleanArray, asBooleanArray, asBooleanArray, asByteArray, asByteArray, asByteArray, asByteArray, asByteArray, asByteArray, asCharacterArray, asCharacterArray, asCharacterArray, asCharacterArray, asCharacterArray, asCharacterArray, asDoubleArray, asDoubleArray, asDoubleArray, asDoubleArray, asDoubleArray, asDoubleArray, asFloatArray, asFloatArray, asFloatArray, asFloatArray, asFloatArray, asFloatArray, asIntegerArray, asIntegerArray, asIntegerArray, asIntegerArray, asIntegerArray, asIntegerArray, asLongArray, asLongArray, asLongArray, asLongArray, asLongArray, asLongArray, asShortArray, asShortArray, asShortArray, asShortArray, asShortArray, asShortArray, containsKey, get, getBoolean, getBoolean, getBoolean, getByte, getByte, getByte, getCharacter, getCharacter, getCharacter, getDouble, getDouble, getDouble, getFloat, getFloat, getFloat, getInteger, getInteger, getInteger, getLong, getLong, getLong, getShort, getShort, getShort, use, useBoolean, useBoolean, useByte, useByte, useDouble, useDouble, useFloat, useFloat, useInteger, useInteger, useLong, useLong, useShort, useShort
-
Methods inherited from interface org.refcodes.configuration.ResourcePropertiesMixin
withFile, withFilePath, withFilePath, withFilePath
-
Methods inherited from interface org.refcodes.configuration.ext.runtime.RuntimeProperties
withBannerFont, withBannerFontPalette, withConsoleWidth, withCopyrightNote, withDescription, withErrorOut, withEvalArgs, withEvalArgs, withEvalArgs, withEvalArgs, withFile, withFile, withFilePath, withFilePath, withInputStream, withLicenseNote, withLineBreak, withMaxConsoleWidth, withName, withObfuscationMode, withParseArgs, withRootCondition, withSecret, withSeparatorChar, withStandardOut, withSyntaxNotation, withTitle, withUrl, withUsageLabel
-
-
-
-
Constructor Detail
-
RuntimePropertiesImpl
public RuntimePropertiesImpl()
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments. As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done. Therefore the properties are heuristically determined from the provided command line arguments when invokingRuntimeProperties.withEvalArgs(String[])
.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(java.lang.String[] aArgs)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done. Therefore the properties are heuristically determined from the provided command line arguments.- Parameters:
aArgs
- The command line arguments to be evaluated.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.console.Condition aRootCondition)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments.- Parameters:
aRootCondition
- The root condition being the node from which parsing the command line arguments starts. Parse the command line arguments viaevalArgs(String[])
.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs theRuntimeProperties
with the given obfuscation mode- Parameters:
aObfuscationMode
- TheSystemContext
specifies which level of obfuscation is to be used when encountering upon obfuscated properties: E.g. obfuscation may be bound to the host, the "secret" used for obfuscation being the same for all applications on the same host or obfuscation may be bound to the application, being different for different applications on the same host.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(java.lang.String[] aArgs, org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done. Therefore the properties are heuristically determined from the provided command line arguments. Also constructs theRuntimeProperties
with the given obfuscation mode- Parameters:
aArgs
- The command line arguments to be evaluated.aObfuscationMode
- TheSystemContext
specifies which level of obfuscation is to be used when encountering upon obfuscated properties: E.g. obfuscation may be bound to the host, the "secret" used for obfuscation being the same for all applications on the same host or obfuscation may be bound to the application, being different for different applications on the same host.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.console.Condition aRootCondition, org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments. Also constructs theRuntimeProperties
with the given obfuscation mode.- Parameters:
aRootCondition
- The root condition being the node from which parsing the command line arguments starts. Parse the command line arguments viaevalArgs(String[])
.aObfuscationMode
- TheSystemContext
specifies which level of obfuscation is to be used when encountering upon obfuscated properties: E.g. obfuscation may be bound to the host, the "secret" used for obfuscation being the same for all applications on the same host or obfuscation may be bound to the application, being different for different applications on the same host.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(java.lang.String aSecret)
Constructs aRuntimeProperties
instance with a custom secret for obfuscation.- Parameters:
aSecret
- The secret to be used when encountering upon obfuscated properties.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(java.lang.String[] aArgs, java.lang.String aSecret)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done. Therefore the properties are heuristically determined from the provided command line arguments. Also constructs aRuntimeProperties
instance with a custom secret for obfuscation.- Parameters:
aArgs
- The command line arguments to be evaluated.aSecret
- The secret to be used when encountering upon obfuscated properties.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.console.Condition aRootCondition, java.lang.String aSecret)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments. Also constructs aRuntimeProperties
instance with a custom secret for obfuscation.- Parameters:
aRootCondition
- The root condition being the node from which parsing the command line arguments starts. Parse the command line arguments viaevalArgs(String[])
.aSecret
- The secret to be used when encountering upon obfuscated properties.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments. As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done. Therefore the properties are heuristically determined from the provided command line arguments when invokingRuntimeProperties.withEvalArgs(String[])
.- Parameters:
aPropertiesBuilderFactory
- The factory to use when constructingResourceProperties
instances.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, java.lang.String[] aArgs)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done. Therefore the properties are heuristically determined from the provided command line arguments.- Parameters:
aPropertiesBuilderFactory
- The factory to use when constructingResourceProperties
instances.aArgs
- The command line arguments to be evaluated.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, org.refcodes.console.Condition aRootCondition)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments.- Parameters:
aPropertiesBuilderFactory
- The factory to use when constructingResourceProperties
instances.aRootCondition
- The root condition being the node from which parsing the command line arguments starts. Parse the command line arguments viaevalArgs(String[])
.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs theRuntimeProperties
with the given obfuscation mode- Parameters:
aPropertiesBuilderFactory
- The factory to use when constructingResourceProperties
instances.aObfuscationMode
- TheSystemContext
specifies which level of obfuscation is to be used when encountering upon obfuscated properties: E.g. obfuscation may be bound to the host, the "secret" used for obfuscation being the same for all applications on the same host or obfuscation may be bound to the application, being different for different applications on the same host.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, java.lang.String[] aArgs, org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done. Therefore the properties are heuristically determined from the provided command line arguments. Also constructs theRuntimeProperties
with the given obfuscation mode- Parameters:
aPropertiesBuilderFactory
- The factory to use when constructingResourceProperties
instances.aArgs
- The command line arguments to be evaluated.aObfuscationMode
- TheSystemContext
specifies which level of obfuscation is to be used when encountering upon obfuscated properties: E.g. obfuscation may be bound to the host, the "secret" used for obfuscation being the same for all applications on the same host or obfuscation may be bound to the application, being different for different applications on the same host.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, org.refcodes.console.Condition aRootCondition, org.refcodes.runtime.SystemContext aObfuscationMode)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments. Also constructs theRuntimeProperties
with the given obfuscation mode.- Parameters:
aPropertiesBuilderFactory
- The factory to use when constructingResourceProperties
instances.aRootCondition
- The root condition being the node from which parsing the command line arguments starts. Parse the command line arguments viaevalArgs(String[])
.aObfuscationMode
- TheSystemContext
specifies which level of obfuscation is to be used when encountering upon obfuscated properties: E.g. obfuscation may be bound to the host, the "secret" used for obfuscation being the same for all applications on the same host or obfuscation may be bound to the application, being different for different applications on the same host.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, java.lang.String aSecret)
Constructs aRuntimeProperties
instance with a custom secret for obfuscation.- Parameters:
aPropertiesBuilderFactory
- The factory to use when constructingResourceProperties
instances.aSecret
- The secret to be used when encountering upon obfuscated properties.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, java.lang.String[] aArgs, java.lang.String aSecret)
Constructs aRuntimeProperties
instance with noCondition
for parsing command line arguments: As no syntax notation is required by the constructor (no rootCondition
), no syntax validation is done. Therefore the properties are heuristically determined from the provided command line arguments. Also constructs aRuntimeProperties
instance with a custom secret for obfuscation.- Parameters:
aPropertiesBuilderFactory
- The factory to use when constructingResourceProperties
instances.aArgs
- The command line arguments to be evaluated.aSecret
- The secret to be used when encountering upon obfuscated properties.
-
RuntimePropertiesImpl
public RuntimePropertiesImpl(org.refcodes.configuration.PolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory aPropertiesBuilderFactory, org.refcodes.console.Condition aRootCondition, java.lang.String aSecret)
Constructs aRuntimeProperties
instance with the givenCondition
used to parse command line arguments. Also constructs aRuntimeProperties
instance with a custom secret for obfuscation.- Parameters:
aPropertiesBuilderFactory
- The factory to use when constructingResourceProperties
instances.aRootCondition
- The root condition being the node from which parsing the command line arguments starts. Parse the command line arguments viaevalArgs(String[])
.aSecret
- The secret to be used when encountering upon obfuscated properties.
-
-
Method Detail
-
setRootCondition
public void setRootCondition(org.refcodes.console.Condition aRootCondition)
- Specified by:
setRootCondition
in interfaceorg.refcodes.console.RootConditionAccessor.RootConditionMutator
-
setSecret
public void setSecret(java.lang.String aSecret)
- Specified by:
setSecret
in interfaceorg.refcodes.mixin.SecretAccessor.SecretMutator
-
setObfuscationMode
public void setObfuscationMode(org.refcodes.runtime.SystemContext aObfuscationMode)
Specifies the obfuscation mode to be used.- Specified by:
setObfuscationMode
in interfaceRuntimeProperties
- Parameters:
aObfuscationMode
- TheSystemContext
specifies which level of obfuscation is to be used when encountering upon obfuscated properties: E.g. obfuscation may be bound to the host, the "secret" used for obfuscation being the same for all applications on the same host or obfuscation may be bound to the application, being different for different applications on the same host.
-
withProperties
public RuntimeProperties withProperties(org.refcodes.configuration.Properties aProperties)
A hook for you to provideProperties
programmatically. The later you addProperties
, the lower their precedence.- Specified by:
withProperties
in interfaceRuntimeProperties
- Parameters:
aProperties
- TheProperties
to be added.- Returns:
- This instance as of the builder pattern to apply method chaining.
-
addProperties
protected void addProperties(org.refcodes.configuration.Properties aProperties)
-
withFile
public RuntimeProperties withFile(java.io.File aFile, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters) throws java.io.IOException, java.text.ParseException
- Specified by:
withFile
in interfaceorg.refcodes.configuration.ResourcePropertiesMixin<RuntimeProperties>
- Throws:
java.io.IOException
java.text.ParseException
-
withInputStream
public RuntimeProperties withInputStream(java.io.InputStream aInputStream, char... aDelimiters) throws java.io.IOException, java.text.ParseException
- Specified by:
withInputStream
in interfaceorg.refcodes.configuration.ResourcePropertiesMixin<RuntimeProperties>
- Throws:
java.io.IOException
java.text.ParseException
-
withFilePath
public RuntimeProperties withFilePath(java.lang.Class<?> aResourceClass, java.lang.String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters) throws java.io.IOException, java.text.ParseException
- Specified by:
withFilePath
in interfaceorg.refcodes.configuration.ResourcePropertiesMixin<RuntimeProperties>
- Throws:
java.io.IOException
java.text.ParseException
-
withUrl
public RuntimeProperties withUrl(java.net.URL aUrl, char... aDelimiters) throws java.io.IOException, java.text.ParseException
- Specified by:
withUrl
in interfaceorg.refcodes.configuration.ResourcePropertiesMixin<RuntimeProperties>
- Throws:
java.io.IOException
java.text.ParseException
-
withParseArgs
public RuntimeProperties withParseArgs(java.lang.String[] aArgs) throws org.refcodes.console.UnknownArgsException, org.refcodes.console.AmbiguousArgsException, org.refcodes.console.SuperfluousArgsException, org.refcodes.console.ParseArgsException
- Specified by:
withParseArgs
in interfaceorg.refcodes.console.ArgsParser
- Specified by:
withParseArgs
in interfaceorg.refcodes.console.ArgsParserMixin<RuntimeProperties>
- Specified by:
withParseArgs
in interfaceRuntimeProperties
- Throws:
org.refcodes.console.UnknownArgsException
org.refcodes.console.AmbiguousArgsException
org.refcodes.console.SuperfluousArgsException
org.refcodes.console.ParseArgsException
-
errorLn
public void errorLn(java.lang.String aLine)
- Specified by:
errorLn
in interfaceorg.refcodes.console.ArgsParser
-
evalArgs
public java.util.List<? extends org.refcodes.console.Operand<?>> evalArgs(java.util.List<java.lang.String> aArgs) throws org.refcodes.console.UnknownArgsException, org.refcodes.console.AmbiguousArgsException, org.refcodes.console.SuperfluousArgsException, org.refcodes.console.ParseArgsException
- Specified by:
evalArgs
in interfaceorg.refcodes.console.ArgsParser
- Specified by:
evalArgs
in interfaceArgsParserProperties
- Throws:
org.refcodes.console.UnknownArgsException
org.refcodes.console.AmbiguousArgsException
org.refcodes.console.SuperfluousArgsException
org.refcodes.console.ParseArgsException
-
evalArgs
public java.util.List<? extends org.refcodes.console.Operand<?>> evalArgs(java.lang.String aToPath, java.util.List<java.lang.String> aArgs) throws org.refcodes.console.UnknownArgsException, org.refcodes.console.AmbiguousArgsException, org.refcodes.console.SuperfluousArgsException, org.refcodes.console.ParseArgsException
- Specified by:
evalArgs
in interfaceArgsParserProperties
- Throws:
org.refcodes.console.UnknownArgsException
org.refcodes.console.AmbiguousArgsException
org.refcodes.console.SuperfluousArgsException
org.refcodes.console.ParseArgsException
-
evalArgs
public java.util.List<? extends org.refcodes.console.Operand<?>> evalArgs(java.lang.String aToPath, java.lang.String[] aArgs) throws org.refcodes.console.UnknownArgsException, org.refcodes.console.AmbiguousArgsException, org.refcodes.console.SuperfluousArgsException, org.refcodes.console.ParseArgsException
- Specified by:
evalArgs
in interfaceArgsParserProperties
- Throws:
org.refcodes.console.UnknownArgsException
org.refcodes.console.AmbiguousArgsException
org.refcodes.console.SuperfluousArgsException
org.refcodes.console.ParseArgsException
-
evalArgs
public java.util.List<? extends org.refcodes.console.Operand<?>> evalArgs(java.lang.String[] aArgs) throws org.refcodes.console.UnknownArgsException, org.refcodes.console.AmbiguousArgsException, org.refcodes.console.SuperfluousArgsException, org.refcodes.console.ParseArgsException
- Specified by:
evalArgs
in interfaceorg.refcodes.console.ArgsParser
- Specified by:
evalArgs
in interfaceArgsParserProperties
- Throws:
org.refcodes.console.UnknownArgsException
org.refcodes.console.AmbiguousArgsException
org.refcodes.console.SuperfluousArgsException
org.refcodes.console.ParseArgsException
-
getRootCondition
public org.refcodes.console.Condition getRootCondition()
- Specified by:
getRootCondition
in interfaceorg.refcodes.console.ArgsParser
- Specified by:
getRootCondition
in interfaceorg.refcodes.console.RootConditionAccessor
-
printBanner
public void printBanner()
- Specified by:
printBanner
in interfaceorg.refcodes.console.ArgsParser
-
printCopyrightNote
public void printCopyrightNote()
- Specified by:
printCopyrightNote
in interfaceorg.refcodes.console.ArgsParser
-
printDescription
public void printDescription()
- Specified by:
printDescription
in interfaceorg.refcodes.console.ArgsParser
-
printHelp
public void printHelp()
- Specified by:
printHelp
in interfaceorg.refcodes.console.ArgsParser
-
printLicenseNote
public void printLicenseNote()
- Specified by:
printLicenseNote
in interfaceorg.refcodes.console.ArgsParser
-
printLn
public void printLn()
- Specified by:
printLn
in interfaceorg.refcodes.console.ArgsParser
-
printLn
public void printLn(java.lang.String aLine)
- Specified by:
printLn
in interfaceorg.refcodes.console.ArgsParser
-
printOptions
public void printOptions()
- Specified by:
printOptions
in interfaceorg.refcodes.console.ArgsParser
-
printSeparatorLn
public void printSeparatorLn()
- Specified by:
printSeparatorLn
in interfaceorg.refcodes.console.ArgsParser
-
printUsage
public void printUsage()
- Specified by:
printUsage
in interfaceorg.refcodes.console.ArgsParser
-
reset
public void reset()
- Specified by:
reset
in interfaceorg.refcodes.component.Resetable
-
setBannerFont
public void setBannerFont(org.refcodes.textual.Font aBannerFont)
- Specified by:
setBannerFont
in interfaceorg.refcodes.console.ArgsParser
-
setBannerFontPalette
public void setBannerFontPalette(char[] aColorPalette)
- Specified by:
setBannerFontPalette
in interfaceorg.refcodes.console.ArgsParser
-
setConsoleWidth
public void setConsoleWidth(int aConsoleWidth)
- Specified by:
setConsoleWidth
in interfaceorg.refcodes.console.ArgsParser
-
setCopyrightNote
public void setCopyrightNote(java.lang.String aCopyrightNote)
- Specified by:
setCopyrightNote
in interfaceorg.refcodes.console.ArgsParser
-
setDescription
public void setDescription(java.lang.String aDescription)
- Specified by:
setDescription
in interfaceorg.refcodes.mixin.DescriptionAccessor.DescriptionMutator
-
setErrorOut
public void setErrorOut(java.io.PrintStream aErrorOut)
- Specified by:
setErrorOut
in interfaceorg.refcodes.console.ArgsParser
-
setLicenseNote
public void setLicenseNote(java.lang.String aLicenseNote)
- Specified by:
setLicenseNote
in interfaceorg.refcodes.console.ArgsParser
-
setLineBreak
public void setLineBreak(java.lang.String aLineBreak)
- Specified by:
setLineBreak
in interfaceorg.refcodes.console.ArgsParser
-
setMaxConsoleWidth
public void setMaxConsoleWidth(int aMaxConsoleWidth)
- Specified by:
setMaxConsoleWidth
in interfaceorg.refcodes.console.ArgsParser
-
setName
public void setName(java.lang.String aName)
- Specified by:
setName
in interfaceorg.refcodes.mixin.NameAccessor.NameMutator
-
setSeparatorChar
public void setSeparatorChar(char aSeparatorChar)
- Specified by:
setSeparatorChar
in interfaceorg.refcodes.console.ArgsParser
-
setStandardOut
public void setStandardOut(java.io.PrintStream aStandardOut)
- Specified by:
setStandardOut
in interfaceorg.refcodes.console.ArgsParser
-
setSyntaxNotation
public void setSyntaxNotation(org.refcodes.console.SyntaxNotation aSyntaxNotation)
- Specified by:
setSyntaxNotation
in interfaceorg.refcodes.console.ArgsParser
-
setTitle
public void setTitle(java.lang.String aTitle)
- Specified by:
setTitle
in interfaceorg.refcodes.mixin.TitleAccessor.TitleMutator
-
setUsageLabel
public void setUsageLabel(java.lang.String aUsageLabel)
- Specified by:
setUsageLabel
in interfaceorg.refcodes.console.ArgsParser
-
reload
public org.refcodes.configuration.Properties reload() throws java.io.IOException, java.lang.IllegalStateException, java.text.ParseException
- Specified by:
reload
in interfaceorg.refcodes.configuration.ResourceProperties
- Throws:
java.io.IOException
java.lang.IllegalStateException
java.text.ParseException
-
reload
public org.refcodes.configuration.Properties reload(org.refcodes.configuration.ReloadMode aReloadMode) throws java.io.IOException, java.lang.IllegalStateException, java.text.ParseException
- Specified by:
reload
in interfaceorg.refcodes.configuration.ResourceProperties
- Throws:
java.io.IOException
java.lang.IllegalStateException
java.text.ParseException
-
getDelimiter
public char getDelimiter()
- Specified by:
getDelimiter
in interfaceorg.refcodes.mixin.DelimiterAccessor
- Specified by:
getDelimiter
in interfaceorg.refcodes.configuration.Properties
- Overrides:
getDelimiter
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
size
public int size()
- Specified by:
size
in interfaceorg.refcodes.structure.Containable
- Overrides:
size
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
containsKey
public boolean containsKey(java.lang.Object aKey)
- Specified by:
containsKey
in interfaceorg.refcodes.structure.Keys<java.lang.String,T extends java.lang.Object>
- Overrides:
containsKey
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfaceorg.refcodes.structure.Containable
- Overrides:
isEmpty
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
get
public java.lang.String get(java.lang.Object aKey)
- Specified by:
get
in interfaceorg.refcodes.structure.Keys<java.lang.String,T extends java.lang.Object>
- Overrides:
get
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
keySet
public java.util.Set<java.lang.String> keySet()
- Specified by:
keySet
in interfaceorg.refcodes.structure.Keys<java.lang.String,T extends java.lang.Object>
- Overrides:
keySet
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
values
public java.util.Collection<java.lang.String> values()
- Specified by:
values
in interfaceorg.refcodes.structure.Keys<java.lang.String,T extends java.lang.Object>
- Overrides:
values
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
retrieveFrom
public org.refcodes.configuration.Properties retrieveFrom(java.lang.String aFromPath)
- Specified by:
retrieveFrom
in interfaceorg.refcodes.structure.CanonicalMap
- Specified by:
retrieveFrom
in interfaceorg.refcodes.structure.PathMap<RuntimeProperties>
- Specified by:
retrieveFrom
in interfaceorg.refcodes.configuration.Properties
- Overrides:
retrieveFrom
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
retrieveTo
public org.refcodes.configuration.Properties retrieveTo(java.lang.String aToPath)
- Specified by:
retrieveTo
in interfaceorg.refcodes.structure.CanonicalMap
- Specified by:
retrieveTo
in interfaceorg.refcodes.structure.PathMap<RuntimeProperties>
- Specified by:
retrieveTo
in interfaceorg.refcodes.configuration.Properties
- Overrides:
retrieveTo
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
toDataStructure
public java.lang.Object toDataStructure(java.lang.String aFromPath)
- Specified by:
toDataStructure
in interfaceorg.refcodes.structure.PathMap<RuntimeProperties>
- Overrides:
toDataStructure
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
toSerialized
public java.lang.String toSerialized()
Returns the serialized format as of theResourceProperties.ResourcePropertiesBuilder
instance being produced upon invocation of thePolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory.toProperties(Properties)
method. The behavior of this method is implementation specific. See the javadoc of the implementation in question (such astoSerialized()
) for implementation details.- Specified by:
toSerialized
in interfaceorg.refcodes.configuration.ResourceProperties
- Specified by:
toSerialized
in interfaceRuntimeProperties
-
toSerialized
public java.lang.String toSerialized(char aDelimiter)
Returns the serialized format as of theResourceProperties.ResourcePropertiesBuilder
instance being produced upon invocation of thePolyglotPropertiesBuilder.PolyglotPropertiesBuilderFactory.toProperties(Properties)
method. The behavior of this method is implementation specific. See the javadoc of the implementation in question (such astoSerialized()
) for implementation details.- Specified by:
toSerialized
in interfaceorg.refcodes.configuration.ResourceProperties
- Specified by:
toSerialized
in interfaceRuntimeProperties
-
toRuntimeProfile
public org.refcodes.configuration.Properties toRuntimeProfile(java.lang.String... aProfiles)
- Specified by:
toRuntimeProfile
in interfaceorg.refcodes.configuration.ProfileProperties
-
getProperties
protected org.refcodes.configuration.Properties getProperties()
- Overrides:
getProperties
in classorg.refcodes.configuration.AbstractPropertiesDecorator<org.refcodes.configuration.Properties>
-
addProperties
protected void addProperties(java.io.File aFile, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters) throws java.io.IOException, java.text.ParseException
Reads theResourceProperties.ResourcePropertiesBuilder
from the given data sink.- Parameters:
aFile
- The data sink from which to read theResourceProperties.ResourcePropertiesBuilder
.aConfigLocator
- TheConfigLocator
specifying where to seek for properties.aDelimiters
- The delimiters in the properties file to identity a path delimiter.- Throws:
java.io.IOException
- Thrown in case there were problems reading the data sink.java.text.ParseException
- Thrown in case there were problems parsing the data from the data sink.
-
addProperties
protected void addProperties(java.io.InputStream aInputStream, char[] aDelimiters) throws java.io.IOException, java.text.ParseException
Reads theResourceProperties
from the given data sink.- Parameters:
aInputStream
- The data sink from which to read theResourceProperties
.aDelimiters
- The delimiters in the properties file to identity a path delimiter.- Throws:
java.io.IOException
- Thrown in case there were problems reading the data sink.java.text.ParseException
- Thrown in case there were problems parsing the data from the data sink.
-
addProperties
protected void addProperties(java.lang.Class<?> aResourceClass, java.lang.String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters) throws java.io.IOException, java.text.ParseException
Reads theResourceProperties.ResourcePropertiesBuilder
from the given data sink.- Parameters:
aResourceClass
- The class which's class loader is to take care of loading the properties (from inside a JAR).aFilePath
- The data sink from which to read theResourceProperties.ResourcePropertiesBuilder
.aConfigLocator
- TheConfigLocator
specifying where to seek for properties.aDelimiters
- The delimiters in the properties file to identity a path delimiter.- Throws:
java.io.IOException
- Thrown in case there were problems reading the data sink.java.text.ParseException
- Thrown in case there were problems parsing the data from the data sink.
-
addProperties
protected void addProperties(java.net.URL aUrl, char... aDelimiters) throws java.io.IOException, java.text.ParseException
Reads theResourceProperties
from the given data sink.- Parameters:
aUrl
- The data sink from which to read theResourceProperties
.aDelimiters
- The delimiters in the properties file to identity a path delimiter.- Throws:
java.io.IOException
- Thrown in case there were problems reading the data sink.java.text.ParseException
- Thrown in case there were problems parsing the data from the data sink.
-
-