/** * Returns a field name that is same for use as a java variable. */ private String getFieldName(int index) { return substituteInvalidChars(schema.getFieldName(index)); }
public static String hollowImplClassname(String typeName, String classPostfix, boolean useAggressiveSubstitutions, boolean useHollowPrimitives) { String classname = substituteInvalidChars(uppercase(typeName)); if (!useHollowPrimitives && !"".equals(classPostfix)) { // skip substitutions here to preserve legacy behaviour return classname + classPostfix; } String sub = useAggressiveSubstitutions ? AGGRESSIVE_CLASS_NAME_SUBSTITUTIONS.get(classname) : DEFAULT_CLASS_NAME_SUBSTITUTIONS.get(classname); return sub == null ? classname + classPostfix : sub; }
public static String hollowFactoryClassname(String typeName) { return substituteInvalidChars(uppercase(typeName)) + "HollowFactory"; }
public static String hollowObjectProviderName(String typeName) { return substituteInvalidChars(lowercase(typeName)) + "Provider"; }
public static String delegateCachedImplName(String typeName) { return substituteInvalidChars(uppercase(typeName)) + "DelegateCachedImpl"; }
public static String delegateLookupImplName(String typeName) { return substituteInvalidChars(uppercase(typeName)) + "DelegateLookupImpl"; }
public static String delegateInterfaceName(String typeName) { return substituteInvalidChars(uppercase(typeName)) + "Delegate"; }
private String generateByteArrayFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(objectSchema.getFieldName(fieldNum)); builder.append(" public byte[] get" + uppercase(fieldName) + "(int ordinal) {\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1)\n"); builder.append(" return missingDataHandler().handleBytes(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\");\n"); builder.append(" boxedFieldAccessSampler.recordFieldAccess(fieldIndex[" + fieldNum + "]);\n"); builder.append(" return getTypeDataAccess().readBytes(ordinal, fieldIndex[" + fieldNum + "]);\n"); builder.append(" }\n\n"); return builder.toString(); }
private String generateByteArrayFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(schema.getFieldName(fieldNum)); builder.append(" public byte[] ").append(getterPrefix).append("get" + uppercase(fieldName) + "() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "(ordinal);\n"); builder.append(" }"); return builder.toString(); }
private String generateFloatFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(schema.getFieldName(fieldNum)); builder.append(" public float ").append(getterPrefix).append("get").append(uppercase(fieldName)).append("() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "(ordinal);\n"); builder.append(" }\n\n"); if(!restrictApiToFieldType) { builder.append(" public Float ").append(getterPrefix).append("get").append(uppercase(fieldName)).append("Boxed() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "Boxed(ordinal);\n"); builder.append(" }"); } return builder.toString(); }
private String generateDoubleFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(schema.getFieldName(fieldNum)); builder.append(" public double ").append(getterPrefix).append("get").append(uppercase(fieldName)).append("() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "(ordinal);\n"); builder.append(" }\n\n"); if(!restrictApiToFieldType) { builder.append(" public Double ").append(getterPrefix).append("get").append(uppercase(fieldName)).append("Boxed() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "Boxed(ordinal);\n"); builder.append(" }"); } return builder.toString(); }
private String generateLongFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(schema.getFieldName(fieldNum)); builder.append(" public long ").append(getterPrefix).append("get").append(uppercase(fieldName)).append("() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "(ordinal);\n"); builder.append(" }\n\n"); if(!restrictApiToFieldType) { builder.append(" public Long ").append(getterPrefix).append("get").append(uppercase(fieldName)).append("Boxed() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "Boxed(ordinal);\n"); builder.append(" }"); } return builder.toString(); }
private String generateIntFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(schema.getFieldName(fieldNum)); builder.append(" public int ").append(getterPrefix).append("get").append(uppercase(fieldName)).append("() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "(ordinal);\n"); builder.append(" }\n\n"); if(!restrictApiToFieldType) { builder.append(" public Integer ").append(getterPrefix).append("get").append(uppercase(fieldName)).append("Boxed() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "Boxed(ordinal);\n"); builder.append(" }"); } return builder.toString(); }
private String generateBooleanFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(objectSchema.getFieldName(fieldNum)); builder.append(" public boolean get").append(uppercase(fieldName)).append("(int ordinal) {\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1)\n"); builder.append(" return Boolean.TRUE.equals(missingDataHandler().handleBoolean(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\"));\n"); builder.append(" return Boolean.TRUE.equals(getTypeDataAccess().readBoolean(ordinal, fieldIndex[" + fieldNum + "]));\n"); builder.append(" }\n\n"); builder.append(" public Boolean get").append(uppercase(fieldName)).append("Boxed(int ordinal) {\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1)\n"); builder.append(" return missingDataHandler().handleBoolean(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\");\n"); builder.append(" return getTypeDataAccess().readBoolean(ordinal, fieldIndex[" + fieldNum + "]);\n"); builder.append(" }\n\n"); return builder.toString(); } }
private String generateStringFieldAccessors(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(schema.getFieldName(fieldNum)); builder.append(" public String ").append(getterPrefix).append("get" + uppercase(fieldName) + "() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "(ordinal);\n"); builder.append(" }\n\n"); builder.append(" public boolean ").append(getterPrefix).append("is" + uppercase(fieldName) + "Equal(String testValue) {\n"); builder.append(" return delegate().is" + uppercase(fieldName) + "Equal(ordinal, testValue);\n"); builder.append(" }"); return builder.toString(); }
private String generateStringFieldAccessors(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(objectSchema.getFieldName(fieldNum)); builder.append(" public String get" + uppercase(fieldName) + "(int ordinal) {\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1)\n"); builder.append(" return missingDataHandler().handleString(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\");\n"); builder.append(" boxedFieldAccessSampler.recordFieldAccess(fieldIndex[" + fieldNum + "]);\n"); builder.append(" return getTypeDataAccess().readString(ordinal, fieldIndex[" + fieldNum + "]);\n"); builder.append(" }\n\n"); builder.append(" public boolean is" + uppercase(fieldName) + "Equal(int ordinal, String testValue) {\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1)\n"); builder.append(" return missingDataHandler().handleStringEquals(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\", testValue);\n"); builder.append(" return getTypeDataAccess().isStringFieldEqual(ordinal, fieldIndex[" + fieldNum + "], testValue);\n"); builder.append(" }"); return builder.toString(); }
private String generateReferenceFieldAccessors(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(objectSchema.getFieldName(fieldNum)); String referencedType = substituteInvalidChars(objectSchema.getReferencedType(fieldNum)); builder.append(" public int get"+ uppercase(fieldName) + "Ordinal(int ordinal) {\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1)\n"); builder.append(" return missingDataHandler().handleReferencedOrdinal(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\");\n"); builder.append(" return getTypeDataAccess().readOrdinal(ordinal, fieldIndex[" + fieldNum + "]);\n"); builder.append(" }\n\n"); builder.append(" public " + typeAPIClassname(referencedType) + " get" + uppercase(fieldName) + "TypeAPI() {\n"); builder.append(" return getAPI().get").append(uppercase(referencedType)).append("TypeAPI();\n"); builder.append(" }"); return builder.toString(); }
private String generateIntFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(objectSchema.getFieldName(fieldNum)); builder.append(" public int get").append(uppercase(fieldName)).append("(int ordinal) {\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1)\n"); builder.append(" return missingDataHandler().handleInt(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\");\n"); builder.append(" return getTypeDataAccess().readInt(ordinal, fieldIndex[" + fieldNum + "]);\n"); builder.append(" }\n\n"); builder.append(" public Integer get").append(uppercase(fieldName)).append("Boxed(int ordinal) {\n"); builder.append(" int i;\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1) {\n"); builder.append(" i = missingDataHandler().handleInt(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\");\n"); builder.append(" } else {\n"); builder.append(" boxedFieldAccessSampler.recordFieldAccess(fieldIndex[" + fieldNum + "]);\n"); builder.append(" i = getTypeDataAccess().readInt(ordinal, fieldIndex[" + fieldNum + "]);\n"); builder.append(" }\n"); builder.append(" if(i == Integer.MIN_VALUE)\n"); builder.append(" return null;\n"); builder.append(" return Integer.valueOf(i);\n"); builder.append(" }\n\n"); return builder.toString(); }
private String generateDoubleFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(objectSchema.getFieldName(fieldNum)); builder.append(" public double get").append(uppercase(fieldName)).append("(int ordinal) {\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1)\n"); builder.append(" return missingDataHandler().handleDouble(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\");\n"); builder.append(" return getTypeDataAccess().readDouble(ordinal, fieldIndex["+fieldNum+"]);\n"); builder.append(" }\n\n"); builder.append(" public Double get").append(uppercase(fieldName)).append("Boxed(int ordinal) {\n"); builder.append(" double d;\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1) {\n"); builder.append(" d = missingDataHandler().handleDouble(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\");\n"); builder.append(" } else {\n"); builder.append(" boxedFieldAccessSampler.recordFieldAccess(fieldIndex[" + fieldNum + "]);\n"); builder.append(" d = getTypeDataAccess().readDouble(ordinal, fieldIndex["+fieldNum+"]);\n"); builder.append(" }\n"); builder.append(" return Double.isNaN(d) ? null : Double.valueOf(d);\n"); builder.append(" }\n\n"); importClasses.add(HollowObjectWriteRecord.class); return builder.toString(); }
private String generateFloatFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = substituteInvalidChars(objectSchema.getFieldName(fieldNum)); builder.append(" public float get").append(uppercase(fieldName)).append("(int ordinal) {\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1)\n"); builder.append(" return missingDataHandler().handleFloat(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\");\n"); builder.append(" return getTypeDataAccess().readFloat(ordinal, fieldIndex["+fieldNum+"]);\n"); builder.append(" }\n\n"); builder.append(" public Float get").append(uppercase(fieldName)).append("Boxed(int ordinal) {\n"); builder.append(" float f;\n"); builder.append(" if(fieldIndex[" + fieldNum +"] == -1) {\n"); builder.append(" f = missingDataHandler().handleFloat(\"").append(objectSchema.getName()).append("\", ordinal, \"").append(fieldName).append("\");\n"); builder.append(" } else {\n"); builder.append(" boxedFieldAccessSampler.recordFieldAccess(fieldIndex[" + fieldNum + "]);\n"); builder.append(" f = getTypeDataAccess().readFloat(ordinal, fieldIndex["+fieldNum+"]);\n"); builder.append(" }"); builder.append(" return Float.isNaN(f) ? null : Float.valueOf(f);\n"); builder.append(" }\n\n"); importClasses.add(HollowObjectWriteRecord.class); return builder.toString(); }