public Traversal.Admin<S, E> apply(final Graph graph) {
        try {
            final Traversal.Admin<S, E> traversal = this.traversalSupplierClass.getConstructor().newInstance().get();
            if (!traversal.isLocked()) {
                traversal.setGraph(graph);
                traversal.applyStrategies();
            }
            return traversal;
        } catch (final Exception e) {
            throw new IllegalStateException(e.getMessage(), e);
        }
    }
@author Marko A. Rodriguez (http://markorodriguez.com)
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalClassFunction.java