in gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java [283:351]
protected Script convertToScript(final Object object) {
if (object instanceof Bytecode.Binding) {
return script.getBoundKeyOrAssign(withParameters, ((Bytecode.Binding) object).variable());
} else if (object instanceof Bytecode) {
final Bytecode bc = (Bytecode) object;
if (bc.getSourceInstructions().size() == 1 &&
bc.getSourceInstructions().get(0).getOperator().equals(CardinalityValueTraversal.class.getSimpleName())) {
return produceCardinalityValue(bc);
} else {
return produceScript(getAnonymousTraversalPrefix(), bc);
}
} else if (object instanceof Traversal) {
return convertToScript(((Traversal) object).asAdmin().getBytecode());
} else if (object instanceof String) {
final Object objectOrWrapper = withParameters ? object : getSyntax((String) object);
return script.getBoundKeyOrAssign(withParameters, objectOrWrapper);
} else if (object instanceof Boolean) {
final Object objectOrWrapper = withParameters ? object : getSyntax((Boolean) object);
return script.getBoundKeyOrAssign(withParameters, objectOrWrapper);
} else if (object instanceof Set) {
return produceScript((Set<?>) object);
} else if (object instanceof List) {
return produceScript((List<?>) object);
} else if (object instanceof Map) {
return produceScript((Map<?, ?>) object);
} else if (object instanceof Number) {
final Object objectOrWrapper = withParameters ? object : getSyntax((Number) object);
return script.getBoundKeyOrAssign(withParameters, objectOrWrapper);
} else if (object instanceof Class) {
return produceScript((Class<?>) object);
} else if (object instanceof Timestamp) {
final Object objectOrWrapper = withParameters ? object : getSyntax((Timestamp) object);
return script.getBoundKeyOrAssign(withParameters, objectOrWrapper);
} else if (object instanceof Date) {
final Object objectOrWrapper = withParameters ? object : getSyntax((Date) object);
return script.getBoundKeyOrAssign(withParameters, objectOrWrapper);
} else if (object instanceof OffsetDateTime) {
final Object objectOrWrapper = withParameters ? object : getSyntax((OffsetDateTime) object);
return script.getBoundKeyOrAssign(withParameters, objectOrWrapper);
} else if (object instanceof UUID) {
final Object objectOrWrapper = withParameters ? object : getSyntax((UUID) object);
return script.getBoundKeyOrAssign(withParameters, objectOrWrapper);
} else if (object instanceof P) {
return produceScript((P<?>) object);
} else if (object instanceof SackFunctions.Barrier) {
return script.append(getSyntax((SackFunctions.Barrier) object));
} else if (object instanceof VertexProperty.Cardinality) {
return script.append(getSyntax((VertexProperty.Cardinality) object));
} else if (object instanceof Pick) {
return script.append(getSyntax((Pick) object));
} else if (object instanceof Enum) {
return produceScript((Enum<?>) object);
} else if (object instanceof Vertex) {
return produceScript((Vertex) object);
} else if (object instanceof Edge) {
return produceScript((Edge) object);
} else if (object instanceof VertexProperty) {
return produceScript((VertexProperty<?>) object);
} else if (object instanceof Lambda) {
final Object objectOrWrapper = withParameters ? object : getSyntax((Lambda) object);
return script.getBoundKeyOrAssign(withParameters,objectOrWrapper);
} else if (object instanceof TraversalStrategyProxy) {
return produceScript((TraversalStrategyProxy<?>) object);
} else if (object instanceof TraversalStrategy) {
return convertToScript(new TraversalStrategyProxy(((TraversalStrategy) object)));
} else {
return null == object ? script.append(getNullSyntax()) : script.getBoundKeyOrAssign(withParameters, object);
}
}