@Override
    public Void visitClassType(final GremlinParser.ClassTypeContext ctx) {
        // require different handling based on the parent. if used inside of withoutStrategies() then it needs
        // a class reference, otherwise it's just a keyword.
        if (ctx.getParent() instanceof GremlinParser.TraversalSourceSelfMethod_withoutStrategiesContext ||
            ctx.getParent() instanceof GremlinParser.ClassTypeExprContext)
            sb.append(ctx.getText()).append(".class");
        else
            sb.append(ctx.getText());

        return null;
    }
Converts a Gremlin traversal string into a Java source code representation of that traversal with an aim at
sacrificing some formatting for the ability to compile correctly.
<ul>
    <li>Range syntax has no direct support</li>
    <li>Normalizes whitespace</li>
    <li>Normalize numeric suffixes to lower case</li>
    <li>If floats are not suffixed they will translate as BigDecimal</li>
    <li>Makes anonymous traversals explicit with double underscore</li>
    <li>Makes enums explicit with their proper name</li>
</ul>
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/JavaTranslateVisitor.java