@Experimental(value=SCHEMAS) public class SchemaRegistry extends java.lang.Object
SchemaRegistry allows registering Schemas for a given Java Class or a
 TypeDescriptor.
 Types registered in a pipeline's schema registry will automatically be discovered by any
 PCollection that uses SchemaCoder. This allows users
 to write pipelines in terms of their own Java types, yet still register schemas for these types.
 
TODO: Provide support for schemas registered via a ServiceLoader interface. This will allow optional modules to register schemas as well.
| Modifier and Type | Method and Description | 
|---|---|
| static SchemaRegistry | createDefault() | 
| <T> SerializableFunction<Row,T> | getFromRowFunction(java.lang.Class<T> clazz)Rerieve the function that converts a  Rowobject to an object of the specified type. | 
| <T> SerializableFunction<Row,T> | getFromRowFunction(TypeDescriptor<T> typeDescriptor)Rerieve the function that converts a  Rowobject to an object of the specified type. | 
| <T> Schema | getSchema(java.lang.Class<T> clazz)Get a schema for a given  Classtype. | 
| <T> Schema | getSchema(TypeDescriptor<T> typeDescriptor)Retrieve a schema for a given  TypeDescriptortype. | 
| <T> SerializableFunction<T,Row> | getToRowFunction(java.lang.Class<T> clazz)Rerieve the function that converts an object of the specified type to a  Rowobject. | 
| <T> SerializableFunction<T,Row> | getToRowFunction(TypeDescriptor<T> typeDescriptor)Rerieve the function that converts an object of the specified type to a  Rowobject. | 
| <T> void | registerSchemaForClass(java.lang.Class<T> clazz,
                      Schema schema,
                      SerializableFunction<T,Row> toRow,
                      SerializableFunction<Row,T> fromRow)Register a schema for a specific  Classtype. | 
| <T> void | registerSchemaForType(TypeDescriptor<T> type,
                     Schema schema,
                     SerializableFunction<T,Row> toRow,
                     SerializableFunction<Row,T> fromRow)Register a schema for a specific  TypeDescriptortype. | 
| void | registerSchemaProvider(SchemaProvider schemaProvider)Register a  SchemaProvider. | 
public static SchemaRegistry createDefault()
public <T> void registerSchemaForClass(java.lang.Class<T> clazz,
                                       Schema schema,
                                       SerializableFunction<T,Row> toRow,
                                       SerializableFunction<Row,T> fromRow)
Class type.public <T> void registerSchemaForType(TypeDescriptor<T> type, Schema schema, SerializableFunction<T,Row> toRow, SerializableFunction<Row,T> fromRow)
TypeDescriptor type.public void registerSchemaProvider(SchemaProvider schemaProvider)
SchemaProvider.
 A SchemaProvider allows for deferred lookups of per-type schemas. This can be used
 when schemas are registered in an external service. The SchemaProvider will lookup the type in
 the external service and return the correct Schema.
public <T> Schema getSchema(java.lang.Class<T> clazz) throws NoSuchSchemaException
Class type. If no schema exists, throws NoSuchSchemaException.NoSuchSchemaExceptionpublic <T> Schema getSchema(TypeDescriptor<T> typeDescriptor) throws NoSuchSchemaException
TypeDescriptor type. If no schema exists, throws NoSuchSchemaException.NoSuchSchemaExceptionpublic <T> SerializableFunction<T,Row> getToRowFunction(java.lang.Class<T> clazz) throws NoSuchSchemaException
Row object.NoSuchSchemaExceptionpublic <T> SerializableFunction<T,Row> getToRowFunction(TypeDescriptor<T> typeDescriptor) throws NoSuchSchemaException
Row object.NoSuchSchemaExceptionpublic <T> SerializableFunction<Row,T> getFromRowFunction(java.lang.Class<T> clazz) throws NoSuchSchemaException
Row object to an object of the specified type.NoSuchSchemaExceptionpublic <T> SerializableFunction<Row,T> getFromRowFunction(TypeDescriptor<T> typeDescriptor) throws NoSuchSchemaException
Row object to an object of the specified type.NoSuchSchemaException