public Object visit(PropertyIsLike filter, Object arg1) { Expression value = filter.getExpression(); List unrolledValues = (List) value.accept(this, null); String literal = filter.getLiteral(); String wildcard = filter.getWildCard(); String single = filter.getSingleChar(); String escape = filter.getEscape(); boolean matchCase = filter.isMatchingCase(); MatchAction matchAction = filter.getMatchAction(); List combined = new ArrayList(unrolledValues.size()); for (Iterator it = unrolledValues.iterator(); it.hasNext(); ) { Expression sourceValue = (Expression) it.next(); Filter newFilter = ff.like(sourceValue, literal, wildcard, single, escape, matchCase, matchAction); combined.add(newFilter); } Filter unrolled = combineOred(combined); return unrolled; }
public Object visit(PropertyIsLike filter, Object extraData) { Expression expr = visit(filter.getExpression(), extraData); String pattern = filter.getLiteral(); String wildcard = filter.getWildCard(); String singleChar = filter.getSingleChar(); String escape = filter.getEscape(); boolean matchCase = filter.isMatchingCase(); return getFactory(extraData) .like( expr, pattern, wildcard, singleChar, escape, matchCase, filter.getMatchAction()); }
@Test public void testLikeFilter() throws Exception { final String wildcard = "%"; final String single = "?"; final String escape = "\\"; PropertyIsLike like = ff.like( ff.property("/measurement/determinand_description"), "%n_1_1", wildcard, single, escape, true, MatchAction.ONE); PropertyIsLike unmapped = (PropertyIsLike) like.accept(visitor, null); assertEquals(like.getLiteral(), unmapped.getLiteral()); assertEquals(like.getWildCard(), unmapped.getWildCard()); assertEquals(like.getSingleChar(), unmapped.getSingleChar()); assertEquals(like.getEscape(), unmapped.getEscape()); assertEquals(like.isMatchingCase(), unmapped.isMatchingCase()); assertEquals(like.getMatchAction(), unmapped.getMatchAction()); Expression unmappedExpr = unmapped.getExpression(); assertTrue(unmappedExpr instanceof PropertyName); assertEquals("determinand_description", ((PropertyName) unmappedExpr).getPropertyName()); }
public Object visit(PropertyIsLike filter, Object arg1) { Expression value = filter.getExpression(); List unrolledValues = (List) value.accept(this, null); String literal = filter.getLiteral(); String wildcard = filter.getWildCard(); String single = filter.getSingleChar(); String escape = filter.getEscape(); boolean matchCase = filter.isMatchingCase(); MatchAction matchAction = filter.getMatchAction(); List combined = new ArrayList(unrolledValues.size()); for (Iterator it = unrolledValues.iterator(); it.hasNext();) { Expression sourceValue = (Expression) it.next(); Filter newFilter = ff.like(sourceValue, literal, wildcard, single, escape, matchCase, matchAction); combined.add(newFilter); } Filter unrolled = combineOred(combined); return unrolled; }
@Test public void testLikeFilter() throws Exception { final String wildcard = "%"; final String single = "?"; final String escape = "\\"; PropertyIsLike like = ff.like(ff.property("/measurement/determinand_description"), "%n_1_1", wildcard, single, escape, true, MatchAction.ONE); PropertyIsLike unmapped = (PropertyIsLike) like.accept(visitor, null); assertEquals(like.getLiteral(), unmapped.getLiteral()); assertEquals(like.getWildCard(), unmapped.getWildCard()); assertEquals(like.getSingleChar(), unmapped.getSingleChar()); assertEquals(like.getEscape(), unmapped.getEscape()); assertEquals(like.isMatchingCase(), unmapped.isMatchingCase()); assertEquals(like.getMatchAction(), unmapped.getMatchAction()); Expression unmappedExpr = unmapped.getExpression(); assertTrue(unmappedExpr instanceof PropertyName); assertEquals("determinand_description", ((PropertyName) unmappedExpr).getPropertyName()); }