luetzkendorf 2004/12/07 09:51:17
Modified: src/share/org/apache/slide/search/basic NotNormalizer.java
Log:
if-then-else chain replaced with mapping
Revision Changes Path
1.8 +57 -78
jakarta-slide/src/share/org/apache/slide/search/basic/NotNormalizer.java
Index: NotNormalizer.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/share/org/apache/slide/search/basic/NotNormalizer.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- NotNormalizer.java 1 Nov 2004 17:50:18 -0000 1.7
+++ NotNormalizer.java 7 Dec 2004 17:51:16 -0000 1.8
@@ -22,8 +22,10 @@
*/
package org.apache.slide.search.basic;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import org.apache.slide.content.NodeProperty.NamespaceCache;
import org.apache.slide.search.BadQueryException;
@@ -187,6 +189,41 @@
return getNamedClone(expressionElement, expressionElement.getName(),
expressionElement.getNamespace());
}
+
+ private static Map DAV_NEGATIONS = new HashMap();
+ private static Map SLIDE_NEGATIONS = new HashMap();
+ static {
+ DAV_NEGATIONS.put(Literals.AND, Literals.OR);
+ DAV_NEGATIONS.put(Literals.OR, Literals.AND);
+ DAV_NEGATIONS.put(Literals.GT, Literals.NOT_GT);
+ DAV_NEGATIONS.put(Literals.NOT_GT, Literals.GT);
+ DAV_NEGATIONS.put(Literals.GTE, Literals.NOT_GTE);
+ DAV_NEGATIONS.put(Literals.NOT_GTE, Literals.GTE);
+ DAV_NEGATIONS.put(Literals.LT, Literals.NOT_LT);
+ DAV_NEGATIONS.put(Literals.NOT_LT, Literals.LT);
+ DAV_NEGATIONS.put(Literals.LTE, Literals.NOT_LTE);
+ DAV_NEGATIONS.put(Literals.NOT_LTE, Literals.LTE);
+ DAV_NEGATIONS.put(Literals.EQ, Literals.NOT_EQ);
+ DAV_NEGATIONS.put(Literals.NOT_EQ, Literals.EQ);
+ DAV_NEGATIONS.put(Literals.CONTAINS, Literals.NOT_CONTAINS);
+ DAV_NEGATIONS.put(Literals.NOT_CONTAINS, Literals.CONTAINS);
+ DAV_NEGATIONS.put(Literals.ISCOLLECTION, Literals.NOT_ISCOLLECTION);
+ DAV_NEGATIONS.put(Literals.NOT_ISCOLLECTION, Literals.ISCOLLECTION);
+ DAV_NEGATIONS.put(Literals.ISDEFINED, Literals.NOT_ISDEFINED);
+ DAV_NEGATIONS.put(Literals.NOT_ISDEFINED, Literals.ISDEFINED);
+ DAV_NEGATIONS.put(Literals.LIKE, Literals.NOT_LIKE);
+ DAV_NEGATIONS.put(Literals.NOT_LIKE, Literals.LIKE);
+
+ SLIDE_NEGATIONS.put(Literals.ISPRINCIPAL, Literals.NOT_ISPRINCIPAL);
+ SLIDE_NEGATIONS.put(Literals.NOT_ISPRINCIPAL, Literals.ISPRINCIPAL);
+ SLIDE_NEGATIONS.put(Literals.PROPCONTAINS,
Literals.NOT_PROPCONTAINS);
+ SLIDE_NEGATIONS.put(Literals.NOT_PROPCONTAINS,
Literals.PROPCONTAINS);
+ SLIDE_NEGATIONS.put("property-contains", "not-property-contains");
+ SLIDE_NEGATIONS.put("not-property-contains", "property-contains");
+ SLIDE_NEGATIONS.put("between", "not-between");
+ SLIDE_NEGATIONS.put("not-between", "between");
+ }
+
/**
* Returns the negation of the given <code>expressionElement</code>,
* which is in the <code>DAV:</code> namespace.
@@ -198,71 +235,19 @@
*
* @throws BadQueryException if the Element could not be processed.
*/
- protected Element getNegatedDAVQueryElement(Element expressionElement)
throws BadQueryException {
+ protected Element getNegatedDAVQueryElement(Element expressionElement)
+ throws BadQueryException {
String name = expressionElement.getName();
- if (Literals.AND.equals(name)) {
- return getNamedClone(expressionElement, Literals.OR,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.OR.equals(name)) {
- return getNamedClone(expressionElement, Literals.AND,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.GT.equals(name)) {
- return getNamedClone(expressionElement, Literals.NOT_GT,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.NOT_GT.equals(name)) {
- return getNamedClone(expressionElement, Literals.GT,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.GTE.equals(name)) {
- return getNamedClone(expressionElement, Literals.NOT_GTE,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.NOT_GTE.equals(name)) {
- return getNamedClone(expressionElement, Literals.GTE,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.LT.equals(name)) {
- return getNamedClone(expressionElement, Literals.NOT_LT,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.NOT_LT.equals(name)) {
- return getNamedClone(expressionElement, Literals.LT,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.LTE.equals(name)) {
- return getNamedClone(expressionElement, Literals.NOT_LTE,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.NOT_LTE.equals(name)) {
- return getNamedClone(expressionElement, Literals.LTE,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.EQ.equals(name)) {
- return getNamedClone(expressionElement, Literals.NOT_EQ,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.NOT_EQ.equals(name)) {
- return getNamedClone(expressionElement, Literals.EQ,
NamespaceCache.DEFAULT_NAMESPACE);
+ String negated = (String)DAV_NEGATIONS.get(name);
+ if (negated != null) {
+ return getNamedClone(expressionElement, negated,
+ NamespaceCache.DEFAULT_NAMESPACE);
+ } else {
+ return getNamedClone(expressionElement, name,
+ expressionElement.getNamespace());
}
- if (Literals.CONTAINS.equals(name)) {
- return getNamedClone(expressionElement, Literals.NOT_CONTAINS,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.NOT_CONTAINS.equals(name)) {
- return getNamedClone(expressionElement, Literals.CONTAINS,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.ISCOLLECTION.equals(name)) {
- return getNamedClone(expressionElement,
Literals.NOT_ISCOLLECTION, NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.NOT_ISCOLLECTION.equals(name)) {
- return getNamedClone(expressionElement, Literals.ISCOLLECTION,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.ISDEFINED.equals(name)) {
- return getNamedClone(expressionElement, Literals.NOT_ISDEFINED,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.NOT_ISDEFINED.equals(name)) {
- return getNamedClone(expressionElement, Literals.ISDEFINED,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.LIKE.equals(name)) {
- return getNamedClone(expressionElement, Literals.NOT_LIKE,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- if (Literals.NOT_LIKE.equals(name)) {
- return getNamedClone(expressionElement, Literals.LIKE,
NamespaceCache.DEFAULT_NAMESPACE);
- }
- return getNamedClone(expressionElement, expressionElement.getName(),
expressionElement.getNamespace());
}
/**
@@ -279,20 +264,14 @@
protected Element getNegatedSlideQueryElement(Element expressionElement)
throws BadQueryException {
String name = expressionElement.getName();
-
- if (Literals.ISPRINCIPAL.equals(name)) {
- return getNamedClone(expressionElement,
Literals.NOT_ISPRINCIPAL, NamespaceCache.SLIDE_NAMESPACE);
- }
- if (Literals.NOT_ISPRINCIPAL.equals(name)) {
- return getNamedClone(expressionElement, Literals.ISPRINCIPAL,
NamespaceCache.SLIDE_NAMESPACE);
+ String negated = (String)SLIDE_NEGATIONS.get(name);
+ if (negated != null) {
+ return getNamedClone(expressionElement, negated,
+ NamespaceCache.SLIDE_NAMESPACE);
+ } else {
+ return getNamedClone(expressionElement, name,
+ expressionElement.getNamespace());
}
- if (Literals.PROPCONTAINS.equals(name)) {
- return getNamedClone(expressionElement,
Literals.NOT_PROPCONTAINS, NamespaceCache.SLIDE_NAMESPACE);
- }
- if (Literals.NOT_PROPCONTAINS.equals(name)) {
- return getNamedClone(expressionElement, Literals.PROPCONTAINS,
NamespaceCache.SLIDE_NAMESPACE);
- }
- return getNamedClone(expressionElement, expressionElement.getName(),
expressionElement.getNamespace());
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]