Package com.linkedin.data.schema

Examples of com.linkedin.data.schema.DataSchema


  }

  private Object generateFieldDefValue(FieldDef<?> fieldDef)
  {
    Object value = _dataGenerator.buildData(fieldDef.getName(), fieldDef.getDataSchema());
    DataSchema dereferencedDataSchema = fieldDef.getDataSchema().getDereferencedDataSchema();
    if (!dereferencedDataSchema.isPrimitive())
    {
      switch(dereferencedDataSchema.getType())
      {
        case FIXED:
          value = new FixedTemplatePlaceholder(value, (FixedDataSchema)dereferencedDataSchema);
          break;
        case ENUM:
          // just use the string value already generated.  Will be coerced by DataTemplateUtil.DynamicEnumCoercer.
          break;
        case ARRAY:
          value = new ArrayTemplatePlaceholder<Object>((DataList)value, (ArrayDataSchema)dereferencedDataSchema, Object.class);
          break;
        case RECORD:
          value = new RecordTemplatePlaceholder((DataMap)value, (RecordDataSchema)dereferencedDataSchema);
          break;
        case MAP:
          value = new MapTemplatePlaceholder<Object>((DataMap)value, (MapDataSchema)dereferencedDataSchema, Object.class);
          break;
        case UNION:
          value = new UnionTemplatePlaceholder(value, (UnionDataSchema)dereferencedDataSchema);
          break;
        case TYPEREF:
          throw new IllegalStateException("TYPEREF should not be returned for a dereferenced byte. schema: " + fieldDef.getDataSchema());
        default:
          throw new IllegalStateException("Unrecognized enum value: " + dereferencedDataSchema.getType());
      }
    }
    return value;
  }
View Full Code Here


   * @param keyType the type of the key
   */
  @SuppressWarnings("unchecked")
  void setPrimitiveKey(RecordDataSchema.Field keyField, K key, TypeSpec<K> keyType)
  {
    DataSchema keySchema = keyType.getSchema();
    if (keySchema.isPrimitive())
    {
      putDirect(keyField, keyType.getType(), keyType.getType(), key, SetMode.IGNORE_NULL);
      return;
    }
    switch (keySchema.getType())
    {
      case TYPEREF:
        TyperefDataSchema typerefDataSchema = (TyperefDataSchema)keySchema;
        DataSchema.Type dereferencedType = keySchema.getDereferencedType();
        Class<?> javaClassForSchema = TyperefUtils.getJavaClassForSchema(typerefDataSchema);
        if (javaClassForSchema == null)
        {
          // typeref to a primitive. In this case the keyClass is a primitive, and so is the key.
          putDirect(keyField, keyType.getType(), keyType.getType(), key, SetMode.IGNORE_NULL);
View Full Code Here

  @SuppressWarnings("unchecked")
  public K getPrimitiveKey(TypeSpec<K> keyType)
  {
    StringBuilder sb = new StringBuilder(10);

    DataSchema keySchema = keyType.getSchema();

    RecordDataSchema.Field keyField = new RecordDataSchema.Field(keySchema);
    keyField.setName(KEY_FIELD_NAME, sb);

    if (keySchema.isPrimitive() || keySchema.getType() == DataSchema.Type.ENUM)
    {
      return obtainDirect(keyField, keyType.getType(), GetMode.DEFAULT);
    }
    else if (keySchema.getType() == DataSchema.Type.TYPEREF)
    {
      TyperefDataSchema typerefDataSchema = (TyperefDataSchema)keySchema;
      Class<?> javaClass = TyperefUtils.getJavaClassForSchema(typerefDataSchema);
      if (javaClass == null)
      {
View Full Code Here

    @Override
    public void key(String key)
      throws IOException
    {
      DataSchema newSchema = null;
      if (_currentSchema != null)
      {
        switch (_currentSchema.getType())
        {
          case RECORD:
View Full Code Here

    }

    @Override
    public void index(int index)
    {
      DataSchema newSchema = null;
      if (_currentSchema != null && _currentSchema.getType() == DataSchema.Type.ARRAY)
      {
        ArrayDataSchema arraySchema = (ArrayDataSchema) _currentSchema;
        newSchema = arraySchema.getItems();
      }
View Full Code Here

                                  String fieldName,
                                  DataGenerationOptions spec)
  {
    spec = preventRecursionIntoAlreadyTraversedSchemas(parentSchemas, spec, schema);
    parentSchemas.incrementReferences(schema);
    final DataSchema derefSchema = schema.getDereferencedDataSchema();
    final SampleDataCallback callback = spec.getCallback();
    Object data = null;
    switch (derefSchema.getType())
    {
      case BOOLEAN:
        data = callback.getBoolean(fieldName);
        break;
      case INT:
        data = callback.getInteger(fieldName);
        break;
      case LONG:
        data = callback.getLong(fieldName);
        break;
      case FLOAT:
        data = callback.getFloat(fieldName);
        break;
      case DOUBLE:
        data = callback.getDouble(fieldName);
        break;
      case BYTES:
        data = callback.getBytes(fieldName);
        break;
      case STRING:
        data = callback.getString(fieldName);
        break;
      case NULL:
        data = Data.NULL;
        break;
      case FIXED:
        data = callback.getFixed(fieldName, (FixedDataSchema) derefSchema);
        break;
      case ENUM:
        data = callback.getEnum(fieldName, (EnumDataSchema) derefSchema);
        break;
      case ARRAY:
        final DataList dataList = new DataList(spec.getArraySize());
        for (int i = 0; i < spec.getArraySize(); i++)
        {
          final Object item = buildData(parentSchemas, ((ArrayDataSchema) derefSchema).getItems(), fieldName, spec);
          dataList.add(item);
        }
        data = dataList;
        break;
      case RECORD:
        data = buildRecordData(parentSchemas, (RecordDataSchema) derefSchema, spec);
        break;
      case MAP:
        final DataMap dataMap = new DataMap();
        for (int i = 0; i < spec.getArraySize(); i++)
        {
          final Object item = buildData(parentSchemas, ((MapDataSchema) derefSchema).getValues(), fieldName, spec);
          dataMap.put("mapField_" + _random.nextInt(), item);
        }
        data = dataMap;
        break;
      case UNION:
        final UnionDataSchema unionSchema = (UnionDataSchema) derefSchema;
        final List<DataSchema> types = removeAlreadyTraversedSchemasFromUnionMemberList(parentSchemas, unionSchema.getTypes());
        final int unionIndex = _random.nextInt(types.size());
        final DataSchema unionItemSchema = types.get(unionIndex);
        data = buildData(parentSchemas, unionItemSchema, fieldName, spec);

        if (data != null)
        {
          final DataMap unionMap = new DataMap();
          unionMap.put(unionItemSchema.getUnionMemberKey(), data);
          data = unionMap;
        }
        break;
      case TYPEREF:
        data = buildData(parentSchemas, derefSchema, fieldName, spec);
View Full Code Here

    return SchemaSampleDataGenerator.buildData(dataSchema, fieldName, _spec);
  }

  private DataMap buildDataMap(ParentSchemas parentSchemas, String pegasusDataSchemaName, DataGenerationOptions spec)
  {
    final DataSchema schema = _schemaParser.lookupName(pegasusDataSchemaName);
    spec = preventRecursionIntoAlreadyTraversedSchemas(parentSchemas, spec, schema);
    parentSchemas.incrementReferences(schema);
    if (schema == null)
    {
      throw new IllegalArgumentException(String.format("Could not find pegasus data schema '%s'", pegasusDataSchemaName));
View Full Code Here

    Class<?> itemType = null;
    ArrayDataSchema arrayDataSchema = null;
    if (fieldDef.getDataSchema() instanceof ArrayDataSchema)
    {
      arrayDataSchema = (ArrayDataSchema)fieldDef.getDataSchema();
      DataSchema itemSchema = arrayDataSchema.getItems();

      if (itemSchema instanceof TyperefDataSchema)
      {
        itemType = DataSchemaUtil.dataSchemaTypeToPrimitiveDataSchemaClass(
            itemSchema.getDereferencedType());
      }
      else
      {
        itemType = fieldDef.getType().getComponentType();
      }
View Full Code Here

  }

  private static RecordTemplate wrapWithSchema(DataMap dataMap, TypeSpec<? extends RecordTemplate> spec)
  {
    Class<? extends RecordTemplate> clazz = spec.getType();
    DataSchema schema = spec.getSchema();

    if (schema.getDereferencedType() == DataSchema.Type.RECORD)
    {
      try
      {
        Constructor<? extends RecordTemplate> constructor = clazz.getConstructor(DataMap.class, RecordDataSchema.class);
        return constructor.newInstance(dataMap, (RecordDataSchema) schema);
View Full Code Here

  }

  @Override
  public boolean evaluate(DataElement element)
  {
    DataSchema schema = element.getSchema();
    return (schema != null && schema.getType() == _type);
  }
View Full Code Here

TOP

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

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.