improved query simplication

This commit is contained in:
Timo Westkämper 2012-06-27 23:54:07 +03:00
parent 234e4b7e74
commit cc7f6beffc
2 changed files with 13 additions and 6 deletions

View File

@ -51,22 +51,24 @@ public abstract class SerializerBase<S extends SerializerBase<S>> implements Vis
private static final Joiner EMPTY_JOINER = Joiner.on("");
private final StringBuilder builder = new StringBuilder();
private static final String START = "\\b";
private static final String NUMBER = "([+\\-]?\\d+\\.?\\d*)";
private static final String WS = "\\s*";
private static final Pattern OPERATOR = Pattern.compile(WS + "[+\\-/*]" + WS);
private static final Pattern OPERATION = Pattern.compile(NUMBER + OPERATOR.pattern() + NUMBER);
private static final Pattern OPERATION = Pattern.compile(START + NUMBER + OPERATOR.pattern() + NUMBER);
private static final Pattern ADDITION = Pattern.compile(NUMBER + WS + "\\+" + WS + NUMBER);
private static final Pattern ADDITION = Pattern.compile(START + NUMBER + WS + "\\+" + WS + NUMBER);
private static final Pattern SUBTRACTION = Pattern.compile(NUMBER + WS + "\\-" + WS + NUMBER);
private static final Pattern SUBTRACTION = Pattern.compile(START + NUMBER + WS + "\\-" + WS + NUMBER);
private static final Pattern DIVISION = Pattern.compile(NUMBER + WS + "/" + WS + NUMBER);
private static final Pattern DIVISION = Pattern.compile(START + NUMBER + WS + "/" + WS + NUMBER);
private static final Pattern MULTIPLICATION = Pattern.compile(NUMBER + WS + "\\*" + WS + NUMBER);
private static final Pattern MULTIPLICATION = Pattern.compile(START + NUMBER + WS + "\\*" + WS + NUMBER);
private String constantPrefix = "a";

View File

@ -6,6 +6,11 @@ import org.junit.Test;
public class SerializerBaseTest {
@Test
public void Variables() {
assertEquals("var1 + 3", SerializerBase.normalize("var1 + 3"));
}
@Test
public void Normalize_Addition() {
assertEquals("3", SerializerBase.normalize("1+2"));