1 package jp.sourceforge.stigmata.printer.csv;
7 import java.io.PrintWriter;
8 import java.util.ArrayList;
9 import java.util.HashMap;
10 import java.util.LinkedHashMap;
11 import java.util.List;
14 import jp.sourceforge.stigmata.ComparisonPair;
15 import jp.sourceforge.stigmata.ComparisonResultSet;
16 import jp.sourceforge.stigmata.printer.AbstractComparisonResultSetPrinter;
17 import jp.sourceforge.stigmata.result.CertainPairComparisonResultSet;
23 * @author Haruaki TAMADA
26 public class ComparisonResultSetCsvPrinter extends AbstractComparisonResultSetPrinter{
27 public ComparisonResultSetCsvPrinter(){
31 public void printResult(PrintWriter out, ComparisonResultSet resultset){
32 if(resultset instanceof CertainPairComparisonResultSet){
33 printResultImpl(out, (CertainPairComparisonResultSet)resultset);
36 printResultImpl(out, resultset);
40 private void printResultImpl(PrintWriter out, CertainPairComparisonResultSet resultset){
41 for(ComparisonPair pair: resultset){
42 out.print(pair.getTarget1().getName());
44 out.print(pair.getTarget1().getName());
46 out.println(pair.calculateSimilarity());
50 private void printResultImpl(PrintWriter out, ComparisonResultSet resultset){
51 Map<String, Map<String, Double>> map = new LinkedHashMap<String, Map<String, Double>>();
52 List<String> names = new ArrayList<String>();
54 for(ComparisonPair pair: resultset){
55 Map<String, Double> val = map.get(pair.getTarget1().getName());
57 val = new HashMap<String, Double>();
59 val.put(pair.getTarget2().getName(), new Double(pair.calculateSimilarity()));
60 if(!names.contains(pair.getTarget2().getName())){
61 names.add(pair.getTarget2().getName());
63 map.put(pair.getTarget1().getName(), val);
66 for(String name: names){
71 for(Map.Entry<String, Map<String, Double>> entry: map.entrySet()){
72 out.print(entry.getKey());
73 Map<String, Double> element = entry.getValue();
74 for(String name: names){
76 Double v = element.get(name);
78 out.print(v.doubleValue());