1 46 package org.mr.api.jms.selector.syntax; 47 48 import javax.jms.Message ; 49 50 51 55 class Literal implements Expression { 56 57 60 private MantaObject value = null; 61 62 63 68 protected Literal(final MantaObject value) { 69 this.value = value; 70 } 72 73 81 public static Literal approxNumericLiteral(final String text) throws SelectorException { 82 83 MantaDouble value = null; 84 try { 85 value = new MantaDouble(Double.parseDouble(text)); 86 } catch (NumberFormatException exception) { 88 throw new SelectorException("invalid float: " + text); 89 } return new Literal(value); 91 } 93 94 102 public static Literal exactNumericLiteral(final String text) throws SelectorException { 103 MantaLong value = null; 104 try { 105 value = new MantaLong(Long.decode(text).longValue()); 106 } catch (NumberFormatException exception) { 108 throw new SelectorException("invalid integer: " + text); 109 } return new Literal(value); 111 } 113 114 120 public static Literal stringLiteral(final String text) { 121 return new Literal(new MantaString(text)) { 122 123 public final String toString() { 124 return "'" + this.getValue().toString() + "'"; 125 } 126 }; 127 } 129 130 136 public static Literal booleanLiteral(final boolean value) { 137 MantaBoolean bool = MantaBoolean.FALSE; 138 if (value) { 139 bool = MantaBoolean.TRUE; 140 } return new Literal(bool); 142 } 144 150 public final MantaObject evaluate(final Message msg) { 151 return value; 152 } 154 155 160 public String toString() { 161 return getValue().toString(); 162 } 164 165 170 protected final MantaObject getValue() { 171 return value; 172 }} | Popular Tags |