/** * see convertToSQL92 * * @throws IllegalArgumentException */ public String getSQL92LikePattern() throws IllegalArgumentException { if (escape.length() != 1) { throw new IllegalArgumentException( "Like Pattern --> escape char should be of length exactly 1"); } if (wildcardSingle.length() != 1) { throw new IllegalArgumentException( "Like Pattern --> wildcardSingle char should be of length exactly 1"); } if (wildcardMulti.length() != 1) { throw new IllegalArgumentException( "Like Pattern --> wildcardMulti char should be of length exactly 1"); } return LikeFilterImpl.convertToSQL92( escape.charAt(0), wildcardMulti.charAt(0), wildcardSingle.charAt(0), matchingCase, pattern); }
String pattern = LikeFilterImpl.convertToSQL92(esc, multi, single, matchCase, literal);
public void testLikeToSQL() { assertTrue( "BroadWay%" .equals(LikeFilterImpl.convertToSQL92('!', '*', '.', true, "BroadWay*"))); assertTrue( "broad#ay".equals(LikeFilterImpl.convertToSQL92('!', '*', '.', true, "broad#ay"))); assertTrue( "broadway".equals(LikeFilterImpl.convertToSQL92('!', '*', '.', true, "broadway"))); assertTrue( "broad_ay".equals(LikeFilterImpl.convertToSQL92('!', '*', '.', true, "broad.ay"))); assertTrue( "broad.ay".equals(LikeFilterImpl.convertToSQL92('!', '*', '.', true, "broad!.ay"))); assertTrue( "broa''dway" .equals(LikeFilterImpl.convertToSQL92('!', '*', '.', true, "broa'dway"))); assertTrue( "broa''''dway" .equals(LikeFilterImpl.convertToSQL92('!', '*', '.', true, "broa''dway"))); assertTrue( "broadway_" .equals(LikeFilterImpl.convertToSQL92('!', '*', '.', true, "broadway."))); assertTrue( "broadway".equals(LikeFilterImpl.convertToSQL92('!', '*', '.', true, "broadway!"))); assertTrue( "broadway!" .equals(LikeFilterImpl.convertToSQL92('!', '*', '.', true, "broadway!!"))); }
/** * see convertToSQL92 * * @throws IllegalArgumentException */ public String getSQL92LikePattern() throws IllegalArgumentException { if (escape.length() !=1) { throw new IllegalArgumentException("Like Pattern --> escape char should be of length exactly 1"); } if (wildcardSingle.length() !=1) { throw new IllegalArgumentException("Like Pattern --> wildcardSingle char should be of length exactly 1"); } if (wildcardMulti.length() !=1) { throw new IllegalArgumentException("Like Pattern --> wildcardMulti char should be of length exactly 1"); } return LikeFilterImpl.convertToSQL92( escape.charAt(0), wildcardMulti.charAt(0), wildcardSingle.charAt(0), matchingCase, pattern); }
/** * See convertToSQL92. * * @return SQL like sub-expression * @throws IllegalArgumentException oops */ public String getSQL92LikePattern() throws IllegalArgumentException { if (escape.length() != 1) { throw new IllegalArgumentException("Like Pattern --> escape char should be of length exactly 1"); } if (wildcardSingle.length() != 1) { throw new IllegalArgumentException("Like Pattern --> wildcardSingle char should be of length exactly 1"); } if (wildcardMulti.length() != 1) { throw new IllegalArgumentException("Like Pattern --> wildcardMulti char should be of length exactly 1"); } return LikeFilterImpl.convertToSQL92(escape.charAt(0), wildcardMulti.charAt(0), wildcardSingle.charAt(0), isMatchingCase(), pattern); }
/** * see convertToSQL92 * * @throws IllegalArgumentException */ public String getSQL92LikePattern() throws IllegalArgumentException { if (escape.length() !=1) { throw new IllegalArgumentException("Like Pattern --> escape char should be of length exactly 1"); } if (wildcardSingle.length() !=1) { throw new IllegalArgumentException("Like Pattern --> wildcardSingle char should be of length exactly 1"); } if (wildcardMulti.length() !=1) { throw new IllegalArgumentException("Like Pattern --> wildcardMulti char should be of length exactly 1"); } return LikeFilterImpl.convertToSQL92( escape.charAt(0), wildcardMulti.charAt(0), wildcardSingle.charAt(0), pattern); }
/** * Writes the SQL for the Like Filter. Assumes the current java * implemented wildcards for the Like Filter: . for multi and .? for * single. And replaces them with the SQL % and _, respectively. * * @param filter the Like Filter to be visited. * * @task REVISIT: Need to think through the escape char, so it works right * when Java uses one, and escapes correctly with an '_'. */ public Object visit(PropertyIsLike filter, Object extraData) { char esc = filter.getEscape().charAt(0); char multi = filter.getWildCard().charAt(0); char single = filter.getSingleChar().charAt(0); String pattern = LikeFilterImpl.convertToSQL92(esc,multi,single,filter.getLiteral()); Expression att = filter.getExpression(); try { att.accept(this, extraData); out.write(" LIKE '"); out.write(pattern); out.write("' "); } catch (java.io.IOException ioe) { throw new RuntimeException(IO_ERROR, ioe); } return extraData; }
char single = filter.getSingleChar().charAt(0); boolean matchCase = filter.isMatchingCase(); String pattern = LikeFilterImpl.convertToSQL92(esc,multi,single,matchCase,filter.getLiteral());
char single = filter.getWildcardSingle().charAt(0); boolean matchCase = filter.isMatchingCase(); String pattern = LikeFilterImpl.convertToSQL92(esc, multi, single, matchCase, filter.getPattern());
char multi = filter.getWildcardMulti().charAt(0); char single = filter.getWildcardSingle().charAt(0); String pattern = LikeFilterImpl.convertToSQL92(esc,multi,single,filter.getPattern());
char single = filter.getWildcardSingle().charAt(0); boolean matchCase = ((LikeFilterImpl)filter).isMatchingCase(); String pattern = LikeFilterImpl.convertToSQL92(esc, multi, single, matchCase, filter.getPattern());
String pattern = LikeFilterImpl.convertToSQL92(esc, multi, single, matchCase, literal);