org.ldaptive.asn1
Class DERPath

java.lang.Object
  extended by org.ldaptive.asn1.DERPath

public class DERPath
extends Object

Describes paths to individual elements of an encoded DER object that may be addressed during parsing to associate a parsed element with a handler to handle that element. Consider the following production rule for a complex type that may be DER encoded:


     BankAccountSet ::= SET OF {
       account BankAccount
     }

     BankAccount ::= SEQUENCE OF {
       accountNumber OCTET STRING,
       accountName OCTET STRING,
       accountType AccountType,
       balance REAL
     }

     AccountType ::= ENUM {
       checking (0),
       savings (1)
     }

 

Given an instance of BankAccountSet with two elements, the path to the balance of each bank account in the set is given by the following expression:

/SET/SEQ/REAL

Individual child elements can be accessed by explicitly mentioning the index of the item relative to its parent. For example, the second bank account in the set can be accessed as follows:

/SET/SEQ[1]

Node names in DER paths are constrained to the following:

Version:
$Revision: 3189 $ $Date: 2016-11-01 17:21:43 -0400 (Tue, 01 Nov 2016) $
Author:
Middleware Services
See Also:
DERParser

Field Summary
static String PATH_SEPARATOR
          Separates nodes in a path specification.
 
Constructor Summary
DERPath()
          Creates an empty path specification.
DERPath(DERPath path)
          Copy constructor.
DERPath(String pathSpec)
          Creates a path specification from its string representation.
 
Method Summary
 boolean equals(Object o)
          
 int getSize()
          Gets the number of nodes in the path.
 int hashCode()
          
 boolean isEmpty()
          Determines whether the path contains any nodes.
 String peekNode()
          Examines the last node in the path without removing it.
 String popNode()
          Removes the last node in the path.
 DERPath pushNode(String name)
          Appends a node to the path.
 DERPath pushNode(String name, int index)
          Appends a node to the path with the given child index.
 String toString()
          
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

PATH_SEPARATOR

public static final String PATH_SEPARATOR
Separates nodes in a path specification.

See Also:
Constant Field Values
Constructor Detail

DERPath

public DERPath()
Creates an empty path specification.


DERPath

public DERPath(DERPath path)
Copy constructor.

Parameters:
path - to read nodes from

DERPath

public DERPath(String pathSpec)
Creates a path specification from its string representation.

Parameters:
pathSpec - string representation of a path, e.g. /SEQ[1]/CHOICE.
Method Detail

pushNode

public DERPath pushNode(String name)
Appends a node to the path.

Parameters:
name - of the path element to add
Returns:
This instance with new node appended.

pushNode

public DERPath pushNode(String name,
                        int index)
Appends a node to the path with the given child index.

Parameters:
name - of the path element to add
index - child index
Returns:
This instance with new node appended.

peekNode

public String peekNode()
Examines the last node in the path without removing it.

Returns:
last node in the path or null if no nodes remain

popNode

public String popNode()
Removes the last node in the path.

Returns:
last node in the path or null if no more nodes remain.

getSize

public int getSize()
Gets the number of nodes in the path.

Returns:
node count.

isEmpty

public boolean isEmpty()
Determines whether the path contains any nodes.

Returns:
True if path contains 0 nodes, false otherwise.

equals

public boolean equals(Object o)

Overrides:
equals in class Object

hashCode

public int hashCode()

Overrides:
hashCode in class Object

toString

public String toString()

Overrides:
toString in class Object


Copyright © 2003-2017 Virginia Tech. All Rights Reserved.