package org.springframework.roo.addon.finder;
import java.util.Collections;
import java.util.SortedSet;
import java.util.TreeSet;
/**
* Contains utility methods to return {@link SortedSet}s of
* {@link ReservedToken}s.
* <p>
* Collections available through this class are immutable (non-modifiable).
*
* @author Stefan Schmidt
* @since 1.0;
*/
public abstract class ReservedTokenHolder {
public static final SortedSet<ReservedToken> ALL_TOKENS;
public static final SortedSet<ReservedToken> BOOLEAN_TOKENS;
public static final SortedSet<ReservedToken> NUMERIC_TOKENS;
public static final SortedSet<ReservedToken> STRING_TOKENS;
static {
NUMERIC_TOKENS = Collections.unmodifiableSortedSet(getNumericTokens());
BOOLEAN_TOKENS = Collections.unmodifiableSortedSet(getBooleanTokens());
STRING_TOKENS = Collections.unmodifiableSortedSet(getStringTokens());
ALL_TOKENS = Collections.unmodifiableSortedSet(getAllTokens());
}
private static SortedSet<ReservedToken> getAllTokens() {
final SortedSet<ReservedToken> reservedTokens = new TreeSet<ReservedToken>();
reservedTokens.add(new ReservedToken("Or"));
reservedTokens.add(new ReservedToken("And"));
reservedTokens.add(new ReservedToken("Not"));
reservedTokens.add(new ReservedToken("Like"));
reservedTokens.add(new ReservedToken("Ilike")); // Ignore case like
reservedTokens.add(new ReservedToken("LessThanEquals"));
reservedTokens.add(new ReservedToken("IsNull"));
reservedTokens.add(new ReservedToken("Equals"));
reservedTokens.add(new ReservedToken("Between"));
reservedTokens.add(new ReservedToken("LessThan"));
reservedTokens.add(new ReservedToken("NotEquals"));
reservedTokens.add(new ReservedToken("IsNotNull"));
reservedTokens.add(new ReservedToken("GreaterThan"));
reservedTokens.add(new ReservedToken("GreaterThanEquals"));
reservedTokens.add(new ReservedToken("Member"));
return reservedTokens;
}
private static SortedSet<ReservedToken> getBooleanTokens() {
final SortedSet<ReservedToken> booleanTokens = new TreeSet<ReservedToken>();
booleanTokens.add(new ReservedToken("Not"));
return booleanTokens;
}
private static SortedSet<ReservedToken> getNumericTokens() {
final SortedSet<ReservedToken> numericTokens = new TreeSet<ReservedToken>();
numericTokens.add(new ReservedToken("Between"));
numericTokens.add(new ReservedToken("LessThan"));
numericTokens.add(new ReservedToken("LessThanEquals"));
numericTokens.add(new ReservedToken("GreaterThan"));
numericTokens.add(new ReservedToken("GreaterThanEquals"));
numericTokens.add(new ReservedToken("IsNotNull"));
numericTokens.add(new ReservedToken("IsNull"));
numericTokens.add(new ReservedToken("NotEquals"));
numericTokens.add(new ReservedToken("Equals"));
return numericTokens;
}
private static SortedSet<ReservedToken> getStringTokens() {
final SortedSet<ReservedToken> stringTokens = new TreeSet<ReservedToken>();
stringTokens.add(new ReservedToken("Equals"));
stringTokens.add(new ReservedToken("NotEquals"));
stringTokens.add(new ReservedToken("Like"));
stringTokens.add(new ReservedToken("IsNotNull"));
stringTokens.add(new ReservedToken("IsNull"));
return stringTokens;
}
}