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();
}
}