@Internal public abstract class TypedSchemaTransformProvider<ConfigT> extends java.lang.Object implements SchemaTransformProvider
SchemaTransformProvider
except uses a configuration object instead of Schema and
Row.
ConfigT should be available in the SchemaRegistry.
configurationSchema()
produces a configuration Schema
that is inferred from
ConfigT
using the SchemaRegistry. A Beam Row
can still be used to produce a
SchemaTransform
using from(Row)
, as long as the Row fits the configuration
Schema.
NOTE: The inferred field names in the configuration Schema
and Row
follow the
snake_case
naming convention.
Internal only: This interface is actively being worked on and it will likely change as we provide implementations for more standard Beam transforms. We provide no backwards compatibility guarantees and it should not be implemented outside of the Beam repository.
Constructor and Description |
---|
TypedSchemaTransformProvider() |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Class<ConfigT> |
configurationClass() |
Schema |
configurationSchema()
Returns the expected schema of the configuration object.
|
java.util.Optional<java.util.List<java.lang.String>> |
dependencies(Row configuration,
PipelineOptions options)
List the dependencies needed for this transform.
|
protected abstract SchemaTransform |
from(ConfigT configuration)
Produce a SchemaTransform from ConfigT.
|
SchemaTransform |
from(Row configuration)
Produces a
SchemaTransform from a Row configuration. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
description, identifier, inputCollectionNames, outputCollectionNames
protected java.lang.Class<ConfigT> configurationClass()
protected abstract SchemaTransform from(ConfigT configuration)
InvalidConfigurationException
or a
InvalidSchemaException
.public final Schema configurationSchema()
SchemaTransformProvider
configurationSchema
in interface SchemaTransformProvider
public final SchemaTransform from(Row configuration)
SchemaTransform
from a Row configuration. Row fields are expected to have
`snake_case` naming convention.from
in interface SchemaTransformProvider
public final java.util.Optional<java.util.List<java.lang.String>> dependencies(Row configuration, PipelineOptions options)
SchemaTransformProvider
dependencies
in interface SchemaTransformProvider