pnever 02/04/23 01:14:30
Added: src/share/org/apache/slide/search/basic
BasicExpressionFactory.java
Log:
Initial version
Revision Changes Path
1.1
jakarta-slide/src/share/org/apache/slide/search/basic/BasicExpressionFactory.java
Index: BasicExpressionFactory.java
===================================================================
/*
* $Header:
/home/cvs/jakarta-slide/src/share/org/apache/slide/search/basic/BasicExpressionFactory.java,v
1.1 2002/04/23 08:14:30 pnever Exp $
* $Revision: 1.1 $
* $Date: 2002/04/23 08:14:30 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. the names "The Jakarta Project", "Slide", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* [Additional notices, if required by prior licensing conditions]
*
*/
package org.apache.slide.search.basic;
import org.jdom.Element;
import org.apache.slide.search.InvalidQueryException;
/**
* BasicExpressionFactory.java
*
* @author Created by Omnicore CodeGuide
*/
public class BasicExpressionFactory {
public static final String EXPRESSION_FACTORY = "ExpressionFactory";
/**
* Factory method to create the concrete expression.
*
* @param e the jdom element representing the expression
*
* @return a BasicSearchExpression
*
* @throws InvalidQueryException
*/
public BasicExpression createExpression
(Element e) throws InvalidQueryException
{
BasicExpression result = null;
if (e == null) {
result = new EmptyExpression ();
}
else {
String namespace = e.getNamespace().getURI();
if (namespace.equals (Literals.DAV_NAMESPACE))
result = createDAVExpression (e);
else
result = createNonDAVExpression (e, namespace);
}
return result;
}
private BasicExpression createDAVExpression
(Element e) throws InvalidQueryException
{
String name = e.getName();
BasicExpression result = null;
if (name.equals (Literals.AND))
result = new AndExpression (e, this);
else if (name.equals (Literals.OR))
result = new OrExpression (e, this);
else if (name.equals (Literals.GT))
result = new GTExpression (e);
else if (name.equals (Literals.LT))
result = new LTExpression (e);
else if (name.equals (Literals.EQ))
result = new EQExpression (e);
else if (name.equals (Literals.CONTAINS))
result = new ContainsExpression (e);
else if (name.equals (Literals.ISCOLLECTION))
result = new IsCollectionExpression (e);
else if (name.equals (Literals.ISDEFINED))
result = new IsDefinedExpression (e);
else if (name.equals (Literals.NOT))
result = new NotExpression (e, this);
else
throw new InvalidQueryException
("operator " + Literals.DAV_NAMESPACE + name + " is an unprocessable
entity");
return result;
}
private BasicExpression createNonDAVExpression
(Element e, String namespace) throws InvalidQueryException
{
String name = e.getName();
BasicExpression result = null;
if (namespace.equals (Literals.SLIDE_EXTENSIONS)
&& name.equals (Literals.ISPRINCIPAL))
result = new IsPrincipalExpression (e);
else
throw new InvalidQueryException
("operator " + namespace + name + " is an unprocessable entity");
return result;
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>