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;
}