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 04:02:47 UTC

incubator-tinkerpop git commit: all strategies are final as they have private constructors.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master c2553ebea -> cb7aacfc6


all strategies are final as they have private constructors.


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

Branch: refs/heads/master
Commit: cb7aacfc63160df8f367aa4f358130bb6c996a14
Parents: c2553eb
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Feb 10 20:02:45 2015 -0700
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Feb 10 20:02:45 2015 -0700

----------------------------------------------------------------------
 .../ComparatorHolderRemovalStrategy.java        |   2 +-
 .../traversal/strategy/ConjunctionStrategy.java |   2 +-
 .../strategy/DedupOptimizerStrategy.java        |   2 +-
 .../strategy/EngineDependentStrategy.java       |   2 +-
 .../FilterByCountOptimizerStrategy.java         | 101 -------------------
 .../strategy/IdentityRemovalStrategy.java       |   2 +-
 .../strategy/LabeledEndStepStrategy.java        |   2 +-
 .../traversal/strategy/MatchWhereStrategy.java  |   2 +-
 .../traversal/strategy/ProfileStrategy.java     |   2 +-
 .../strategy/RangeByIsCountStrategy.java        |   2 +-
 .../traversal/strategy/ReducingStrategy.java    |   2 +-
 .../strategy/SideEffectCapStrategy.java         |   2 +-
 .../SideEffectRegistrationStrategy.java         |   2 +-
 .../strategy/TraversalVerificationStrategy.java |   2 +-
 14 files changed, 13 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ComparatorHolderRemovalStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ComparatorHolderRemovalStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ComparatorHolderRemovalStrategy.java
index aa33636..2b19ccc 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ComparatorHolderRemovalStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ComparatorHolderRemovalStrategy.java
@@ -27,7 +27,7 @@ import com.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class ComparatorHolderRemovalStrategy extends AbstractTraversalStrategy {
+public final class ComparatorHolderRemovalStrategy extends AbstractTraversalStrategy {
 
     private static final ComparatorHolderRemovalStrategy INSTANCE = new ComparatorHolderRemovalStrategy();
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ConjunctionStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ConjunctionStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ConjunctionStrategy.java
index dc7f552..a82cb7e 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ConjunctionStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ConjunctionStrategy.java
@@ -33,7 +33,7 @@ import com.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class ConjunctionStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
+public final class ConjunctionStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
 
     private static final ConjunctionStrategy INSTANCE = new ConjunctionStrategy();
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/DedupOptimizerStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/DedupOptimizerStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/DedupOptimizerStrategy.java
index 775c336..0233d03 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/DedupOptimizerStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/DedupOptimizerStrategy.java
@@ -33,7 +33,7 @@ import java.util.List;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class DedupOptimizerStrategy extends AbstractTraversalStrategy {
+public final class DedupOptimizerStrategy extends AbstractTraversalStrategy {
 
     private static final DedupOptimizerStrategy INSTANCE = new DedupOptimizerStrategy();
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/EngineDependentStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/EngineDependentStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/EngineDependentStrategy.java
index b79dd7e..0066505 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/EngineDependentStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/EngineDependentStrategy.java
@@ -26,7 +26,7 @@ import com.tinkerpop.gremlin.process.traversal.step.EngineDependent;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class EngineDependentStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
+public final class EngineDependentStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
 
     private static final EngineDependentStrategy INSTANCE = new EngineDependentStrategy();
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/FilterByCountOptimizerStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/FilterByCountOptimizerStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/FilterByCountOptimizerStrategy.java
deleted file mode 100644
index 293c6cc..0000000
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/FilterByCountOptimizerStrategy.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.tinkerpop.gremlin.process.graph.traversal.strategy;
-
-import com.tinkerpop.gremlin.process.Step;
-import com.tinkerpop.gremlin.process.Traversal;
-import com.tinkerpop.gremlin.process.TraversalEngine;
-import com.tinkerpop.gremlin.process.graph.traversal.step.filter.IsStep;
-import com.tinkerpop.gremlin.process.graph.traversal.step.filter.RangeStep;
-import com.tinkerpop.gremlin.process.graph.traversal.step.map.CountStep;
-import com.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
-import com.tinkerpop.gremlin.structure.Compare;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.function.BiPredicate;
-
-/**
- * @author Daniel Kuppitz (http://gremlin.guru)
- */
-public class FilterByCountOptimizerStrategy extends AbstractTraversalStrategy {
-
-    private static final FilterByCountOptimizerStrategy INSTANCE = new FilterByCountOptimizerStrategy();
-
-    private FilterByCountOptimizerStrategy() {
-    }
-
-    @Override
-    public void apply(final Traversal.Admin<?, ?> traversal, final TraversalEngine engine) {
-        final int size = traversal.getSteps().size();
-        Step prev = null;
-        for (int i = 0; i < size; i++) {
-            final Step curr = traversal.getSteps().get(i);
-            if (curr instanceof CountStep && i < size - 1) {
-                final Step next = traversal.getSteps().get(i + 1);
-                if (next instanceof IsStep && !(prev instanceof RangeStep)) { // if a RangeStep was provided, assume that the user knows what he's doing
-                    final IsStep isStep = (IsStep) next;
-                    final Object value = isStep.getValue();
-                    final BiPredicate predicate = isStep.getPredicate();
-                    if (value instanceof Number) {
-                        final long highRangeOffset;
-                        final boolean replaceIsStep;
-                        if (predicate.equals(Compare.eq) || predicate.equals(Compare.lte) || predicate.equals(Compare.neq)) {
-                            highRangeOffset = 1L;
-                            replaceIsStep = false;
-                        } else if (predicate.equals(Compare.lt)) {
-                            highRangeOffset = 0L;
-                            replaceIsStep = false;
-                        } else if (predicate.equals(Compare.gt)) {
-                            highRangeOffset = 1L;
-                            replaceIsStep = true;
-                        } else if (predicate.equals(Compare.gte)) {
-                            highRangeOffset = 0L;
-                            replaceIsStep = true;
-                        } else continue;
-
-                        final long highRange = ((Number) value).longValue() + highRangeOffset;
-                        TraversalHelper.insertBeforeStep(new RangeStep<>(traversal, 0L, highRange), curr, traversal);
-                        if (replaceIsStep) {
-                            TraversalHelper.replaceStep(isStep, new IsStep<>(traversal, Compare.eq, highRange), traversal);
-                        }
-                    }
-                    if (value instanceof Collection && (predicate.equals(Compare.inside) || predicate.equals(Compare.outside))) {
-                        final Iterator iterator = ((Collection) value).iterator();
-                        if (iterator.hasNext()) iterator.next();
-                        else continue;
-                        if (iterator.hasNext()) {
-                            final Object high = iterator.next();
-                            if (high instanceof Number && !iterator.hasNext()) {
-                                final long highRangeOffset = predicate.equals(Compare.inside) ? 0L : 1L;
-                                final long highRange = ((Number) high).longValue() + highRangeOffset;
-                                TraversalHelper.insertBeforeStep(new RangeStep<>(traversal, 0L, highRange), curr, traversal);
-                            }
-                        }
-                    }
-                }
-            }
-            prev = curr;
-        }
-    }
-
-    public static FilterByCountOptimizerStrategy instance() {
-        return INSTANCE;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/IdentityRemovalStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/IdentityRemovalStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/IdentityRemovalStrategy.java
index 9b59805..619ea73 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/IdentityRemovalStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/IdentityRemovalStrategy.java
@@ -26,7 +26,7 @@ import com.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class IdentityRemovalStrategy extends AbstractTraversalStrategy {
+public final class IdentityRemovalStrategy extends AbstractTraversalStrategy {
 
     private static final IdentityRemovalStrategy INSTANCE = new IdentityRemovalStrategy();
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/LabeledEndStepStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/LabeledEndStepStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/LabeledEndStepStrategy.java
index 9d1ed81..d04f9e3 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/LabeledEndStepStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/LabeledEndStepStrategy.java
@@ -26,7 +26,7 @@ import com.tinkerpop.gremlin.structure.util.StringFactory;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class LabeledEndStepStrategy extends AbstractTraversalStrategy {
+public final class LabeledEndStepStrategy extends AbstractTraversalStrategy {
 
     private static final LabeledEndStepStrategy INSTANCE = new LabeledEndStepStrategy();
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/MatchWhereStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/MatchWhereStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/MatchWhereStrategy.java
index 3323748..f80c845 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/MatchWhereStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/MatchWhereStrategy.java
@@ -35,7 +35,7 @@ import java.util.Set;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class MatchWhereStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
+public final class MatchWhereStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
 
     private static final MatchWhereStrategy INSTANCE = new MatchWhereStrategy();
     private static final Set<Class<? extends TraversalStrategy>> PRIORS = new HashSet<>();

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ProfileStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ProfileStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ProfileStrategy.java
index 6f84465..d0ae454 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ProfileStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ProfileStrategy.java
@@ -32,7 +32,7 @@ import java.util.Set;
 /**
  * @author Bob Briody (http://bobbriody.com)
  */
-public class ProfileStrategy extends AbstractTraversalStrategy {
+public final class ProfileStrategy extends AbstractTraversalStrategy {
 
     private static final ProfileStrategy INSTANCE = new ProfileStrategy();
     private static final Set<Class<? extends TraversalStrategy>> PRIORS = new HashSet<>();

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/RangeByIsCountStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/RangeByIsCountStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/RangeByIsCountStrategy.java
index 181d6ab..92744c9 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/RangeByIsCountStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/RangeByIsCountStrategy.java
@@ -37,7 +37,7 @@ import java.util.function.BiPredicate;
 /**
  * @author Daniel Kuppitz (http://gremlin.guru)
  */
-public class RangeByIsCountStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
+public final class RangeByIsCountStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
 
     private static final Set<Compare> RANGE_PREDICATES = EnumSet.of(Compare.inside, Compare.outside);
     private static final Set<Compare> INCREASED_OFFSET_PREDICATES =

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ReducingStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ReducingStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ReducingStrategy.java
index 6d0aafe..86db4f5 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ReducingStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/ReducingStrategy.java
@@ -29,7 +29,7 @@ import com.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class ReducingStrategy extends AbstractTraversalStrategy {
+public final class ReducingStrategy extends AbstractTraversalStrategy {
 
     private static final ReducingStrategy INSTANCE = new ReducingStrategy();
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/SideEffectCapStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/SideEffectCapStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/SideEffectCapStrategy.java
index 3627ba3..cd6f786 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/SideEffectCapStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/SideEffectCapStrategy.java
@@ -32,7 +32,7 @@ import java.util.Set;
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
 
-public class SideEffectCapStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
+public final class SideEffectCapStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
 
     private static final SideEffectCapStrategy INSTANCE = new SideEffectCapStrategy();
     private static final Set<Class<? extends TraversalStrategy>> POSTS = Collections.singleton(LabeledEndStepStrategy.class);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/SideEffectRegistrationStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/SideEffectRegistrationStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/SideEffectRegistrationStrategy.java
index 5d506e9..12fea4d 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/SideEffectRegistrationStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/SideEffectRegistrationStrategy.java
@@ -30,7 +30,7 @@ import java.util.Set;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class SideEffectRegistrationStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
+public final class SideEffectRegistrationStrategy extends AbstractTraversalStrategy implements TraversalStrategy {
 
     private static final SideEffectRegistrationStrategy INSTANCE = new SideEffectRegistrationStrategy();
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/cb7aacfc/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/TraversalVerificationStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/TraversalVerificationStrategy.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/TraversalVerificationStrategy.java
index bf74148..6ea8957 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/TraversalVerificationStrategy.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/TraversalVerificationStrategy.java
@@ -33,7 +33,7 @@ import java.util.Optional;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class TraversalVerificationStrategy extends AbstractTraversalStrategy {
+public final class TraversalVerificationStrategy extends AbstractTraversalStrategy {
 
     private static final TraversalVerificationStrategy INSTANCE = new TraversalVerificationStrategy();