public static String typeAPIClassname(String typeName) { return uppercase(typeName) + "TypeAPI"; }
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 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(); }
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"; }
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(); }
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 generateBooleanAccessorMethodName(String fieldName, boolean useBooleanFieldErgonomics) { return useBooleanFieldErgonomics ? generateAccessortMethodName(fieldName, boolean.class) : "get" + uppercase(fieldName); }
public static String delegateInterfaceName(String typeName) { return substituteInvalidChars(uppercase(typeName)) + "Delegate"; }
private String generateBooleanFieldAccessor(int fieldNum) { StringBuilder builder = new StringBuilder(); String fieldName = schema.getFieldName(fieldNum); String methodName = generateBooleanAccessorMethodName(fieldName, useBooleanFieldErgonomics); builder.append(" public boolean ").append(getterPrefix).append(methodName).append("() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "(ordinal);\n"); builder.append(" }\n\n"); if(!restrictApiToFieldType) { builder.append(" public Boolean ").append(getterPrefix).append(methodName).append("Boxed() {\n"); builder.append(" return delegate().get" + uppercase(fieldName) + "Boxed(ordinal);\n"); builder.append(" }"); } return builder.toString(); }
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 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 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 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 void generateChainableSetters(StringBuilder classBodyBuilder) { for (int i = 0; i < schema.numFields(); i++) { classBodyBuilder.append(" public ").append(getClassName()).append(" set") .append(uppercase(getFieldName(i))).append("(") .append(fieldType(i)).append(" ").append(getFieldName(i)).append(") {\n"); classBodyBuilder.append(" this.").append(getFieldName(i)).append(" = ") .append(getFieldName(i)).append(";\n"); classBodyBuilder.append(" return this;\n"); classBodyBuilder.append(" }\n"); } }
private void addShortcutTraversal(StringBuilder builder, Shortcut shortcut) { for(int i=0;i<shortcut.getPath().length-1;i++) { String typeAPIClassname = typeAPIClassname(shortcut.getPathTypes()[i]); builder.append(" if(ordinal != -1) ordinal = typeAPI.getAPI().get" + typeAPIClassname + "().get" + uppercase(shortcut.getPath()[i]) + "Ordinal(ordinal);\n"); } }