You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2016/09/16 11:35:52 UTC
[07/48] tinkerpop git commit: reduced complexity by having a single
GLOBAL_METHOD_CACHE for both Traversal and TraversalSource methods. Cleaner
code with less instanceof stuff.
reduced complexity by having a single GLOBAL_METHOD_CACHE for both Traversal and TraversalSource methods. Cleaner code with less instanceof stuff.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1fc52cb2
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1fc52cb2
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1fc52cb2
Branch: refs/heads/TINKERPOP-1442-master
Commit: 1fc52cb2d208fb0949e66f2e1cf2c1307495a537
Parents: ed8feea
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Sep 13 13:34:47 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Sep 13 13:34:47 2016 -0600
----------------------------------------------------------------------
.../tinkerpop/gremlin/jsr223/JavaTranslator.java | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1fc52cb2/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
index a4f97a1..ed2def2 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
@@ -42,8 +42,8 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
private final S traversalSource;
private final Class anonymousTraversal;
- private static final Map<Class<? extends TraversalSource>, Map<String, List<Method>>> TRAVERSAL_SOURCE_METHOD_CACHE = new ConcurrentHashMap<>();
- private static final Map<Class<? extends Traversal>, Map<String, List<Method>>> TRAVERSAL_METHOD_CACHE = new ConcurrentHashMap<>();
+ private static final Map<Class<?>, Map<String, List<Method>>> GLOBAL_METHOD_CACHE = new ConcurrentHashMap<>();
+
private JavaTranslator(final S traversalSource) {
this.traversalSource = traversalSource;
@@ -105,9 +105,7 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
//////////////////////////
//////////////////////////
// populate method cache for fast access to methods in subsequent calls
- final Map<String, List<Method>> methodCache = delegate instanceof TraversalSource ?
- TRAVERSAL_SOURCE_METHOD_CACHE.getOrDefault(delegate.getClass(), new HashMap<>()) :
- TRAVERSAL_METHOD_CACHE.getOrDefault(delegate.getClass(), new HashMap<>());
+ final Map<String, List<Method>> methodCache = GLOBAL_METHOD_CACHE.getOrDefault(delegate.getClass(), new HashMap<>());
if (methodCache.isEmpty()) {
for (final Method method : delegate.getClass().getMethods()) {
if (!(method.getName().equals("addV") && method.getParameterCount() == 1 && method.getParameters()[0].getType().equals(Object[].class))) { // hack cause its hard to tell Object[] vs. String :|
@@ -119,10 +117,7 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
list.add(method);
}
}
- if (delegate instanceof TraversalSource)
- TRAVERSAL_SOURCE_METHOD_CACHE.put((Class<TraversalSource>) delegate.getClass(), methodCache);
- else
- TRAVERSAL_METHOD_CACHE.put((Class<Traversal>) delegate.getClass(), methodCache);
+ GLOBAL_METHOD_CACHE.put(delegate.getClass(), methodCache);
}
//////////////////////////
//////////////////////////
@@ -133,7 +128,7 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
if (arguments[i] instanceof Bytecode.Binding)
argumentsCopy[i] = ((Bytecode.Binding) arguments[i]).value();
else if (arguments[i] instanceof Bytecode)
- argumentsCopy[i] = translateFromAnonymous((Bytecode) arguments[i]);
+ argumentsCopy[i] = this.translateFromAnonymous((Bytecode) arguments[i]);
else
argumentsCopy[i] = arguments[i];
}