Package com.linkedin.data.schema

Examples of com.linkedin.data.schema.RecordDataSchema


  {
    final DataMap respData = _codec.bytesToMap(response.getEntity().copyBytes());
    final FieldDef<T> responseFieldDef = new FieldDef<T>(ActionResponse.VALUE_NAME,
                                                         recordClass,
                                                         DataTemplateUtil.getSchema(recordClass));
    final RecordDataSchema recordDataSchema = DynamicRecordMetadata.buildSchema(ActionResponse.class.getName(),
                                                                                Collections.<FieldDef<?>>singletonList(responseFieldDef));
    final ActionResponse<T> actionResp = new ActionResponse<T>(respData, responseFieldDef, recordDataSchema);
    final DataSchema recordSchema = DataTemplateUtil.getSchema(recordClass);

    return ValidateDataAgainstSchema.validate(actionResp.getValue().data(), recordSchema, options);
View Full Code Here


  {
    super(data, null);
    _valueClass = valueClass;
    StringBuilder errorMessageBuilder = new StringBuilder(10);
    Name elementSchemaName = new Name(valueClass.getSimpleName());
    _resultsSchema = new MapDataSchema(new RecordDataSchema(elementSchemaName, RecordDataSchema.RecordType.RECORD));
    _resultsField = new RecordDataSchema.Field(_resultsSchema);
    _resultsField.setName(RESULTS, errorMessageBuilder);

    Name errorSchemaName = new Name(ErrorResponse.class.getSimpleName());
    _errorsSchema = new MapDataSchema(new RecordDataSchema(errorSchemaName, RecordDataSchema.RecordType.RECORD));
    _errorsField = new RecordDataSchema.Field(_errorsSchema);
    _errorsField.setName(ERRORS, errorMessageBuilder);
   
    if (data().get(RESULTS) == null)
    {
      data().put(RESULTS, new DataMap(resultsCapacity));
    }

    if (data().get(ERRORS) == null)
    {
      data().put(ERRORS, new DataMap(errorsCapacity));
    }

    _schema = new RecordDataSchema(_BATCH_RESPONSE_NAME, RecordDataSchema.RecordType.RECORD);
    _schema.setFields(Arrays.asList(_resultsField, _errorsField), errorMessageBuilder);

  }
View Full Code Here

  }

  @Test
  public void testRecordSchema()
  {
    final RecordDataSchema schema = (RecordDataSchema) DataTemplateUtil.getSchema(Certification.class);
    final DataMap value = SchemaSampleDataGenerator.buildRecordData(schema, _spec);
    final ValidationResult result = ValidateDataAgainstSchema.validate(value, schema, new ValidationOptions());
    Assert.assertTrue(result.isValid(), Arrays.toString(result.getMessages().toArray()));
  }
View Full Code Here

  }

  @Test
  public void testTyperefSchema()
  {
    final RecordDataSchema schema = (RecordDataSchema) DataTemplateUtil.getSchema(TyperefTest.class);
    final DataMap value = SchemaSampleDataGenerator.buildRecordData(schema, _spec);

    for(RecordDataSchema.Field field: schema.getFields())
    {
      final DataSchema fieldSchema = field.getType();
      if (!(fieldSchema instanceof TyperefDataSchema))
      {
        continue;
View Full Code Here

  @Test
  public void testInvalidRecursivelyReferencedSchema() {
    try
    {
      // this schema is invalid because it contains a non-optional reference to itself
      final RecordDataSchema schema = (RecordDataSchema) DataTemplateUtil.getSchema(InvalidSelfReference.class);
      SchemaSampleDataGenerator.buildRecordData(schema, _spec);
      Assert.fail("IllegalArgumentException should be thrown because schema contains schema that references itself and is not optional, or in a list, map or union.");
    }
    catch (IllegalArgumentException e)
    {
View Full Code Here

  @Test
  public void testRecursivelyReferencedSchema()
  {
    try
    {
      final RecordDataSchema schema = (RecordDataSchema) DataTemplateUtil.getSchema(SelfReference.class);
      final DataMap data = SchemaSampleDataGenerator.buildRecordData(schema, _spec);
      Assert.assertTrue(data.getDataList("listRef").getDataMap(0).getDataList("listRef").isEmpty(), "Self referenced schema in list should not be embedded recursively");
      final String firstKey = data.getDataMap("mapRef").keySet().iterator().next();
      Assert.assertTrue(data.getDataMap("mapRef").getDataMap(firstKey).getDataMap("mapRef").isEmpty(), "Self referenced schema in map should not be embedded recursively");
      Assert.assertFalse(data.getDataMap("indirectRef").containsKey("ref"), "Self referenced schema (via indirect reference) should not be embedded recursively");
View Full Code Here

  private <T extends RecordTemplate> void testRecord(Class<T> recordClass)
  {
    try
    {
      T record = recordClass.newInstance();
      RecordDataSchema schema = (RecordDataSchema) DataTemplateUtil.getSchema(recordClass);
      RecordDataSchema schema2 = record.schema();
      assertSame(schema, schema2);
    }
    catch (IllegalAccessException exc)
    {
      fail("Unexpected exception", exc);
View Full Code Here

  {
    DataSchema schema = DataTemplateUtil.getSchema(LongStringLiteral.class);
    String schemaText = schema.toString();
    assertTrue(schemaText.length() > 65536);

    RecordDataSchema recordDataSchema = (RecordDataSchema) schema;
    RecordDataSchema.Field field = recordDataSchema.getField("text");
    DataList defaultValue = (DataList) field.getDefault();
    assertEquals(defaultValue.size(), 400);
    for (Object s : defaultValue)
    {
      assertEquals(s, LOREM);
View Full Code Here

  {
    _valueClass = valueClass;

    final StringBuilder errorMessageBuilder = new StringBuilder(10);
    final Name elementSchemaName = new Name(valueClass.getSimpleName(), errorMessageBuilder);
    final MapDataSchema resultsSchema = new MapDataSchema(new RecordDataSchema(elementSchemaName, RecordDataSchema.RecordType.RECORD));
    final RecordDataSchema.Field resultsField = new RecordDataSchema.Field(resultsSchema);
    resultsField.setName(RESULTS, errorMessageBuilder);

    final Name errorSchemaName = new Name(ErrorResponse.class.getSimpleName(), errorMessageBuilder);
    final MapDataSchema errorsSchema = new MapDataSchema(new RecordDataSchema(errorSchemaName, RecordDataSchema.RecordType.RECORD));
    final RecordDataSchema.Field errorsField = new RecordDataSchema.Field(errorsSchema);
    errorsField.setName(ERRORS, errorMessageBuilder);

    final Name name = new Name(BatchKVResponse.class.getSimpleName(), errorMessageBuilder);
    _schema = new RecordDataSchema(name, RecordDataSchema.RecordType.RECORD);
    _schema.setFields(Arrays.asList(resultsField, errorsField), errorMessageBuilder);
  }
View Full Code Here

   *                                  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;
  }
View Full Code Here

TOP

Related Classes of com.linkedin.data.schema.RecordDataSchema

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.