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]

Reply via email to