private void addAccessor()

in hollow/src/main/java/com/netflix/hollow/api/codegen/delegate/HollowObjectDelegateCachedImplGenerator.java [178:249]


    private void addAccessor(StringBuilder builder, FieldType fieldType, String fieldName) {
        switch(fieldType) {
        case BOOLEAN:
            builder.append("    public boolean get").append(uppercase(fieldName)).append("(int ordinal) {\n");
            builder.append("        if(").append(fieldName).append(" == null)\n");
            builder.append("            return false;\n");
            builder.append("        return ").append(fieldName).append(".booleanValue();\n");
            builder.append("    }\n\n");
            builder.append("    public Boolean get").append(uppercase(fieldName)).append("Boxed(int ordinal) {\n");
            builder.append("        return ").append(fieldName).append(";\n");
            builder.append("    }\n\n");
            break;
        case BYTES:
            builder.append("    public byte[] get").append(uppercase(fieldName)).append("(int ordinal) {\n");
            // we need the cast to get around http://findbugs.sourceforge.net/bugDescriptions.html#EI_EXPOSE_REP
            builder.append("        return (byte[]) ").append(fieldName).append(";\n");
            builder.append("    }\n\n");
            break;
        case DOUBLE:
            builder.append("    public double get").append(uppercase(fieldName)).append("(int ordinal) {\n");
            builder.append("        if(").append(fieldName).append(" == null)\n");
            builder.append("            return Double.NaN;\n");
            builder.append("        return ").append(fieldName).append(".doubleValue();\n");
            builder.append("    }\n\n");
            builder.append("    public Double get").append(uppercase(fieldName)).append("Boxed(int ordinal) {\n");
            builder.append("        return ").append(fieldName).append(";\n");
            builder.append("    }\n\n");
            break;
        case FLOAT:
            builder.append("    public float get").append(uppercase(fieldName)).append("(int ordinal) {\n");
            builder.append("        if(").append(fieldName).append(" == null)\n");
            builder.append("            return Float.NaN;\n");
            builder.append("        return ").append(fieldName).append(".floatValue();\n");
            builder.append("    }\n\n");
            builder.append("    public Float get").append(uppercase(fieldName)).append("Boxed(int ordinal) {\n");
            builder.append("        return ").append(fieldName).append(";\n");
            builder.append("    }\n\n");
            break;
        case INT:
            builder.append("    public int get").append(uppercase(fieldName)).append("(int ordinal) {\n");
            builder.append("        if(").append(fieldName).append(" == null)\n");
            builder.append("            return Integer.MIN_VALUE;\n");
            builder.append("        return ").append(fieldName).append(".intValue();\n");
            builder.append("    }\n\n");
            builder.append("    public Integer get").append(uppercase(fieldName)).append("Boxed(int ordinal) {\n");
            builder.append("        return ").append(fieldName).append(";\n");
            builder.append("    }\n\n");
            break;
        case LONG:
            builder.append("    public long get").append(uppercase(fieldName)).append("(int ordinal) {\n");
            builder.append("        if(").append(fieldName).append(" == null)\n");
            builder.append("            return Long.MIN_VALUE;\n");
            builder.append("        return ").append(fieldName).append(".longValue();\n");
            builder.append("    }\n\n");
            builder.append("    public Long get").append(uppercase(fieldName)).append("Boxed(int ordinal) {\n");
            builder.append("        return ").append(fieldName).append(";\n");
            builder.append("    }\n\n");
            break;
        case STRING:
            builder.append("    public String get").append(uppercase(fieldName)).append("(int ordinal) {\n");
            builder.append("        return ").append(fieldName).append(";\n");
            builder.append("    }\n\n");
            builder.append("    public boolean is").append(uppercase(fieldName)).append("Equal(int ordinal, String testValue) {\n");
            builder.append("        if(testValue == null)\n");
            builder.append("            return ").append(fieldName).append(" == null;\n");
            builder.append("        return testValue.equals(").append(fieldName).append(");\n");
            builder.append("    }\n\n");
            break;
        case REFERENCE:
            throw new IllegalArgumentException();
        }
    }