public class

AdjacencyList

extends Object
java.lang.Object
   ↳ sun.security.provider.certpath.AdjacencyList

Class Overview

An AdjacencyList is used to store the history of certification paths attempted in constructing a path from an initiator to a target. The AdjacencyList is initialized with a List of Lists, where each sub-List contains objects of type Vertex. A Vertex describes one possible or actual step in the chain building process, and the associated Certificate. Specifically, a Vertex object contains a Certificate and an index value referencing the next sub-list in the process. If the index value is -1 then this Vertex doesn't continue the attempted build path.

Example:

Attempted Paths:

  • C1->C2->C3
  • C1->C4->C5
  • C1->C4->C6
  • C1->C4->C7
  • C1->C8->C9
  • C1->C10->C11

AdjacencyList structure:

  • AL[0] = C1,1
  • AL[1] = C2,2 =>C4,3 =>C8,4 =>C10,5
  • AL[2] = C3,-1
  • AL[3] = C5,-1 =>C6,-1 =>C7,-1
  • AL[4] = C9,-1
  • AL[5] = C11,-1

The iterator method returns objects of type BuildStep, not objects of type Vertex. A BuildStep contains a Vertex and a result code, accessable via getResult method. There are five result values. POSSIBLE denotes that the current step represents a Certificate that the builder is considering at this point in the build. FOLLOW denotes a Certificate (one of those noted as POSSIBLE) that the builder is using to try extending the chain. BACK represents that a FOLLOW was incorrect, and is being removed from the chain. There is exactly one FOLLOW for each BACK. The values SUCCEED and FAIL mean that we've come to the end of the build process, and there will not be any more entries in the list.

See Also

Summary

Public Constructors
AdjacencyList(List<List<Vertex>> list)
Constructs a new AdjacencyList based on the specified List.
Public Methods
Iterator<BuildStep> iterator()
Gets an Iterator to iterate over the set of BuildSteps in build-order.
String toString()
Prints out a string representation of this AdjacencyList.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public AdjacencyList (List<List<Vertex>> list)

Constructs a new AdjacencyList based on the specified List. See the example above.

Parameters
list a List of Lists of Vertex objects

Public Methods

public Iterator<BuildStep> iterator ()

Gets an Iterator to iterate over the set of BuildSteps in build-order. Any attempts to change the list through the remove method will fail.

Returns
  • an Iterator over the BuildSteps

public String toString ()

Prints out a string representation of this AdjacencyList.

Returns
  • String representation