1 package prefuse.data.expression; 2 3 import prefuse.data.Tuple; 4 import prefuse.util.TypeLib; 5 6 12 public abstract class Literal extends AbstractExpression { 13 14 22 public static Literal getLiteral(Tuple t, String field) { 23 Class type = t.getColumnType(field); 24 if ( type == int.class ) 25 { 26 return new NumericLiteral(t.getInt(field)); 27 } 28 else if ( type == long.class ) 29 { 30 return new NumericLiteral(t.getLong(field)); 31 } 32 else if ( type == float.class ) 33 { 34 return new NumericLiteral(t.getFloat(field)); 35 } 36 else if ( type == double.class ) 37 { 38 return new NumericLiteral(t.getDouble(field)); 39 } 40 else if ( type == boolean.class ) 41 { 42 return new BooleanLiteral(t.getBoolean(field)); 43 } 44 else 45 { 46 return new ObjectLiteral(t.get(field)); 47 } 48 } 49 50 57 public static Literal getLiteral(Object val) { 58 return getLiteral(val, val.getClass()); 59 } 60 61 68 public static Literal getLiteral(Object val, Class type) { 69 if ( TypeLib.isNumericType(type) ) 70 { 71 return new NumericLiteral(val); 72 } 73 else if ( type == boolean.class ) 74 { 75 return new BooleanLiteral(((Boolean )val).booleanValue()); 76 } 77 else 78 { 79 if ( type.isInstance(val) ) { 80 return new ObjectLiteral(val); 81 } else { 82 throw new IllegalArgumentException ("Object does " 83 + "not match the provided Class type."); 84 } 85 } 86 } 87 88 } | Popular Tags |