spmallette closed pull request #951:  Optimizes Set with enum using the EnumSet 
implementation [tp32]
URL: https://github.com/apache/tinkerpop/pull/951
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/RequirementsStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/RequirementsStep.java
index 2aa9f77c63..f2bb7a6314 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/RequirementsStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/RequirementsStep.java
@@ -23,7 +23,8 @@
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import 
org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 
-import java.util.HashSet;
+import java.util.Collections;
+import java.util.EnumSet;
 import java.util.NoSuchElementException;
 import java.util.Set;
 
@@ -36,7 +37,13 @@
 
     public RequirementsStep(final Traversal.Admin traversal, final 
Set<TraverserRequirement> requirements) {
         super(traversal);
-        this.requirements = new HashSet<>(requirements);
+
+        if (requirements == null || requirements.isEmpty()) {
+            this.requirements = EnumSet.noneOf(TraverserRequirement.class);
+        } else {
+            this.requirements = EnumSet.copyOf(requirements);
+        }
+
     }
 
     public void addRequirement(final TraverserRequirement requirement) {
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/RequirementsStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/RequirementsStrategy.java
index fc3f181520..78c48b8d8d 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/RequirementsStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/RequirementsStrategy.java
@@ -29,7 +29,7 @@
 import 
org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.Set;
 
 /**
@@ -37,7 +37,7 @@
  */
 public final class RequirementsStrategy extends 
AbstractTraversalStrategy<TraversalStrategy.DecorationStrategy> implements 
TraversalStrategy.DecorationStrategy {
 
-    private final Set<TraverserRequirement> requirements = new HashSet<>();
+    private final Set<TraverserRequirement> requirements = 
EnumSet.noneOf(TraverserRequirement.class);
 
     private RequirementsStrategy() {
     }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
index 585a82b9d1..6e805bc69a 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
@@ -37,7 +37,7 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
+import java.util.EnumSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
@@ -148,7 +148,7 @@ public void applyStrategies() throws IllegalStateException {
     public Set<TraverserRequirement> getTraverserRequirements() {
         if (null == this.requirements) {
             // if (!this.locked) this.applyStrategies();
-            this.requirements = new HashSet<>();
+            this.requirements = EnumSet.noneOf(TraverserRequirement.class);
             for (final Step<?, ?> step : this.getSteps()) {
                 this.requirements.addAll(step.getRequirements());
             }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
index eda836a562..9956f26072 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
@@ -51,6 +51,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
@@ -594,7 +595,7 @@ public static boolean hasLabels(final Traversal.Admin<?, ?> 
traversal) {
     }
 
     public static Set<Scoping.Variable> getVariableLocations(final 
Traversal.Admin<?, ?> traversal) {
-        return TraversalHelper.getVariableLocations(new HashSet<>(), 
traversal);
+        return 
TraversalHelper.getVariableLocations(EnumSet.noneOf(Scoping.Variable.class), 
traversal);
     }
 
     private static Set<Scoping.Variable> getVariableLocations(final 
Set<Scoping.Variable> variables, final Traversal.Admin<?, ?> traversal) {


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to