public String generate()

in hollow/src/main/java/com/netflix/hollow/api/codegen/delegate/HollowObjectDelegateInterfaceGenerator.java [48:121]


    public String generate() {
        StringBuilder classBuilder = new StringBuilder();
        appendPackageAndCommonImports(classBuilder);

        classBuilder.append("import ").append(HollowObjectDelegate.class.getName()).append(";\n\n");

        classBuilder.append("\n@SuppressWarnings(\"all\")\n");
        classBuilder.append("public interface ").append(className).append(" extends HollowObjectDelegate {\n\n");

        for(int i=0;i<schema.numFields();i++) {
            String methodFieldName = substituteInvalidChars(uppercase(schema.getFieldName(i)));
            switch(schema.getFieldType(i)) {
            case BOOLEAN:
                classBuilder.append("    public boolean get").append(methodFieldName).append("(int ordinal);\n\n");
                classBuilder.append("    public Boolean get").append(methodFieldName).append("Boxed(int ordinal);\n\n");
                break;
            case BYTES:
                classBuilder.append("    public byte[] get").append(methodFieldName).append("(int ordinal);\n\n");
                break;
            case DOUBLE:
                classBuilder.append("    public double get").append(methodFieldName).append("(int ordinal);\n\n");
                classBuilder.append("    public Double get").append(methodFieldName).append("Boxed(int ordinal);\n\n");
                break;
            case FLOAT:
                classBuilder.append("    public float get").append(methodFieldName).append("(int ordinal);\n\n");
                classBuilder.append("    public Float get").append(methodFieldName).append("Boxed(int ordinal);\n\n");
                break;
            case INT:
                classBuilder.append("    public int get").append(methodFieldName).append("(int ordinal);\n\n");
                classBuilder.append("    public Integer get").append(methodFieldName).append("Boxed(int ordinal);\n\n");
                break;
            case LONG:
                classBuilder.append("    public long get").append(methodFieldName).append("(int ordinal);\n\n");
                classBuilder.append("    public Long get").append(methodFieldName).append("Boxed(int ordinal);\n\n");
                break;
            case REFERENCE:
                Shortcut shortcut = ergonomicShortcuts.getShortcut(schema.getName() + "." + schema.getFieldName(i));
                if(shortcut != null) {
                    switch(shortcut.getType()) {
                    case BOOLEAN:
                    case DOUBLE:
                    case FLOAT:
                    case INT:
                    case LONG:
                        classBuilder.append("    public " + HollowCodeGenerationUtils.getJavaScalarType(shortcut.getType()) + " get").append(methodFieldName).append("(int ordinal);\n\n");
                        classBuilder.append("    public " + HollowCodeGenerationUtils.getJavaBoxedType(shortcut.getType()) + " get").append(methodFieldName).append("Boxed(int ordinal);\n\n");
                        break;
                    case BYTES:
                        classBuilder.append("    public byte[] get").append(methodFieldName).append("(int ordinal);\n\n");
                        break;
                    case STRING:
                        classBuilder.append("    public String get").append(methodFieldName).append("(int ordinal);\n\n");
                        classBuilder.append("    public boolean is").append(methodFieldName).append("Equal(int ordinal, String testValue);\n\n");
                        break;
                    case REFERENCE:
                    default:
                    }
                }

                classBuilder.append("    public int get").append(methodFieldName).append("Ordinal(int ordinal);\n\n");
                break;
            case STRING:
                classBuilder.append("    public String get").append(methodFieldName).append("(int ordinal);\n\n");
                classBuilder.append("    public boolean is").append(methodFieldName).append("Equal(int ordinal, String testValue);\n\n");
                break;
            }
        }

        classBuilder.append("    public ").append(typeAPIClassname(schema.getName())).append(" getTypeAPI();\n\n");

        classBuilder.append("}");

        return classBuilder.toString();
    }