public class LikeFilterImpl extends AbstractFilter implements PropertyIsLike
MultiValuedFilter.MatchAction| Modifier and Type | Field and Description |
|---|---|
protected MultiValuedFilter.MatchAction |
matchAction
Used to indicate action with multiple values *
|
LOGGERNAMEALL, BETWEEN, COMPARE_EQUALS, COMPARE_GREATER_THAN, COMPARE_GREATER_THAN_EQUAL, COMPARE_LESS_THAN, COMPARE_LESS_THAN_EQUAL, COMPARE_NOT_EQUALS, FID, GEOMETRY_BBOX, GEOMETRY_BEYOND, GEOMETRY_CONTAINS, GEOMETRY_CROSSES, GEOMETRY_DISJOINT, GEOMETRY_DWITHIN, GEOMETRY_EQUALS, GEOMETRY_INTERSECTS, GEOMETRY_OVERLAPS, GEOMETRY_TOUCHES, GEOMETRY_WITHIN, LIKE, LOGIC_AND, LOGIC_NOT, LOGIC_OR, NONE, NULL| Modifier | Constructor and Description |
|---|---|
protected |
LikeFilterImpl()
Constructor which flags the operator as like.
|
|
LikeFilterImpl(Expression expr,
String pattern,
String wildcardMulti,
String wildcardSingle,
String escape) |
|
LikeFilterImpl(Expression expr,
String pattern,
String wildcardMulti,
String wildcardSingle,
String escape,
MultiValuedFilter.MatchAction matchAction) |
protected |
LikeFilterImpl(MultiValuedFilter.MatchAction matchAction) |
| Modifier and Type | Method and Description |
|---|---|
Object |
accept(FilterVisitor visitor,
Object extraData)
Used by FilterVisitors to perform some action on this filter instance.
|
static String |
convertToSQL92(char escape,
char multi,
char single,
boolean matchCase,
String pattern)
Given OGC PropertyIsLike Filter information, construct an SQL-compatible 'like' pattern.
|
boolean |
equals(Object o)
Compares this filter to the specified object.
|
boolean |
evaluate(Object feature)
Determines whether or not a given feature matches this pattern.
|
String |
getEscape()
Getter for property escape.
|
Expression |
getExpression()
Gets the expression for hte filter.
|
String |
getLiteral()
Returns the pattern.
|
MultiValuedFilter.MatchAction |
getMatchAction()
* Flag Controlling MatchAction property When one or more of the operands evaluates to
multiple values rather than a single value, which action should be taken?
|
String |
getSingleChar()
Getter for property wildcardSingle.
|
String |
getSQL92LikePattern()
see convertToSQL92
|
String |
getWildCard()
Getter for property wildcardMulti
|
int |
hashCode()
Override of hashCode method.
|
boolean |
isMatchingCase()
Flag controlling wither comparisons are case sensitive.
|
void |
setEscape(String escape) |
void |
setExpression(Expression e) |
void |
setLiteral(String literal)
Sets the pattern.
|
void |
setMatchCase(boolean matchingCase) |
void |
setMatchingCase(boolean matchingCase) |
void |
setSingleChar(String singleChar) |
void |
setWildCard(String wildCard) |
String |
toString()
Return this filter as a string.
|
isCompareFilter, isGeometryDistanceFilter, isGeometryFilter, isLogicFilter, isMathFilter, isSimpleFilteraccepts, eval, evalprotected MultiValuedFilter.MatchAction matchAction
protected LikeFilterImpl()
public LikeFilterImpl(Expression expr, String pattern, String wildcardMulti, String wildcardSingle, String escape)
protected LikeFilterImpl(MultiValuedFilter.MatchAction matchAction)
public LikeFilterImpl(Expression expr, String pattern, String wildcardMulti, String wildcardSingle, String escape, MultiValuedFilter.MatchAction matchAction)
public static String convertToSQL92(char escape, char multi, char single, boolean matchCase, String pattern) throws IllegalArgumentException
SQL % --> match any number of characters _ --> match a single character
NOTE; the SQL command is 'string LIKE pattern [ESCAPE escape-character]' We could re-define the escape character, but I'm not doing to do that in this code since some databases will not handle this case.
Method: 1.
Examples: ( escape ='!', multi='*', single='.' ) broadway* -> 'broadway%' broad_ay -> 'broad_ay' broadway -> 'broadway'
broadway!* -> 'broadway*' (* has no significance and is escaped) can't -> 'can''t' ( ' escaped for SQL compliance)
NOTE: we also handle "'" characters as special because they are end-of-string characters. SQL will convert ' to '' (double single quote).
NOTE: we dont handle "'" as a 'special' character because it would be too confusing to have a special char as another special char. Using this will throw an error (IllegalArgumentException).
IllegalArgumentExceptionpublic String getSQL92LikePattern() throws IllegalArgumentException
IllegalArgumentExceptionpublic void setWildCard(String wildCard)
public void setSingleChar(String singleChar)
public void setEscape(String escape)
public void setMatchCase(boolean matchingCase)
public boolean isMatchingCase()
PropertyIsLikeThe ability to match case is pending the Filter 2.0 specification.
isMatchingCase in interface PropertyIsLiketrue if the comparison is case sensetive, otherwise false.public MultiValuedFilter.MatchAction getMatchAction()
MultiValuedFilterANY - if any of the possible combinations match, the result is true (aggregated OR) ALL - only if all of the possible combinations match, the result is true (aggregated AND) ONE - only if exactly one of the possible combinations match, the result is true (aggregated XOR)
getMatchAction in interface MultiValuedFilterpublic void setMatchingCase(boolean matchingCase)
public Expression getExpression()
This method calls th deprecated #getValue() for backwards compatability with
subclasses.
getExpression in interface PropertyIsLikepublic void setExpression(Expression e)
public String getLiteral()
getLiteral in interface PropertyIsLikepublic void setLiteral(String literal)
public boolean evaluate(Object feature)
public String toString()
public String getEscape()
getEscape in interface PropertyIsLikepublic String getWildCard()
getWildCard in interface PropertyIsLikePropertyIsLike.getWildCard().public String getSingleChar()
getSingleChar in interface PropertyIsLikePropertyIsLike.getSingleChar()().public boolean equals(Object o)
public int hashCode()
public Object accept(FilterVisitor visitor, Object extraData)
Copyright © 1996–2021 Geotools. All rights reserved.