package com.meidusa.amoeba.sqljep; import java.util.Date; import java.util.HashMap; import java.util.Map; import com.meidusa.amoeba.route.AbstractQueryRouter; import com.meidusa.amoeba.route.TableRuleFileLoader; import com.meidusa.amoeba.sqljep.function.Comparative; import com.meidusa.amoeba.sqljep.function.ComparativeAND; import com.meidusa.amoeba.sqljep.function.ComparativeBaseList; import com.meidusa.amoeba.sqljep.function.ComparativeOR; import com.meidusa.amoeba.sqljep.variable.Variable; public class Main { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { ComparativeBaseList ID = new ComparativeOR(); ID.addComparative(new Comparative(Comparative.Equivalent,50)); ID.addComparative(new Comparative(Comparative.Equivalent,150)); //Comparable<?> ID = 12; /*ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6)); ID.addComparative(new Comparative(Comparative.Equivalent,6));*/ final Comparable<?>[] row = {ID,new Comparative(Comparative.GreaterThanOrEqual,50),new Comparative(Comparative.GreaterThanOrEqual,new java.util.Date()),"wwe"}; HashMap<String,Integer> columnMapping = new HashMap<String,Integer>(); columnMapping.put("ID",0); columnMapping.put("SUM",1); columnMapping.put("SALE_DATE",2); columnMapping.put("name",3); final Map<String,Variable> valMap = new HashMap<String,Variable>(); valMap.put("age", new Variable(){ public Comparable<?> getValue() { return "true"; } }); valMap.put("sysdate", new Variable(){ public Comparable<?> getValue() { return new Date(); } }); Object result = null; System.out.println("wwe".hashCode()%500); final RowJEP sqljep = new RowJEP("var hello=abs(hash(ID)) % 3; var isBool = false; " + "(case hello " + " WHEN range(0,1,1,0) THEN 'server0' ;" + " WHEN range(1,2,1,0) THEN 'server1' ;" + " WHEN range(2,3,1,0) THEN 'server2' ;" + "END CASE;)"); sqljep.parseExpression(columnMapping,valMap,TableRuleFileLoader.ruleFunTab); result = sqljep.getValue(row); for(int j=0;j<0;j++){ new Thread(){ public void run(){ final long start = System.currentTimeMillis(); for(int i=0;i<1;i++){ try { Object result = sqljep.getValue(row); //System.out.println(result); //sqljep.getValue(row); } catch (ParseException e) { e.printStackTrace(); } } System.out.println("total:"+(System.currentTimeMillis() -start)); } }.start(); } result = sqljep.getValue(row); final long start = System.currentTimeMillis(); for(int i=0;i<1;i++) result = sqljep.getValue(row); System.out.println(result+"\n"+"...total:"+(System.currentTimeMillis() -start)); } }