@Experimental(value=SCHEMAS) public abstract class FieldAccessDescriptor extends java.lang.Object implements java.io.Serializable
DoFn
to describe which fields in a schema
type need to be accessed for processing.
This class always puts the selected fields in a deterministic order.
Constructor and Description |
---|
FieldAccessDescriptor() |
Modifier and Type | Method and Description |
---|---|
boolean |
allFields() |
static FieldAccessDescriptor |
create()
Return an empty
FieldAccessDescriptor . |
java.util.Set<java.lang.Integer> |
fieldIdsAccessed() |
java.util.Map<java.lang.Integer,FieldAccessDescriptor> |
nestedFields() |
FieldAccessDescriptor |
resolve(Schema schema) |
static FieldAccessDescriptor |
withAllFields() |
static FieldAccessDescriptor |
withFieldIds(java.lang.Integer... ids)
Return a descriptor that access the specified fields.
|
static FieldAccessDescriptor |
withFieldIds(java.lang.Iterable<java.lang.Integer> ids)
Return a descriptor that access the specified fields.
|
static FieldAccessDescriptor |
withFieldNames(java.lang.Iterable<java.lang.String> fieldNames)
Return a descriptor that access the specified fields.
|
static FieldAccessDescriptor |
withFieldNames(java.lang.String... names)
Return a descriptor that access the specified fields.
|
FieldAccessDescriptor |
withNestedField(int nestedFieldId,
FieldAccessDescriptor fieldAccess)
Return a descriptor that access the specified nested field.
|
FieldAccessDescriptor |
withNestedField(java.lang.String nestedFieldName,
FieldAccessDescriptor fieldAccess)
Return a descriptor that access the specified nested field.
|
FieldAccessDescriptor |
withOrderByFieldInsertionOrder()
By default, fields are sorted by name.
|
public static FieldAccessDescriptor withAllFields()
public static FieldAccessDescriptor withFieldNames(java.lang.String... names)
By default, if the field is a nested row (or a container containing a row), all fields of
said rows are accessed. For finer-grained acccess to nested rows, call withNestedField and pass
in a recursive FieldAccessDescriptor
.
public static FieldAccessDescriptor withFieldNames(java.lang.Iterable<java.lang.String> fieldNames)
By default, if the field is a nested row (or a container containing a row), all fields of
said rows are accessed. For finer-grained acccess to nested rows, call withNestedField and pass
in a recursive FieldAccessDescriptor
.
public static FieldAccessDescriptor withFieldIds(java.lang.Integer... ids)
By default, if the field is a nested row (or a container containing a row), all fields of
said rows are accessed. For finer-grained acccess to nested rows, call withNestedField and pass
in a recursive FieldAccessDescriptor
.
public static FieldAccessDescriptor withFieldIds(java.lang.Iterable<java.lang.Integer> ids)
By default, if the field is a nested row (or a container containing a row), all fields of
said rows are accessed. For finer-grained acccess to nested rows, call withNestedField and pass
in a recursive FieldAccessDescriptor
.
public static FieldAccessDescriptor create()
FieldAccessDescriptor
.public FieldAccessDescriptor withNestedField(int nestedFieldId, FieldAccessDescriptor fieldAccess)
Schema.TypeName.ROW
, and the fieldAccess argument specifies what fields of the nested
type will be accessed.public FieldAccessDescriptor withNestedField(java.lang.String nestedFieldName, FieldAccessDescriptor fieldAccess)
Schema.TypeName.ROW
, and the fieldAccess argument specifies what fields of the nested
type will be accessed.public FieldAccessDescriptor withOrderByFieldInsertionOrder()
resolve(Schema)
method.public boolean allFields()
public java.util.Set<java.lang.Integer> fieldIdsAccessed()
public java.util.Map<java.lang.Integer,FieldAccessDescriptor> nestedFields()
public FieldAccessDescriptor resolve(Schema schema)