Interface Config.Key

All Superinterfaces:
Comparable<Config.Key>, Config.Key
Enclosing interface:
Config

public static interface Config.Key extends Config.Key
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 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 interface Config.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

      Config.Key child(Config.Key key)
      Create a child key to the current key.
      Specified by:
      child in interface Config.Key
      Parameters:
      key - child key (relative to current key)
      Returns:
      a new resolved key
    • create

      static Config.Key create(String key)
      Creates new instance of Key for specified key 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

      static String escapeName(String name)
      Escape '~' to ~0 and '.' to ~1 in specified name.
      Parameters:
      name - name to be escaped
      Returns:
      escaped name
    • unescapeName

      static String unescapeName(String escapedName)
      Unescape ~0 to '~' and ~1 to '.' in specified escaped name.
      Parameters:
      escapedName - escaped name
      Returns:
      unescaped name