ecological-engine/src/main/java/org/gcube/contentmanagement/lexicalmatcher/analysis/guesser/data/TSObjectTransformer.java

81 lines
2.7 KiB
Java
Executable File

package org.gcube.contentmanagement.lexicalmatcher.analysis.guesser.data;
import java.math.BigDecimal;
import org.gcube.contentmanagement.lexicalmatcher.analysis.core.LexicalEngineConfiguration;
import org.gcube.contentmanagement.lexicalmatcher.analysis.guesser.treeStructure.graph.GraphFramer;
public class TSObjectTransformer {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public static CategoryOrderedList transform2List(DBObjectTranslator dbo, LexicalEngineConfiguration config){
return transform2List(dbo,config,null);
}
public static CategoryOrderedList transform2List(DBObjectTranslator dbo, LexicalEngineConfiguration config, String filter){
CategoryOrderedList col = new CategoryOrderedList(config);
for (Category cat:dbo.categories){
if ((filter==null) || filter.equalsIgnoreCase(cat.getName()))
col.addCategory(cat);
}
return col;
}
public static void transform2Graph(DBObjectTranslator dbo){
GraphFramer starter = new GraphFramer("Time Series Graph");
BigDecimal total = new BigDecimal(dbo.totalCatElements);
// total = new BigDecimal(100).divide(total,2,BigDecimal.ROUND_HALF_UP);
for (Category cat:dbo.categories){
BigDecimal bd = new BigDecimal(cat.getNumberOfElements());
bd = bd.divide(total,4,BigDecimal.ROUND_HALF_UP);
bd = bd.multiply(new BigDecimal(100));
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
// double perc = bd.doubleValue()*100;
String builtname = cat.getName()+":"+bd+"% ";
starter.graphDisplayer.addVertex(builtname);
}
for (RelationEdge rel:dbo.relations){
Category cat = dbo.getCategoryfromIndex(rel.getFrom());
BigDecimal bd = new BigDecimal(cat.getNumberOfElements());
bd = bd.divide(total,4,BigDecimal.ROUND_HALF_UP);
bd = bd.multiply(new BigDecimal(100));
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
// double perc = bd.doubleValue()*100;
String name1 = cat.getName()+":"+bd+"% ";
cat = dbo.getCategoryfromIndex(rel.getTo());
bd = new BigDecimal(cat.getNumberOfElements());
bd = bd.divide(total,4,BigDecimal.ROUND_HALF_UP);
bd = bd.multiply(new BigDecimal(100));
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
// perc = bd.doubleValue()+100;
String name2 = cat.getName()+":"+bd+"% ";
starter.graphDisplayer.addEdge(name1,name2,new BigDecimal(rel.getWeigth()).divide(new BigDecimal(dbo.totalCatElements),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue());
// starter.graphDisplayer.addEdge(name1,name2,0);
}
// starter.graphDisplayer.generateRandomGraph();
starter.graphDisplayer.generateUpTo5StarGraph();
starter.go();
}
}