From: <fg...@us...> - 2009-03-05 14:46:43
|
Revision: 1076 http://openutils.svn.sourceforge.net/openutils/?rev=1076&view=rev Author: fgrilli Date: 2009-03-05 14:46:37 +0000 (Thu, 05 Mar 2009) Log Message: ----------- implemented InExpression Added Paths: ----------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/criterion/InExpression.java Added: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/criterion/InExpression.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/criterion/InExpression.java (rev 0) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/criterion/InExpression.java 2009-03-05 14:46:37 UTC (rev 1076) @@ -0,0 +1,47 @@ +package net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion; + +import net.sourceforge.openutils.mgnlcriteria.jcr.query.Criteria; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRQueryException; + + +/** + * @author fgrilli + * @version $Id$ + */ +public class InExpression implements Criterion +{ + + private static final long serialVersionUID = -8445602953808764036L; + + private String nodeName; + + private String[] values; + + public InExpression(String nodeName, String[] values) + { + this.nodeName = nodeName; + if (!(values instanceof String[])) + { + String msg = "values must be of type String[]"; + log.error(msg); + throw new IllegalArgumentException(msg); + } + this.values = values; + } + + public String toXPathString(Criteria criteria) throws JCRQueryException + { + StringBuilder inClause = new StringBuilder("( "); + + for (int i = 0; i < values.length; i++) + { + String containsPredicate = Restrictions.contains(nodeName, values[i]).toXPathString(criteria); + inClause.append(containsPredicate); + // if this is not the last value, append an 'or' + if ((i + 1) != values.length) + inClause.append(" or "); + } + inClause.append(") "); + return inClause.toString(); + } +} Property changes on: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/criterion/InExpression.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |