root/SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL/LabeledMultiDigraph.java @ 207

リビジョン 205, 1.9 KB (コミッタ: atsuko, 10 年 前)

サーブレットの変数をローカル化

  • 属性 svn:mime-type の設定値 text/plain
行番号 
1/*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5package org.biohackathon.SPARQLBuilder.OWL;
6
7/**
8 *
9 * @author atsuko
10 */
11import java.util.*;
12
13
14public class LabeledMultiDigraph {
15    List<List<LabeledEdge>> adjlist;
16    List<String> labels;
17    HashMap<String,Integer> labelednodes;
18    List<Map<Integer,List<LabeledEdge>>> gadjlist; // node, node-edge list
19   
20    public class LabeledEdge{
21        Integer node;
22        String label;
23        Direction direction;
24        Integer ntriples;
25       
26        public LabeledEdge(Integer node, String label, Direction direction, Integer ntriples){
27            this.node = node;
28            this.label = label;
29            this.direction = direction;
30            this.ntriples = ntriples;
31        }
32    }
33   
34    public LabeledMultiDigraph(){
35        adjlist = new ArrayList<List<LabeledEdge>>();
36        labels = new LinkedList<String>();
37        labelednodes = new HashMap<String, Integer>();
38    }
39   
40    public void addNode(String label){
41        labelednodes.put(label, labels.size());
42        labels.add(label);
43        adjlist.add(new LinkedList<LabeledEdge>());
44        gadjlist.add(new HashMap<Integer, List<LabeledEdge>>());
45    }
46   
47    public void addEdge(Integer node1, Integer node2, String elabel, Direction direction, Integer ntriples){
48        if ( labels.size() < node1 || labels.size() < node2 ){
49            System.err.println("Error for Edge Addition: No Node for the Edge");
50            return;
51        }
52        LabeledEdge edge = new LabeledEdge(node2, elabel, direction, ntriples);
53        adjlist.get(node1).add(edge);
54       
55        Map<Integer, List<LabeledEdge>> edges = gadjlist.get(node1);
56        List<LabeledEdge> sedge = edges.get(node2);
57        if ( sedge == null ){
58            sedge = new LinkedList<LabeledEdge>();
59            edges.put(node2, sedge);
60        }
61        sedge.add(edge);
62    }
63}
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。