You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/02/11 14:39:20 UTC

incubator-tinkerpop git commit: removed Optional as class fields in favor of null and dynamic construction of Optional at get() time. Actually simplified my code a lot.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 23fd81f33 -> c5b16591b


removed Optional as class fields in favor of null and dynamic construction of Optional at get() time. Actually simplified my code a lot.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/c5b16591
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/c5b16591
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/c5b16591

Branch: refs/heads/master
Commit: c5b16591b1d59ab029f073d7275e8581990e01fe
Parents: 23fd81f
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Feb 11 06:39:16 2015 -0700
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Feb 11 06:39:16 2015 -0700

----------------------------------------------------------------------
 .../process/traversal/DefaultTraversal.java     | 23 +++++++++-----------
 .../traversal/DefaultTraversalSideEffects.java  | 12 +++++-----
 .../process/traversal/step/AbstractStep.java    | 11 +++++-----
 3 files changed, 21 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c5b16591/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/DefaultTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/DefaultTraversal.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/DefaultTraversal.java
index eef59db..277ddd2 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/DefaultTraversal.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/DefaultTraversal.java
@@ -41,14 +41,13 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
 
     private E lastEnd = null;
     private long lastEndCount = 0l;
-    private boolean locked = false; // an optimization so getEngine().isEmpty() isn't required on each next()/hasNext()
     private Step<?, E> finalEndStep = EmptyStep.instance();
     private final StepPosition stepPosition = new StepPosition();
 
     protected List<Step> steps = new ArrayList<>();
     protected TraversalStrategies strategies;
     protected TraversalSideEffects sideEffects = new DefaultTraversalSideEffects();
-    protected Optional<TraversalEngine> traversalEngine = Optional.empty();
+    protected TraversalEngine traversalEngine = null;
 
     protected TraversalParent traversalParent = (TraversalParent) EmptyStep.instance();
 
@@ -63,8 +62,7 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
 
     @Override
     public void applyStrategies(final TraversalEngine engine) throws IllegalStateException {
-        if (this.locked)
-            throw Traversal.Exceptions.traversalIsLocked();
+        if (null != this.traversalEngine) throw Traversal.Exceptions.traversalIsLocked();
 
         TraversalHelper.reIdSteps(this.stepPosition, this);
         this.strategies.applyStrategies(this, engine);
@@ -79,14 +77,13 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
                 }
             }
         }
-        this.traversalEngine = Optional.of(engine);
-        this.locked = true;
+        this.traversalEngine = engine;
         this.finalEndStep = this.getEndStep();
     }
 
     @Override
     public Optional<TraversalEngine> getEngine() {
-        return this.traversalEngine;
+        return Optional.ofNullable(this.traversalEngine);
     }
 
     @Override
@@ -96,13 +93,13 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
 
     @Override
     public boolean hasNext() {
-        if (!this.locked) this.applyStrategies(TraversalEngine.STANDARD);
+        if (null == this.traversalEngine) this.applyStrategies(TraversalEngine.STANDARD);
         return this.lastEndCount > 0l || this.finalEndStep.hasNext();
     }
 
     @Override
     public E next() {
-        if (!this.locked) this.applyStrategies(TraversalEngine.STANDARD);
+        if (null == this.traversalEngine) this.applyStrategies(TraversalEngine.STANDARD);
         if (this.lastEndCount > 0l) {
             this.lastEndCount--;
             return this.lastEnd;
@@ -127,13 +124,13 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
 
     @Override
     public void addStart(final Traverser<S> start) {
-        if (!this.locked) this.applyStrategies(TraversalEngine.STANDARD);
+        if (null == this.traversalEngine) this.applyStrategies(TraversalEngine.STANDARD);
         if (!this.steps.isEmpty()) this.steps.get(0).addStart(start);
     }
 
     @Override
     public void addStarts(final Iterator<Traverser<S>> starts) {
-        if (!this.locked) this.applyStrategies(TraversalEngine.STANDARD);
+        if (null == this.traversalEngine) this.applyStrategies(TraversalEngine.STANDARD);
         if (!this.steps.isEmpty()) this.steps.get(0).addStarts(starts);
     }
 
@@ -196,7 +193,7 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
 
     @Override
     public <S2, E2> Traversal.Admin<S2, E2> addStep(final int index, final Step<?, ?> step) throws IllegalStateException {
-        if (this.locked) throw Exceptions.traversalIsLocked();
+        if (null != this.traversalEngine) throw Exceptions.traversalIsLocked();
         step.setId(this.stepPosition.nextXId());
         this.steps.add(index, step);
         final Step previousStep = this.steps.size() > 0 && index != 0 ? steps.get(index - 1) : null;
@@ -210,7 +207,7 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
 
     @Override
     public <S2, E2> Traversal.Admin<S2, E2> removeStep(final int index) throws IllegalStateException {
-        if (this.locked) throw Exceptions.traversalIsLocked();
+        if (null != this.traversalEngine) throw Exceptions.traversalIsLocked();
         final Step previousStep = this.steps.size() > 0 && index != 0 ? steps.get(index - 1) : null;
         final Step nextStep = this.steps.size() > index + 1 ? steps.get(index + 1) : null;
         this.steps.remove(index);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c5b16591/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/DefaultTraversalSideEffects.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/DefaultTraversalSideEffects.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/DefaultTraversalSideEffects.java
index 68c44bb..e467bf2 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/DefaultTraversalSideEffects.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/DefaultTraversalSideEffects.java
@@ -40,8 +40,8 @@ public class DefaultTraversalSideEffects implements TraversalSideEffects {
 
     protected Map<String, Object> objectMap = new HashMap<>();
     protected Map<String, Supplier> supplierMap = new HashMap<>();
-    protected Optional<UnaryOperator> sackSplitOperator = Optional.empty();
-    protected Optional<Supplier> sackInitialValue = Optional.empty();
+    protected UnaryOperator sackSplitOperator = null;
+    protected Supplier sackInitialValue = null;
 
     public DefaultTraversalSideEffects() {
 
@@ -74,18 +74,18 @@ public class DefaultTraversalSideEffects implements TraversalSideEffects {
 
     @Override
     public <S> void setSack(final Supplier<S> initialValue, final Optional<UnaryOperator<S>> splitOperator) {
-        this.sackInitialValue = Optional.ofNullable(initialValue);
-        this.sackSplitOperator = (Optional) splitOperator;
+        this.sackInitialValue = initialValue;
+        this.sackSplitOperator = splitOperator.orElse(null);
     }
 
     @Override
     public <S> Optional<Supplier<S>> getSackInitialValue() {
-        return (Optional) this.sackInitialValue;
+        return Optional.ofNullable(this.sackInitialValue);
     }
 
     @Override
     public <S> Optional<UnaryOperator<S>> getSackSplitOperator() {
-        return (Optional) this.sackSplitOperator;
+        return Optional.ofNullable(this.sackSplitOperator);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c5b16591/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/step/AbstractStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/step/AbstractStep.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/step/AbstractStep.java
index f1d3d84..38df29c 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/step/AbstractStep.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/traversal/step/AbstractStep.java
@@ -33,8 +33,7 @@ import java.util.Optional;
  */
 public abstract class AbstractStep<S, E> implements Step<S, E> {
 
-    protected Optional<String> label = Optional.empty();
-    private boolean hasLabel = false;
+    protected String label = null;
     protected String id = Traverser.Admin.HALT;
     protected Traversal.Admin traversal;
     protected ExpandableStepIterator<S> starts;
@@ -62,13 +61,13 @@ public abstract class AbstractStep<S, E> implements Step<S, E> {
 
     @Override
     public void setLabel(final String label) {
-        this.label = Optional.of(label);
-        this.hasLabel = true;
+        Objects.nonNull(label);
+        this.label = label;
     }
 
     @Override
     public Optional<String> getLabel() {
-        return this.label;
+        return Optional.ofNullable(this.label);
     }
 
     @Override
@@ -172,7 +171,7 @@ public abstract class AbstractStep<S, E> implements Step<S, E> {
 
     private final Traverser<E> prepareTraversalForNextStep(final Traverser<E> traverser) {
         if (!this.traverserStepIdSetByChild) ((Traverser.Admin<E>) traverser).setStepId(this.nextStep.getId());
-        if (this.hasLabel) traverser.path().addLabel(this.label.get());
+        if (null != this.label) traverser.path().addLabel(this.label);
         return traverser;
     }