/** * Returns the fields as a list of parameters for inclusion in Java source. E.g.: * * <code> * field1, field2, field3, field4 * </code> * * @param fields provides the fields to construct a parameter list for. * @return the fields as a list of parameters for inclusion in Java source. */ public String fieldList(List<RecordTemplateSpec.Field> fields) { StringBuilder sb = new StringBuilder(); Iterator<RecordTemplateSpec.Field> iter = fields.iterator(); while(iter.hasNext()) { RecordTemplateSpec.Field field = iter.next(); sb.append(escapeKeyword(field.getSchemaField().getName())); if (iter.hasNext()) sb.append(", "); } return sb.toString(); }
/** * Returns the fields as a list of parameter declarations for inclusion in Java source. E.g.: * * <code> * org.example.Record field1, List<Integer> field2, Map<String, Integer> field3, Integer field4 * </code> * * @param fields provides the fields to construct a parameter declaration list for. * @return the fields as a list of parameter declarations. */ public String fieldAndTypeList(List<RecordTemplateSpec.Field> fields) { StringBuilder sb = new StringBuilder(); Iterator<RecordTemplateSpec.Field> iter = fields.iterator(); while(iter.hasNext()) { RecordTemplateSpec.Field field = iter.next(); sb.append(toOptionalType(field.getType(), field.getSchemaField().getOptional())); sb.append(" "); sb.append(escapeKeyword(field.getSchemaField().getName())); if (iter.hasNext()) sb.append(", "); } return sb.toString(); }
/** * Returns Java source code that computes the hashCodes of each of the fields, as a list of * parameters. * * This is the same as {@link #fieldList} except when the fields are Java arrays, in which * case they are wrapped with a utilty method to hash them correctly. E.g. * * <code> * intField, stringField, mapField, Arrays.deepHashCode(javaArrayField), recordField * </code> * * @param fields provides the fields to include in the hashcode expression. * @return a java expression that calculates a hash code. */ public String hashCodeList(List<RecordTemplateSpec.Field> fields) { StringBuilder sb = new StringBuilder(); Iterator<RecordTemplateSpec.Field> iter = fields.iterator(); while(iter.hasNext()) { RecordTemplateSpec.Field field = iter.next(); Type schemaType = field.getSchemaField().getType().getType(); sb.append(escapeKeyword(field.getSchemaField().getName())); if (iter.hasNext()) sb.append(", "); } return sb.toString(); } }
boolean explicit = Boolean.TRUE.equals(field.getSchemaField().getProperties().get("explicit")); if (!explicit && field.getSchemaField().getOptional()) { return "nil"; } else { fieldType = ClassTemplateSpec.createFromDataSchema(refSchema); String coercer = customInfo.getCoercerClass().getClassName(); String uncoerced = toLiteral(fieldType.getSchema(), field.getSchemaField().getDefault()); if (uncoerced == null) { return null; return toLiteral(fieldType.getSchema(), field.getSchemaField().getDefault());
private RecordDataSchema.Field _schemaField() { return _field.getSchemaField(); } private TSTypeSyntax _fieldTypeSyntax() {
public boolean isOptional(RecordTemplateSpec.Field field) { boolean isFieldOptional = field.getSchemaField().getOptional(); return isFieldOptional || swiftProperties.optionality == Optionality.REQUIRED_FIELDS_MAY_BE_ABSENT; }