- All Superinterfaces:
Comparable<Config.Key>
,Config.Key
- Enclosing interface:
Config
Object represents fully-qualified key of config node.
Fully-qualified key is list of key tokens separated by .
(dot character).
Depending on context the key token is evaluated one by one:
- in
Config.Type.OBJECT
node the token represents a name of object member; - in
Config.Type.LIST
node the token represents an zero-based index of list element, an unsigned base-10 integer value, leading zeros are not allowed.
The ABNF syntax of config key is:
config-key = *1( key-token *( "." key-token ) )
key-token = *( unescaped / escaped )
unescaped = %x00-2D / %x2F-7D / %x7F-10FFFF
; %x2E ('.') and %x7E ('~') are excluded from 'unescaped'
escaped = "~" ( "0" / "1" )
; representing '~' and '.', respectively
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionchild
(Config.Key key) Create a child key to the current key.static Config.Key
Creates new instance of Key for specifiedkey
literal.static String
escapeName
(String name) Escape'~'
to~0
and'.'
to~1
in specified name.boolean
isRoot()
Returnstrue
in case the key represents root config node, otherwise it returnsfalse
.name()
Returns the name of Config node.parent()
Returns instance of Key that represents key of parent config node.toString()
Returns formatted fully-qualified key.static String
unescapeName
(String escapedName) Unescape~0
to'~'
and~1
to'.'
in specified escaped name.Methods inherited from interface java.lang.Comparable
compareTo
-
Method Details
-
parent
Config.Key parent()Returns instance of Key that represents key of parent config node.If the key represents root config node it throws an exception.
- Specified by:
parent
in interfaceConfig.Key
- Returns:
- key that represents key of parent config node.
- Throws:
IllegalStateException
- in case you attempt to call this method on a root node- See Also:
-
child
Create a child key to the current key.- Specified by:
child
in interfaceConfig.Key
- Parameters:
key
- child key (relative to current key)- Returns:
- a new resolved key
-
isRoot
boolean isRoot()Returnstrue
in case the key represents root config node, otherwise it returnsfalse
.- Specified by:
isRoot
in interfaceConfig.Key
- Returns:
true
in case the key represents root node, otherwisefalse
.- Throws:
ConfigException
- if not defined- See Also:
-
name
String name()Returns the name of Config node.The name of a node is the last token in fully-qualified key. Depending on context the name is evaluated one by one:
- in Type#OBJECT} node the name represents a name of object member;
- in Type#LIST} node the name represents an zero-based index of list element, an unsigned base-10 integer value, leading zeros are not allowed.
- Specified by:
name
in interfaceConfig.Key
- Returns:
- name of config node
- See Also:
-
toString
String toString()Returns formatted fully-qualified key.- Specified by:
toString
in interfaceConfig.Key
- Overrides:
toString
in classObject
- Returns:
- formatted fully-qualified key.
-
create
Creates new instance of Key for specifiedkey
literal.Empty literal means root node. Character dot ('.') has special meaning - it separates fully-qualified key by key tokens (node names).
- Parameters:
key
- formatted fully-qualified key.- Returns:
- Key instance representing specified fully-qualified key.
-
escapeName
Escape'~'
to~0
and'.'
to~1
in specified name.- Parameters:
name
- name to be escaped- Returns:
- escaped name
-
unescapeName
Unescape~0
to'~'
and~1
to'.'
in specified escaped name.- Parameters:
escapedName
- escaped name- Returns:
- unescaped name
-