Package com.google.devtools.depan.model

Examples of com.google.devtools.depan.model.GraphNode


      reader.moveDown();
      Relation relation = unmarshallRelation(reader, context);
      reader.moveUp();

      reader.moveDown();
      GraphNode head = unmarshallGraphNode(reader, context, graph);
      reader.moveUp();

      reader.moveDown();
      GraphNode tail = unmarshallGraphNode(reader, context, graph);
      reader.moveUp();

      GraphEdge result = new GraphEdge(head, tail, relation);
      return result;
    } catch (RuntimeException err) {
View Full Code Here


  }

  private GraphNode unmarshallGraphNode(
      HierarchicalStreamReader reader, UnmarshallingContext context, GraphModel graph) {
    String nodeId = reader.getValue();
    GraphNode result = (GraphNode) graph.findNode(nodeId);
    if (null == result) {
      throw new IllegalStateException(
          "Edge reference to undefined node " + nodeId);
    }
    return result;
View Full Code Here

  public void addExposedEdges(
      Collection<GraphEdge> result,
      Collection<GraphEdge> availEdges) {

    for (GraphEdge candidate : availEdges) {
      GraphNode edgeHead = hiddenNodes.get(candidate.getHead());
      GraphNode edgeTail = hiddenNodes.get(candidate.getTail());

      // If neither head or tail is collapsed, just use the original edge
      if ((null == edgeHead) && (null == edgeTail)) {
        result.add(candidate);
      }
View Full Code Here

    builder.newDep(parentNode, childNode, childInfo.getToRelation());
  }

  @Override
  protected GraphNode lookupNode(PathInfo path) {
    GraphNode node = path.createNode();
    GraphNode found = builder.newNode(node);
    if (node != found) {
      return found;
    }
    return null;
  }
View Full Code Here

   * @param leafInfo hierarchical path to install
   * @return {@link GraphNode} from the dependency graph
   */
  public final GraphNode insertLeaf(PathInfo leafInfo) {
    // Early exit if leafPath is already in graph
    GraphNode childNode = lookupNode(leafInfo);
    if (null != childNode) {
      return childNode;
    }

    // Setup for tree ascent
    PathInfo childInfo = leafInfo;
    childNode = childInfo.createNode();
    final GraphNode result = childNode;

    PathInfo nextInfo = childInfo.getParentInfo();
    while (null != nextInfo) {
      PathInfo parentInfo = nextInfo;

      GraphNode parentNode = lookupNode(parentInfo);
      if (null != parentNode) {
        nextInfo = null;
      }
      else {
        parentNode = parentInfo.createNode();
View Full Code Here

   * in the complete view.
   */
  @Test
  public void testBasic() {
    GraphModel testGraph = new GraphModel();
    @SuppressWarnings("unused")
    GraphNode srcNodes[] =
        TestUtils.buildComplete(testGraph, 5, SampleRelation.sampleRelation);
  }
View Full Code Here

   */
  @Test
  public void testCollapse() {
    Collapser collapser = new Collapser();
    GraphModel testGraph = new GraphModel();
    GraphNode srcNodes[] =
        TestUtils.buildComplete(testGraph, 5, SampleRelation.sampleRelation);

    assertGraphNodesEdges(testGraph, 5, 10);

    // Do a simple collapse
    GraphNode master = srcNodes[3];
    Collection<GraphNode> collapsed = Lists.newArrayList();
    collapsed.add(master);
    collapsed.add(srcNodes[4]);
    collapser.collapse(master, collapsed, true);

View Full Code Here

   */
  @Test
  public void testNestedCollapse() {
    Collapser collapser = new Collapser();
    GraphModel testGraph = new GraphModel();
    GraphNode srcNodes[] =
        TestUtils.buildComplete(testGraph, 5, SampleRelation.sampleRelation);

    assertGraphNodesEdges(testGraph, 5, 10);

    // Do a simple collapse
    GraphNode masterOne = srcNodes[3];
    Collection<GraphNode> collapseOne = Lists.newArrayList();
    collapseOne.add(masterOne);
    collapseOne.add(srcNodes[4]);
    collapser.collapse(masterOne, collapseOne, true);
    assertGraphNodesEdges(collapser.buildExposedGraph(testGraph), 4, 6);

    // Collapse this master into a new master
    GraphNode masterTwo = srcNodes[2];
    Collection<GraphNode> collapseTwo = Lists.newArrayList();
    collapseTwo.add(masterOne);
    collapseTwo.add(masterTwo);
    collapser.collapse(masterTwo, collapseTwo, false);
    assertGraphNodesEdges(collapser.buildExposedGraph(testGraph), 3, 3);
View Full Code Here

   */
  @Test
  public void testDoubleCollapse() {
    Collapser collapser = new Collapser();
    GraphModel testGraph = new GraphModel();
    GraphNode srcNodes[] =
        TestUtils.buildComplete(testGraph, 5, SampleRelation.sampleRelation);

    assertGraphNodesEdges(testGraph, 5, 10);

    // Allocate a re-usable master and picked lists
    GraphNode master;
    Collection<GraphNode> picked = Lists.newArrayList();

    // Do a simple collapse
    master = srcNodes[3];
    picked.add(master);
View Full Code Here

  @Test
  public void testAutoCollapse() {
    Collapser collapser = new Collapser();
    GraphModel testGraph = new GraphModel();
    GraphNode srcNodes[] =
        TestUtils.buildComplete(testGraph, 5, SampleRelation.sampleRelation);

    assertGraphNodesEdges(testGraph, 5, 10);

    MultipleDirectedRelationFinder finder =
View Full Code Here

TOP

Related Classes of com.google.devtools.depan.model.GraphNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.