result.setRecord(recordSchema); result.setDeclaredInline(isDeclaredInline(field.type));
/** * Build the schema of a {@link DynamicRecordTemplate}. * * @param name the name of the record. * @param fieldDefs the fields of the record. * @throws IllegalArgumentException if the {@link com.linkedin.data.schema.RecordDataSchema.Field} of the fieldDefs * are already set. */ public static RecordDataSchema buildSchema(String name, Collection<? extends FieldDef<?>> fieldDefs) { StringBuilder errorMessageBuilder = new StringBuilder(); RecordDataSchema schema = new RecordDataSchema(new Name(name, errorMessageBuilder), RecordDataSchema.RecordType.RECORD); List<RecordDataSchema.Field> fields = new ArrayList<RecordDataSchema.Field>(fieldDefs.size()); for (FieldDef<?> fieldDef: fieldDefs) { RecordDataSchema.Field paramField = fieldDef.getField(); if (paramField.getRecord() != null) { throw new IllegalArgumentException("Attempt to assign field "+ fieldDef.getName() + " to record " + schema.getName() + "failed: " + "Record of field is already set to " + paramField.getRecord().getName() ); } paramField.setRecord(schema); fields.add(paramField); } schema.setFields(fields, errorMessageBuilder); return schema; }
result.setRecord(recordSchema); results.add(result); } else if (element.fieldInclude() != null) {
field.setRecord(recordSchema); fields.add(field);
private void addParams(ActionRequestBuilder<?, ?> request, DynamicRecordMetadata requestMetadata, ParameterSchemaArray parameters) { if (parameters != null) { for (ParameterSchema parameter : parameters) { FieldDef<?> fieldDef = requestMetadata.getFieldDef(parameter.getName()); Object value = generateFieldDefValue(fieldDef); // For custom types(TypeRefs) we generate the example values using the dereferenced type. Changing the field-def // to the dereferenced type so the example values can be set on the request without coercing. if (fieldDef.getDataSchema().getType() == Type.TYPEREF) { FieldDef<?> deRefFieldDef = new FieldDef<>(fieldDef.getName(), fieldDef.getDataClass(), fieldDef.getDataSchema().getDereferencedDataSchema()); deRefFieldDef.getField().setRecord(fieldDef.getField().getRecord()); fieldDef = deRefFieldDef; } request.setParam(fieldDef, value); } } }