差分発生行の前後
無視リスト:
更新日時:
2014/11/18 14:16:47 (10 年 前)
更新者:
atsuko
ログメッセージ:

サーブレット側でクラスをソート&パス検索を少し速く

ファイル:
1 変更

凡例:

変更なし
追加
削除
  • SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/CLServlet.java

    r204 r206  
    1010import java.io.PrintWriter; 
    1111import java.math.BigDecimal; 
    12 //import java.math.BigDecimal; 
     12import java.util.*; 
    1313import javax.json.*; 
    1414import javax.servlet.ServletException; 
     
    8080                   qpg = new QueryPathGenerator(); 
    8181        } 
     82        SortedSet<String> sortedClasses = new TreeSet<String>(); // display + url 
    8283        qpg.setSPARQLendpoint(ep); 
    8384        SClass[] classes = qpg.getClasses(null); 
    84         JsonBuilderFactory jbfactory = Json.createBuilderFactory(null); 
    85         JsonArrayBuilder jab = jbfactory.createArrayBuilder(); 
    8685        for (int i = 0 ; i < classes.length; i++ ){ 
    87             JsonObjectBuilder job = jbfactory.createObjectBuilder(); 
    8886            String uri = classes[i].getClassURI(); 
    89             job.add("uri", uri); 
    9087            Label[] labels = classes[i].getLabels(); 
    9188            String label = null; 
     
    103100                label = tmplabel2[tmplabel2.length-1]; 
    104101            } 
    105              
    106             StringBuilder displaybuilder = new StringBuilder(label); 
    107             displaybuilder.append(" ("); 
    108             displaybuilder.append(classes[i].getNumOfInstances()); 
    109             displaybuilder.append(")"); 
    110             job.add("display", displaybuilder.toString()); 
     102            StringBuilder classbuilder = new StringBuilder(label); 
     103            classbuilder.append(" ("); 
     104            classbuilder.append(classes[i].getNumOfInstances()); 
     105            classbuilder.append(")  "); 
     106            classbuilder.append(uri); 
     107            sortedClasses.add(classbuilder.toString()); 
     108        } 
     109        JsonBuilderFactory jbfactory = Json.createBuilderFactory(null); 
     110        JsonArrayBuilder jab = jbfactory.createArrayBuilder(); 
     111        Iterator<String> cit = sortedClasses.iterator(); 
     112        while( cit.hasNext() ){ 
     113            JsonObjectBuilder job = jbfactory.createObjectBuilder(); 
     114            String classinfo = cit.next(); 
     115            String[] data = classinfo.split("  ");  
     116            if (data.length != 2 ){ 
     117                System.out.println("data is wrong?"); 
     118            } 
     119            job.add("uri", data[1]); 
     120            job.add("display", data[0]); 
    111121            jab.add(job); 
    112122        } 
    113123        JsonArray ja = jab.build(); 
    114124        out.print(ja); 
     125        //  
     126         
    115127    } 
    116128