You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by lu...@apache.org on 2005/01/14 10:34:13 UTC
cvs commit: jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/expressions AndExpression.java CompareExpression.java ContainsExpression.java IsDefinedExpression.java NotExpression.java OrExpression.java TestExpression.java
luetzkendorf 2005/01/14 01:34:13
Added: webdavclient/clientlib/src/java/org/apache/webdav/lib/search
BasicSearchBuilder.java CompareOperator.java
SearchBuilder.java SearchException.java
SearchExpression.java SearchRequest.java
SearchRequestSample.java SearchScope.java
TestOperator.java
webdavclient/clientlib/src/java/org/apache/webdav/lib/search/expressions
AndExpression.java CompareExpression.java
ContainsExpression.java IsDefinedExpression.java
NotExpression.java OrExpression.java
TestExpression.java
Log:
first version of helpers to generate DASL queries
Revision Changes Path
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/BasicSearchBuilder.java
Index: BasicSearchBuilder.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search;
import java.io.StringWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.apache.commons.xmlio.out.XMLEncode;
import org.apache.webdav.lib.Constants;
import org.apache.webdav.lib.PropertyName;
import org.apache.webdav.lib.search.SearchRequest.Variable;
import org.apache.webdav.lib.search.expressions.AndExpression;
import org.apache.webdav.lib.search.expressions.CompareExpression;
import org.apache.webdav.lib.search.expressions.ContainsExpression;
import org.apache.webdav.lib.search.expressions.IsDefinedExpression;
import org.apache.webdav.lib.search.expressions.NotExpression;
import org.apache.webdav.lib.search.expressions.OrExpression;
import org.apache.webdav.lib.search.expressions.TestExpression;
import org.apache.webdav.lib.util.QName;
/**
* @author Stefan L�tzkendorf
*/
public class BasicSearchBuilder implements SearchBuilder
{
private static DateFormat dateFormat = new SimpleDateFormat(
"EEE, d MMM yyyy kk:mm:ss z", Locale.US);
private Map variables;
private StringWriter writer;
public String build(SearchRequest search, Map variables, List scopes)
throws SearchException
{
this.variables = variables;
this.writer = new StringWriter();
writer.write("<D:searchrequest xmlns:D='DAV:'>\n");
writer.write("<D:basicsearch>\n");
writeSelection(search, writer);
writeFrom(scopes, writer);
if (search.getWhereExpression() != null) {
writer.write("<D:where>\n");
search.getWhereExpression().build(this);
writer.write("</D:where>\n");
}
writer.write("</D:basicsearch>\n");
writer.write("</D:searchrequest>\n");
return writer.toString();
}
private static void writeSelection(SearchRequest search, StringWriter writer)
{
Iterator i = search.getSelection();
if (i.hasNext()) {
writer.write("<D:select><D:prop>\n");
for(;i.hasNext();) {
writer.write("<");
writeQNameStart((PropertyName)i.next(), writer);
writer.write("/>\n");
}
writer.write("</D:prop></D:select>\n");
}
}
private static void writeFrom(List scopes, StringWriter writer) {
writer.write("<D:from>\n");
for(int i = 0, l = scopes.size(); i < l; i++) {
SearchScope scope = (SearchScope)scopes.get(i);
writer.write("<D:scope><D:href>");
writer.write(XMLEncode.xmlEncodeText(scope.getHref()));
writer.write("</D:href><D:depth>");
writer.write(scope.getDepthString());
writer.write("</D:depth></D:scope>\n");
}
writer.write("</D:from>\n");
}
private static void writeQNameStart(QName name, StringWriter writer)
{
if (name.getNamespaceURI().equals(Constants.DAV)) {
writer.write("D:");
writer.write(name.getLocalName());
} else {
writer.write(name.getLocalName());
writer.write(" xmlns='");
writer.write(name.getNamespaceURI());
writer.write("'");
}
}
private static void writeQNameEnd(QName name, StringWriter writer)
{
if (name.getNamespaceURI().equals(Constants.DAV)) {
writer.write("D:");
writer.write(name.getLocalName());
} else {
writer.write(name.getLocalName());
}
}
public void buildAnd(AndExpression and) throws SearchException
{
writer.write("<D:and>\n");
for(Iterator i = and.getExpressions(); i.hasNext();) {
SearchExpression expression = (SearchExpression)i.next();
expression.build(this);
}
writer.write("</D:and>\n");
}
public void buildOr(OrExpression or) throws SearchException
{
writer.write("<D:or>\n");
for(Iterator i = or.getExpressions(); i.hasNext();) {
SearchExpression expression = (SearchExpression)i.next();
expression.build(this);
}
writer.write("</D:or>\n");
}
public void buildNot(NotExpression expression) throws SearchException
{
writer.write("<D:not>\n");
expression.getExpression().build(this);
writer.write("</D:not>\n");
}
public void buildCompare(CompareExpression compare) throws SearchException
{
writer.write("<");
writeQNameStart(compare.getOperator(), writer);
writer.write(">");
writer.write("<D:prop><");
writeQNameStart(compare.getPropertyName(), writer);
writer.write("/></D:prop>");
writer.write("<D:literal>");
writer.write(XMLEncode.xmlEncodeText(valueToString(compare.getValue())));
writer.write("</D:literal>");
writer.write("</");
writeQNameEnd(compare.getOperator(), writer);
writer.write(">\n");
}
public void buildContains(ContainsExpression contains)
throws SearchException
{
writer.write("<D:contains>");
writer.write(XMLEncode.xmlEncodeText(contains.getText()));
writer.write("</D:contains>\n");
}
public void buildIsdefined(IsDefinedExpression expression)
throws SearchException {
writer.write("<D:is-defined><D:prop><");
writeQNameStart(expression.getPropertyName(), writer);
writer.write("/></D:prop></D:is-defined>\n");
}
public void buildTest(TestExpression expression)
throws SearchException
{
writer.write("<");
if (expression.getNamespace().equals(Constants.DAV)) {
writer.write("D:");
writer.write(expression.getLocalName());
} else {
writer.write(expression.getLocalName());
writer.write(" xmlns='");
writer.write(expression.getNamespace());
writer.write("'");
}
writer.write("/>");
}
private String valueToString(Object value) throws SearchException {
if (value instanceof Date) {
synchronized(dateFormat) {
return dateFormat.format((Date)value);
}
}
if (value instanceof Variable) {
Variable var = (Variable)value;
Object val = this.variables.get(var.getName());
if (val == null) val = var.getDefaultValue();
if (val == null) {
throw new SearchException("Unset variable: " + var.getName());
}
return valueToString(val);
}
// otherwise
return value.toString();
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/CompareOperator.java
Index: CompareOperator.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search;
import org.apache.webdav.lib.Constants;
import org.apache.webdav.lib.util.QName;
/**
* @author Stefan L�tzkendorf
*/
public final class CompareOperator extends QName
{
public static final CompareOperator EQ = new CompareOperator(Constants.DAV, "eq");
public static final CompareOperator LT = new CompareOperator(Constants.DAV, "lt");
public static final CompareOperator GT = new CompareOperator(Constants.DAV, "gt");
public static final CompareOperator LTE = new CompareOperator(Constants.DAV, "lte");
public static final CompareOperator GTE = new CompareOperator(Constants.DAV, "gte");
public static final CompareOperator LIKE = new CompareOperator(Constants.DAV, "like");
public static final CompareOperator PROPERTY_CONTAINS = new CompareOperator(Constants.SLIDE, "property-contains");
private CompareOperator(String namespace, String name) {
super(namespace, name);
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/SearchBuilder.java
Index: SearchBuilder.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search;
import java.util.List;
import java.util.Map;
import org.apache.webdav.lib.search.expressions.AndExpression;
import org.apache.webdav.lib.search.expressions.CompareExpression;
import org.apache.webdav.lib.search.expressions.ContainsExpression;
import org.apache.webdav.lib.search.expressions.IsDefinedExpression;
import org.apache.webdav.lib.search.expressions.NotExpression;
import org.apache.webdav.lib.search.expressions.OrExpression;
import org.apache.webdav.lib.search.expressions.TestExpression;
/**
* @author Stefan L�tzkendorf
*/
public interface SearchBuilder
{
public String build(SearchRequest search, Map variables, List scopes)
throws SearchException;
public void buildAnd(AndExpression and)
throws SearchException;
public void buildOr(OrExpression or)
throws SearchException;
public void buildNot(NotExpression expression)
throws SearchException;
public void buildCompare(CompareExpression compare)
throws SearchException;
public void buildContains(ContainsExpression contains)
throws SearchException;
public void buildIsdefined(IsDefinedExpression expression)
throws SearchException;
public void buildTest(TestExpression expression)
throws SearchException;
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/SearchException.java
Index: SearchException.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search;
public class SearchException extends Exception
{
public SearchException()
{
}
public SearchException(String message)
{
super(message);
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/SearchExpression.java
Index: SearchExpression.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search;
/**
* @author Stefan L�tzkendorf
*/
public abstract class SearchExpression
{
public abstract void build(SearchBuilder builder)
throws SearchException;
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/SearchRequest.java
Index: SearchRequest.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.webdav.lib.PropertyName;
import org.apache.webdav.lib.search.expressions.AndExpression;
import org.apache.webdav.lib.search.expressions.CompareExpression;
import org.apache.webdav.lib.search.expressions.ContainsExpression;
import org.apache.webdav.lib.search.expressions.IsDefinedExpression;
import org.apache.webdav.lib.search.expressions.NotExpression;
import org.apache.webdav.lib.search.expressions.OrExpression;
import org.apache.webdav.lib.search.expressions.TestExpression;
/**
* @author Stefan L�tzkendorf
*/
public class SearchRequest
{
private List selections = new ArrayList();
private List scopes = new ArrayList();
private SearchExpression whereClause = null;
public void addSelection(PropertyName propertyName) {
this.selections.add(propertyName);
}
public Iterator getSelection() {
return this.selections.iterator();
}
public void addScope(SearchScope scope) {
this.scopes.add(scope);
}
public void setWhereExpression(SearchExpression expression) {
this.whereClause = expression;
}
public SearchExpression getWhereExpression() {
return this.whereClause;
}
/**
* Factory method for compare expressions.
* @param op operator to use while comparision
* @param property property tp be compared
* @param value value to be used for comparision.
*/
public CompareExpression compare(CompareOperator op, PropertyName property, Object value) {
return new CompareExpression(op, property, value);
}
/**
* Factory method for <code>contains</code> expression.
* @param text the text that should be contained.
*/
public ContainsExpression contains(String text) {
return new ContainsExpression(text);
}
/**
* Factory method for <code>and</code> expression.
* @param e1 first expression
* @param e2 second expression
*/
public AndExpression and(SearchExpression e1, SearchExpression e2) {
AndExpression and = new AndExpression();
and.add(e1);
and.add(e2);
return and;
}
/**
* Factory method for <code>and</code> expression.
* @param e1 first expression
* @param e2 second expression
* @param e3 third expression
*/
public AndExpression and(SearchExpression e1, SearchExpression e2, SearchExpression e3) {
AndExpression and = new AndExpression();
and.add(e1);
and.add(e2);
and.add(e3);
return and;
}
/**
* Factory method for <code>or</code> expression.
* @param e1 first expression
* @param e2 second expression
*/
public OrExpression or(SearchExpression e1, SearchExpression e2) {
OrExpression or = new OrExpression();
or.add(e1);
or.add(e2);
return or;
}
/**
* Factory method for <code>and</code> expression.
* @param e1 first expression
* @param e2 second expression
* @param e3 third expression
*/
public OrExpression or(SearchExpression e1, SearchExpression e2, SearchExpression e3) {
OrExpression or = new OrExpression();
or.add(e1);
or.add(e2);
or.add(e3);
return or;
}
/**
* Factory method for <code>not</code> expressions.
* @param ex expression to be negated
*/
public NotExpression not(SearchExpression ex) {
return new NotExpression(ex);
}
/**
* Factory method for <code>is-defined</code> expressions.
* @param property the name of the property to be checked
*/
public IsDefinedExpression isDefined(PropertyName property) {
return new IsDefinedExpression(property);
}
/**
* Factory method for <code>is-????</code> expressions.
* @param operator
*/
public TestExpression test(TestOperator operator) {
return new TestExpression(operator.getNamespaceURI(), operator.getLocalName());
}
/**
* Factory method for variables. They are intended as placeholders for values
* in other expressions.
* @param name the variables name
*/
public Object variable(String name) {
return variable(name, null);
}
/**
* Factory method for variables. They are intended as placeholders for values
* in other expressions.
* @param name the variables name
* @param defaultValue the variables defaul value
*/
public Object variable(String name, Object defaultValue) {
return new Variable(name, defaultValue);
}
public String asString() throws SearchException {
SearchBuilder builder = new BasicSearchBuilder();
return builder.build(this, Collections.EMPTY_MAP, this.scopes);
}
public String asString(List scopes) throws SearchException {
SearchBuilder builder = new BasicSearchBuilder();
return builder.build(this, Collections.EMPTY_MAP, scopes);
}
public String asString(Map variables) throws SearchException {
SearchBuilder builder = new BasicSearchBuilder();
return builder.build(this, variables, this.scopes);
}
public String asString(Map variables, List scopes) throws SearchException {
SearchBuilder builder = new BasicSearchBuilder();
return builder.build(this, variables, scopes);
}
public static class Variable {
private String name;
private Object defaultValue;
Variable(String name, Object value) {
if (value instanceof Variable)
throw new IllegalArgumentException("Variables values must not be variables.");
this.name = name;
this.defaultValue = value;
}
public Object getDefaultValue()
{
return defaultValue;
}
public String getName()
{
return name;
}
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/SearchRequestSample.java
Index: SearchRequestSample.java
===================================================================
package org.apache.webdav.lib.search;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.webdav.lib.PropertyName;
/**
* @author stefan
*/
public class SearchRequestSample {
public static void main(String[] args) {
try {
test1();
testWithScopes();
testWithVariables();
}
catch (SearchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static final PropertyName DISPLAYNAME = new PropertyName("DAV:", "displayname");
static final PropertyName LASTMODIFIED = new PropertyName("DAV:", "getlastmodified");
static final PropertyName ABSTRACT = new PropertyName("http://any.domain/test/", "abstract");
static final PropertyName KEYWORDS = new PropertyName("http://any.domain/test/", "keywords");
public static void test1() throws SearchException {
SearchRequest s = new SearchRequest();
s.addSelection(DISPLAYNAME);
s.addSelection(LASTMODIFIED);
s.addScope(new SearchScope("files"));
SearchExpression expression=
s.and(s.compare(CompareOperator.LIKE, DISPLAYNAME, "%.xml"),
s.and(s.compare(CompareOperator.GT, LASTMODIFIED, new Date(1100000000000L)),
s.compare(CompareOperator.LT, LASTMODIFIED, new Date(1121212121212L))));
s.setWhereExpression(expression);
System.out.println(s.asString());
}
public static void testWithVariables() throws SearchException {
SearchRequest s = new SearchRequest();
s.addSelection(DISPLAYNAME);
s.addSelection(LASTMODIFIED);
s.addScope(new SearchScope("files/docs1"));
s.addScope(new SearchScope("files/docs2"));
SearchExpression expression= s.compare(CompareOperator.PROPERTY_CONTAINS,
ABSTRACT, s.variable("TEXT"));
s.setWhereExpression(expression);
Map variables = new HashMap();
variables.put("TEXT", "aber hallo");
System.out.println(s.asString(variables));
variables.put("TEXT", "holla blokes");
System.out.println(s.asString(variables));
}
public static void testWithScopes() throws SearchException {
SearchRequest s = new SearchRequest();
s.addSelection(DISPLAYNAME);
s.addSelection(LASTMODIFIED);
SearchExpression expression = s.or(
s.isDefined(ABSTRACT),
s.isDefined(KEYWORDS));
s.setWhereExpression(expression);
System.out.println(s.asString());
List scopes = new ArrayList();
scopes.add(new SearchScope("files/docs1"));
scopes.add(new SearchScope("files/docs2"));
System.out.println(s.asString(scopes));
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/SearchScope.java
Index: SearchScope.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search;
/**
*
*/
public class SearchScope
{
public static int DEPTH_0 = 0;
public static int DEPTH_1 = 1;
public static int DEPTH_INFINITY = Integer.MAX_VALUE;
private String href;
private int depth;
public SearchScope(String uri) {
this.href = uri;
this.depth = DEPTH_INFINITY;
}
public SearchScope(String uri, int depth) {
this.href = uri;
this.depth = depth;
}
public int getDepth()
{
return depth;
}
public String getDepthString()
{
if(this.depth == DEPTH_INFINITY) {
return "infinity";
} else {
return Integer.toString(this.depth);
}
}
public String getHref()
{
return href;
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/TestOperator.java
Index: TestOperator.java
===================================================================
package org.apache.webdav.lib.search;
import org.apache.webdav.lib.Constants;
import org.apache.webdav.lib.util.QName;
/**
* @author stefan
*/
public final class TestOperator extends QName {
public static final TestOperator IS_COLLECTION = new TestOperator(Constants.DAV, "is-collection");
public static final TestOperator IS_PRINCPAL = new TestOperator(Constants.DAV, "is-principal");
private TestOperator(String namespaceURI, String localName) {
super(namespaceURI, localName);
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/expressions/AndExpression.java
Index: AndExpression.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search.expressions;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.webdav.lib.search.SearchBuilder;
import org.apache.webdav.lib.search.SearchException;
import org.apache.webdav.lib.search.SearchExpression;
/**
* @author Stefan L�tzkendorf
*/
public class AndExpression extends SearchExpression
{
private List expressions = new ArrayList();
public AndExpression() {
}
public void add(SearchExpression expression) {
this.expressions.add(expression);
}
public Iterator getExpressions() {
return this.expressions.iterator();
}
public void build(SearchBuilder builder) throws SearchException
{
builder.buildAnd(this);
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/expressions/CompareExpression.java
Index: CompareExpression.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search.expressions;
import org.apache.webdav.lib.PropertyName;
import org.apache.webdav.lib.search.CompareOperator;
import org.apache.webdav.lib.search.SearchBuilder;
import org.apache.webdav.lib.search.SearchException;
import org.apache.webdav.lib.search.SearchExpression;
/**
* @author Stefan L�tzkendorf
*/
public class CompareExpression extends SearchExpression
{
private PropertyName propertyName;
private CompareOperator operator;
private Object value;
public CompareExpression(CompareOperator operator, PropertyName name, Object value) {
this.operator = operator;
this.propertyName = name;
this.value = value;
}
public PropertyName getPropertyName()
{
return propertyName;
}
public Object getValue()
{
return value;
}
public CompareOperator getOperator()
{
return this.operator;
}
public void build(SearchBuilder builder) throws SearchException
{
builder.buildCompare(this);
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/expressions/ContainsExpression.java
Index: ContainsExpression.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search.expressions;
import org.apache.webdav.lib.search.SearchBuilder;
import org.apache.webdav.lib.search.SearchException;
import org.apache.webdav.lib.search.SearchExpression;
/**
* @author Stefan L�tzkendorf
*/
public class ContainsExpression extends SearchExpression
{
private String text;
public ContainsExpression(String text) {
this.text = text;
}
public String getText() {
return this.text;
}
public void build(SearchBuilder builder) throws SearchException
{
builder.buildContains(this);
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/expressions/IsDefinedExpression.java
Index: IsDefinedExpression.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search.expressions;
import org.apache.webdav.lib.PropertyName;
import org.apache.webdav.lib.search.SearchBuilder;
import org.apache.webdav.lib.search.SearchException;
import org.apache.webdav.lib.search.SearchExpression;
/**
* @author Stefan L�tzkendorf
*/
public class IsDefinedExpression extends SearchExpression
{
private PropertyName propertyName;
public IsDefinedExpression(PropertyName name) {
this.propertyName = name;
}
public void build(SearchBuilder builder) throws SearchException
{
builder.buildIsdefined(this);
}
public PropertyName getPropertyName()
{
return propertyName;
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/expressions/NotExpression.java
Index: NotExpression.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search.expressions;
import org.apache.webdav.lib.search.SearchBuilder;
import org.apache.webdav.lib.search.SearchException;
import org.apache.webdav.lib.search.SearchExpression;
/**
* @author Stefan L�tzkendorf
*/
public class NotExpression extends SearchExpression
{
private SearchExpression expression;
public NotExpression(SearchExpression expression) {
this.expression = expression;
}
public void build(SearchBuilder builder) throws SearchException
{
builder.buildNot(this);
}
public SearchExpression getExpression()
{
return expression;
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/expressions/OrExpression.java
Index: OrExpression.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search.expressions;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.webdav.lib.search.SearchBuilder;
import org.apache.webdav.lib.search.SearchException;
import org.apache.webdav.lib.search.SearchExpression;
/**
* @author Stefan L�tzkendorf
*/
public class OrExpression extends SearchExpression
{
private List expressions = new ArrayList();
public OrExpression() {
}
public void add(SearchExpression expression) {
this.expressions.add(expression);
}
public Iterator getExpressions() {
return this.expressions.iterator();
}
public void build(SearchBuilder builder) throws SearchException {
builder.buildOr(this);
}
}
1.1 jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/search/expressions/TestExpression.java
Index: TestExpression.java
===================================================================
// vi: set ts=3 sw=3:
package org.apache.webdav.lib.search.expressions;
import org.apache.webdav.lib.search.SearchBuilder;
import org.apache.webdav.lib.search.SearchException;
import org.apache.webdav.lib.search.SearchExpression;
/**
* @author Stefan L�tzkendorf
*/
public class TestExpression extends SearchExpression
{
private String localName;
private String namespace;
public TestExpression(String namespace, String localname) {
this.namespace = namespace;
this.localName = localname;
}
public void build(SearchBuilder builder) throws SearchException
{
builder.buildTest(this);
}
public String getLocalName()
{
return localName;
}
public String getNamespace()
{
return namespace;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org