jackrabbit-oak-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From alexparvule...@apache.org
Subject svn commit: r1526830 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
Date Fri, 27 Sep 2013 08:27:29 GMT
Author: alexparvulescu
Date: Fri Sep 27 08:27:29 2013
New Revision: 1526830

URL: http://svn.apache.org/r1526830
Log:
OAK-1051 SelectorImpl should skip reading node type info if the #matchesAllTypes flag is set


Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java?rev=1526830&r1=1526829&r2=1526830&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
(original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
Fri Sep 27 08:27:29 2013
@@ -52,6 +52,8 @@ import org.apache.jackrabbit.oak.spi.que
 import org.apache.jackrabbit.oak.spi.query.QueryIndex;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 
+import com.google.common.collect.ImmutableSet;
+
 /**
  * A selector within a query.
  */
@@ -60,6 +62,9 @@ public class SelectorImpl extends Source
     // TODO possibly support using multiple indexes (using index intersection / index merge)
     protected QueryIndex index;
 
+    /**
+     * the node type associated with the {@link #nodeTypeName}
+     */
     private final NodeState nodeType;
 
     private final String selectorName;
@@ -68,10 +73,20 @@ public class SelectorImpl extends Source
 
     private final boolean matchesAllTypes;
 
+    /**
+     * all of the matching supertypes, or empty if the {@link #matchesAllTypes} flag is set
+     */
     private final Set<String> supertypes;
 
+    /**
+     * all of the matching primary subtypes, or empty if the {@link #matchesAllTypes} flag
is set
+     */
     private final Set<String> primaryTypes;
 
+    /**
+     * all of the matching mixin types, or empty if the {@link #matchesAllTypes}
+     * flag is set
+     */
     private final Set<String> mixinTypes;
 
     private Cursor cursor;
@@ -94,15 +109,22 @@ public class SelectorImpl extends Source
         this.nodeTypeName = nodeType.getName(JCR_NODETYPENAME);
         this.matchesAllTypes = NT_BASE.equals(nodeTypeName);
 
-        this.supertypes = newHashSet(nodeType.getNames(OAK_SUPERTYPES));
-        supertypes.add(nodeTypeName);
-
-        this.primaryTypes = newHashSet(nodeType.getNames(OAK_PRIMARY_SUBTYPES));
-        this.mixinTypes = newHashSet(nodeType.getNames(OAK_MIXIN_SUBTYPES));
-        if (nodeType.getBoolean(JCR_ISMIXIN)) {
-            mixinTypes.add(nodeTypeName);
+        if (!this.matchesAllTypes) {
+            this.supertypes = newHashSet(nodeType.getNames(OAK_SUPERTYPES));
+            supertypes.add(nodeTypeName);
+
+            this.primaryTypes = newHashSet(nodeType
+                    .getNames(OAK_PRIMARY_SUBTYPES));
+            this.mixinTypes = newHashSet(nodeType.getNames(OAK_MIXIN_SUBTYPES));
+            if (nodeType.getBoolean(JCR_ISMIXIN)) {
+                mixinTypes.add(nodeTypeName);
+            } else {
+                primaryTypes.add(nodeTypeName);
+            }
         } else {
-            primaryTypes.add(nodeTypeName);
+            this.supertypes = ImmutableSet.of();
+            this.primaryTypes = ImmutableSet.of();
+            this.mixinTypes = ImmutableSet.of();
         }
     }
 
@@ -114,16 +136,28 @@ public class SelectorImpl extends Source
         return matchesAllTypes;
     }
 
+    /**
+     * @return all of the matching supertypes, or empty if the
+     *         {@link #matchesAllTypes} flag is set
+     */
     @Nonnull
     public Set<String> getSupertypes() {
         return supertypes;
     }
 
+    /**
+     * @return all of the matching primary subtypes, or empty if the
+     *         {@link #matchesAllTypes} flag is set
+     */
     @Nonnull
     public Set<String> getPrimaryTypes() {
         return primaryTypes;
     }
 
+    /**
+     * @return all of the matching mixin types, or empty if the
+     *         {@link #matchesAllTypes} flag is set
+     */
     @Nonnull
     public Set<String> getMixinTypes() {
         return mixinTypes;
@@ -140,7 +174,6 @@ public class SelectorImpl extends Source
 
     @Override
     public String toString() {
-        String nodeTypeName = nodeType.getName(JCR_NODETYPENAME);
         return quote(nodeTypeName) + " as " + quote(selectorName);
     }
 



Mime
View raw message