APRlib

edu.neu.ccs.demeter.APRlib Namespace

Classes

ClassDescription
IncompatibleClassGraphsException Thrown when combining two traversals that do not share the same class graph.
NoSuchClassGraphEdgeExceptionThrown when a constraint map edge label cannot be mapped to a class graph edge.
NoSuchClassGraphEdgeLabelExceptionThrown when a constraint map edge label cannot be mapped to a class graph edge label.
NoSuchClassGraphNodeExceptionThrown when a strategy graph or constraint map node cannot be mapped to a class graph node.
TraversalBase A compact, efficient representation of a set of paths through a class graph that can be used to guide a traversal of an object graph.
TraversalCombination A combination of two traversals.
TraversalCombination.EdgeSet 
TraversalCombination.NodeSet 
TraversalEdgeSetBase A set of edges
ui-l->vj
in a traversal graph, where the edges in the set are all copies of the same class graph edge
u-l->v 
with different endpoint indices i and j.
TraversalExceptionThrown when a traversal cannot be created.
TraversalGraph A traversal graph TG( S,G,N,B ) is constructed from an encapsulated strategy S, a class graph G, a name map N for S and G, and a constraint map B for S and G according to a modified version of Algorithm 1 in the paper "Traversals of Object Structures: Specification and Efficient Implementation" (the modifications allow G to be non-simple and N to be a relation instead of a function). TG is essentially a compilation (that is, a compact and efficient generator) of the set of paths through G that is selected by S. Conceptually, TG(S,G,N,B) consists of a graph G'' and a set Ts of start nodes in G'', where G'' is (a subset of) n copies of G, where n is the number of edges in S, with some extra edges to connect nodes in different copies. However, to keep the representation more compact, G'' is represented as two sets, NodeSet and EdgeSet:
  • NodeSet is a set of pairs (v, IS) where v is a node in G and IS is a set of indices i such that vi is in G''.
  • EdgeSet is a set of pairs (u
    -l->
    v, IM) where u
    -l->
    v is an edge in G and IM is a set of pairs of indices (i,j) such that ui
    -l->
    vj is in G''.
TraversalGraph.EdgeSet A set of edges u^i
-l->
v^j in a traversal graph, where the edges in the set are all copies of the same class graph edge u
-l->
v with different endpoint indices i and j.
TraversalGraph.IndexPair A pair of indices, representing the copy indices on the source and target of an edge in the traversal graph.
TraversalGraph.NodeSet A set of nodes vi in a traversal graph, where the nodes in the set are all copies of the same class graph node v with different indices i.
TraversalIntersection The intersection of two traversals, that is, the set of paths that are in both traversals.
TraversalNodeSetBase A set of nodes vi in a traversal, where the nodes in the set are all copies of the same ClassGraph node v with different indices i.

Interfaces

InterfaceDescription
IClassGraph A directed graph whose nodes are unique Objects with unique String labels and whose edges are IEdge objects. For each node, the list of labels of construction edges going out of a node has no duplicates, and there are no duplicate alternation or inheritance edges. Calling .ToString() on a node must return the label; these invariants must hold: getNode(String.valueOf(v)) == v String.valueOf(getNode(l)) == l (Note that a node is allowed to be null.) A node should also define .hashCode() and .Equals() properly so that it may be used as a HashMap key.
IConstraintMap A function from elements in a strategy graph to symbolic element predicates for a class graph and name map.
IEdge An edge in a class graph.
INameMap A relation whose domain is symbolic names in an encapsulated strategy and whose range is nodes and edge labels in a class graph.
ISimpleStrategy An encapsulated strategy consisting of a strategy graph S, sets of source and target nodes s and t (subsets of nodes in S), a name relation N from nodes in S to symbolic names (strings), and a constraint map B from edges in S to predicates over symbolic elements.
IStrategy A traversal strategy: a high-level, generic description of a set of paths through a family of class graphs.
IStrategyCombination A combination of two traversal strategies.
IStrategyGraph A directed graph whose nodes are unique Objects and whose edges are unlabeled but ordered.