Package com.linkedin.data.schema

Examples of com.linkedin.data.schema.DataSchema


                                            String fieldName,
                                            JClass type,
                                            JVar schemaField,
                                            RecordDataSchema.Field field)
  {
    final DataSchema fieldSchema = field.getType();
    boolean isDirect = isDirectType(fieldSchema);
    String wrappedOrDirect;
    if (isDirect)
    {
      wrappedOrDirect = (firstCustomInfo(fieldSchema) == null ? "Direct" : "CustomType");
View Full Code Here


    assert schema instanceof PrimitiveDataSchema == false;

    ClassInfo classInfo = classNameForUnnamedTraverse(parentClass, name, schema);
    String className = classInfo.fullName();

    DataSchema schemaFromClassName = _classNameToSchemaMap.get(className);
    if (schemaFromClassName != null)
    {
      checkForClassNameConflict(className, schema);
      classInfo.existingClass = _schemaToClassMap.get(schemaFromClassName);
    }
View Full Code Here

    }
  }

  private ClassInfo classNameForUnnamedTraverse(JDefinedClass parentClass, String memberName, DataSchema schema)
  {
    DataSchema dereferencedDataSchema = schema.getDereferencedDataSchema();
    switch (dereferencedDataSchema.getType())
    {
      case ARRAY:
        ArrayDataSchema arraySchema = (ArrayDataSchema) dereferencedDataSchema;
        CustomInfo customInfo = firstCustomInfo(arraySchema.getItems());
        if (customInfo != null)
        {
          return new ClassInfo(customInfo.customSchema.getNamespace(), customInfo.customSchema.getName() + ARRAY_SUFFIX);
        }
        else
        {
          ClassInfo classInfo = classNameForUnnamedTraverse(parentClass, memberName, arraySchema.getItems());
          classInfo.name += ARRAY_SUFFIX;
          return classInfo;
        }
      case MAP:
        MapDataSchema mapSchema = (MapDataSchema) dereferencedDataSchema;
        customInfo = firstCustomInfo(mapSchema.getValues());
        if (customInfo != null)
        {
          return new ClassInfo(customInfo.customSchema.getNamespace(), customInfo.customSchema.getName() + MAP_SUFFIX);
        }
        else
        {
          ClassInfo classInfo = classNameForUnnamedTraverse(parentClass, memberName, mapSchema.getValues());
          classInfo.name += MAP_SUFFIX;
          return classInfo;
        }

      case UNION:
        if (schema.getType() == DataSchema.Type.TYPEREF)
        {
          DataSchema referencedDataSchema;
          TyperefDataSchema typerefDataSchema = (TyperefDataSchema) schema;
          while ((referencedDataSchema = typerefDataSchema.getDereferencedDataSchema()) != dereferencedDataSchema)
          {
            typerefDataSchema = (TyperefDataSchema) referencedDataSchema;
          }
View Full Code Here

   * @throws IllegalArgumentException
   */
  private void checkForClassNameConflict(String className, DataSchema schema)
    throws IllegalArgumentException
  {
    DataSchema schemaFromClassName = _classNameToSchemaMap.get(className);
    boolean conflict = false;
    if (schemaFromClassName != null && schemaFromClassName != schema)
    {
      DataSchema.Type schemaType = schema.getType();
      if (schemaFromClassName.getType() != schemaType)
      {
        conflict = true;
      }
      else if (schema instanceof NamedDataSchema)
      {
        conflict = true;
      }
      else if (schemaFromClassName.equals(schema) == false)
      {
        assert schemaType == DataSchema.Type.ARRAY || schemaType == DataSchema.Type.MAP;
        //
        // see schemaForArrayItemsOrMapValues
        //
View Full Code Here

  }

  private void recordType(String type, Map<String, NamedDataSchema> foundTypes, List<NamedDataSchema> typeOrder)
  {
    if (!foundTypes.containsKey(type)){
      DataSchema schema = RestSpecCodec.textToSchema(type, _schemaResolver);
      recordType(schema, foundTypes, typeOrder);
    }
  }
View Full Code Here

        generateQueryParamSetMethod(derivedBuilderClass, param, paramClass);
        generateQueryParamAddMethod(derivedBuilderClass, param, paramItemsClass);
      }
      else
      {
        final DataSchema typeSchema = RestSpecCodec.textToSchema(param.getType(), getSchemaResolver());
        final JClass paramClass = getJavaBindingType(typeSchema, facadeClass).valueClass;
        generateQueryParamSetMethod(derivedBuilderClass, param, paramClass);

        // we deprecate the "items" field from ParameterSchema, which generates Iterable<Foo> in the builder
        // instead, we use the standard way to represent arrays, which generates FooArray
        // for backwards compatibility, add the method with Iterable<Foo> parameter
        if (typeSchema instanceof ArrayDataSchema)
        {
          final DataSchema itemsSchema = ((ArrayDataSchema) typeSchema).getItems();
          final JClass paramItemsClass = getJavaBindingType(itemsSchema, facadeClass).valueClass;
          final JClass iterableItemsClass = getCodeModel().ref(Iterable.class).narrow(paramItemsClass);
          generateQueryParamSetMethod(derivedBuilderClass, param, iterableItemsClass);
          generateQueryParamAddMethod(derivedBuilderClass, param, paramItemsClass);
        }
View Full Code Here

      return schema;
    }
    else
    {
      // 'offline mode': resolve data schema from input
      final DataSchema schema = _schemaParser.lookupName(className);
      // we're currently only interested in records
      return schema instanceof RecordDataSchema ? (RecordDataSchema)schema : null;
    }
  }
View Full Code Here

        return schemaString.startsWith("{");
      }

      private void visitInlineSchema(VisitContext visitContext, String schemaString)
      {
        DataSchema schema = DataTemplateUtil.parseSchema(schemaString, _schemaResolver);
        if (schema instanceof ArrayDataSchema)
        {
          DataSchema itemSchema = ((ArrayDataSchema)schema).getItems();
          if (itemSchema instanceof NamedDataSchema)
          {
            connectSchemaToResource(visitContext, (NamedDataSchema)itemSchema);
          }
        }
        if (schema instanceof MapDataSchema)
        {
          DataSchema valueSchema = ((MapDataSchema)schema).getValues();
          if (valueSchema instanceof NamedDataSchema)
          {
            connectSchemaToResource(visitContext, (NamedDataSchema)valueSchema);
          }
        }
View Full Code Here

    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

      addBadLocation(location);
      errorMessageBuilder.append(String.format("Unable to locate DataSchema: class \"%s\" not found", className));
      return null;
    }

    final DataSchema schema = DataTemplateUtil.getSchema(clazz);
    if (schema instanceof NamedDataSchema)
    {
      return (NamedDataSchema) schema;
    }
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.