org.openstreetmap.josm.data
Class APIDataSet.RelationUploadDependencyGraph

java.lang.Object
  extended by org.openstreetmap.josm.data.APIDataSet.RelationUploadDependencyGraph
Enclosing class:
APIDataSet

private static class APIDataSet.RelationUploadDependencyGraph
extends java.lang.Object

Utility class to sort a collection of new relations with their dependencies topologically.


Field Summary
private  java.util.HashMap<Relation,java.util.Set<Relation>> children
           
private  java.util.Collection<Relation> relations
           
private  java.util.List<Relation> uploadOrder
           
private  java.util.Set<Relation> visited
           
 
Constructor Summary
APIDataSet.RelationUploadDependencyGraph()
           
APIDataSet.RelationUploadDependencyGraph(java.util.Collection<Relation> relations)
           
 
Method Summary
 void addDependency(Relation relation, Relation child)
           
 void build(java.util.Collection<Relation> relations)
           
 java.util.List<Relation> computeUploadOrder()
           
 java.util.Set<Relation> getChildren(Relation relation)
           
protected  void visit(java.util.Stack<Relation> path, Relation current)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

children

private java.util.HashMap<Relation,java.util.Set<Relation>> children

relations

private java.util.Collection<Relation> relations

visited

private java.util.Set<Relation> visited

uploadOrder

private java.util.List<Relation> uploadOrder
Constructor Detail

APIDataSet.RelationUploadDependencyGraph

public APIDataSet.RelationUploadDependencyGraph()

APIDataSet.RelationUploadDependencyGraph

public APIDataSet.RelationUploadDependencyGraph(java.util.Collection<Relation> relations)
Method Detail

build

public void build(java.util.Collection<Relation> relations)

getChildren

public java.util.Set<Relation> getChildren(Relation relation)

addDependency

public void addDependency(Relation relation,
                          Relation child)

visit

protected void visit(java.util.Stack<Relation> path,
                     Relation current)
              throws CyclicUploadDependencyException
Throws:
CyclicUploadDependencyException

computeUploadOrder

public java.util.List<Relation> computeUploadOrder()
                                            throws CyclicUploadDependencyException
Throws:
CyclicUploadDependencyException


JOSM