Package org.geotools.graph.build

Examples of org.geotools.graph.build.GraphGenerator


     *  </p>
     */

  public List<AttributeType> sort() {
    //build a directed graph representing dependencies among types
    GraphGenerator gg = new BasicDirectedGraphGenerator();
   
    for (Iterator itr = types.values().iterator(); itr.hasNext();) {
      AttributeType type = (AttributeType) itr.next();
      AttributeType superType =  type.getSuper();
     
      if (superType != null) {
        //add edge type -> parent
        gg.add(new Object[]{type,superType});
      }
     
      if (type instanceof ComplexType) {
        ComplexType cType = (ComplexType) type;
       
        //add an edge for each descriptor
        Collection atts = cType.getDescriptors();
        for (Iterator aitr = atts.iterator(); aitr.hasNext();) {
          PropertyDescriptor ad = (PropertyDescriptor) aitr.next();
          gg.add(new Object[]{type,ad.getType()});
        }
      }
    }
   
    Graph graph = gg.getGraph();
   
    //test the graph for cycles
    CycleDetector cycleDetector = new DirectedCycleDetector(graph);
    if (cycleDetector.containsCycle()) {
      logger.info("Cycle found");
View Full Code Here


   *
   * @see org.geotools.graph.io.GraphReaderWriter#read()
   */
  public Graph read() throws Exception {
    //get underlying generator
    GraphGenerator generator = (GraphGenerator)getProperty(GENERATOR);
   
    //create database connection
    Connection conn = getConnection();
   
    //query database to obtain graph information
    Statement st = conn.createStatement();
    ResultSet rs = st.executeQuery(getQuery());
//    System.out.println(getQuery());
   
    while(rs.next()) {
      generator.add(readInternal(rs));   
    }
   
    //close database connection
    rs.close();
    st.close();
    conn.close();
   
    return(generator.getGraph());
  }
View Full Code Here

   *
   * @see GraphGenerator#read()
   */
  public Graph read() throws Exception {
    //get the underlying generator
    GraphGenerator generator = (GraphGenerator)getProperty(GENERATOR);
   
    //create in the file reader
    BufferedReader in = new BufferedReader(
      new FileReader(
        (String)getProperty(FILENAME)
      )
    );
       
    //read the delimiter property
    String delim = (String)getProperty(DELIMITER);
    delim = delim != null ? delim : ",";
   
    //read file line by line passing each line to template method
    String line;
    while((line = in.readLine()) != null) {
      StringTokenizer st = new StringTokenizer(line,delim);
      generator.add(readInternal(st));
    }
   
    return(generator.getGraph());
  }
View Full Code Here

   *
   */
  public void test_0() {
    final int nnodes = 100;
    Node[] ends = GraphTestUtil.buildNoBifurcations(generator(), nnodes);
    GraphGenerator fused = createGenerator();
   
    GraphFuser fuser = new GraphFuser(
      generator().getGraph(), generator().getGraphBuilder(), createEdgeMerger()
    );
    assertTrue(fuser.fuse());
View Full Code Here

    final int nnodes = 100;
    final int cyc = 50;
   
    Node[] ends = GraphTestUtil.buildNoBifurcations(generator(), nnodes);
    generator().add(new Object[]{String.valueOf(cyc), String.valueOf(cyc+1)});
    GraphGenerator fused = createGenerator();
   
    GraphFuser fuser = new GraphFuser(
      generator().getGraph(), generator().getGraphBuilder(), createEdgeMerger()
    );
    assertTrue(fuser.fuse());
View Full Code Here

    final int nnodes = 100;
    final int cyc = 50;
   
    Node[] ends = GraphTestUtil.buildNoBifurcations(generator(), nnodes);
    generator().add(new Object[]{String.valueOf(cyc), String.valueOf(cyc+2)});
    GraphGenerator fused = createGenerator();
   
    GraphFuser fuser = new GraphFuser(
      generator().getGraph(), generator().getGraphBuilder(), createEdgeMerger()
    );
    assertTrue(fuser.fuse());
View Full Code Here

   */
  public void test_3() {
    int nnodes = 100;
    GraphTestUtil.buildCircular(generator(), nnodes);
   
    GraphGenerator fused = createGenerator();
   
    GraphFuser fuser = new GraphFuser(
      generator().getGraph(), generator().getGraphBuilder(), createEdgeMerger()
    );
    assertTrue(fuser.fuse());
View Full Code Here

TOP

Related Classes of org.geotools.graph.build.GraphGenerator

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.