public class Struct extends Object
A structured record containing a set of named fields with values, each field using an independent Schema. Struct objects must specify a complete Schema up front, and only fields specified in the Schema may be set.
The Struct's put(String, Object) method returns the Struct itself to provide a fluent API for constructing complete objects:
Schema schema = SchemaBuilder.struct().name("com.example.Person")
.field("name", Schema.STRING_SCHEMA).field("age", Schema.INT32_SCHEMA).build()
Struct struct = new Struct(schema).put("name", "Bobby McGee").put("age", 21)
| Constructor and Description |
|---|
Struct(Schema schema)Create a new Struct for this Schema |
| Modifier and Type | Method and Description |
|---|---|
boolean | equals(Object o) |
Object | get(Field field)Get the value of a field, returning the default value if no value has been set yet and a default value is specified in the field's schema. |
Object | get(String fieldName)Get the value of a field, returning the default value if no value has been set yet and a default value is specified in the field's schema. |
<T> List<T> | getArray(String fieldName)Equivalent to calling get(String) and casting the result to a List. |
Boolean | getBoolean(String fieldName)Equivalent to calling get(String) and casting the result to a Boolean. |
byte[] | getBytes(String fieldName)Equivalent to calling get(String) and casting the result to a byte[]. |
Float | getFloat32(String fieldName)Equivalent to calling get(String) and casting the result to a Float. |
Double | getFloat64(String fieldName)Equivalent to calling get(String) and casting the result to a Double. |
Short | getInt16(String fieldName)Equivalent to calling get(String) and casting the result to a Short. |
Integer | getInt32(String fieldName)Equivalent to calling get(String) and casting the result to an Integer. |
Long | getInt64(String fieldName)Equivalent to calling get(String) and casting the result to a Long. |
Byte | getInt8(String fieldName)Equivalent to calling get(String) and casting the result to a Byte. |
<K,V> Map<K,V> | getMap(String fieldName)Equivalent to calling get(String) and casting the result to a Map. |
String | getString(String fieldName)Equivalent to calling get(String) and casting the result to a String. |
Struct | getStruct(String fieldName)Equivalent to calling get(String) and casting the result to a Struct. |
Object | getWithoutDefault(String fieldName)Get the underlying raw value for the field without accounting for default values. |
int | hashCode() |
Struct | put(Field field, Object value)Set the value of a field. |
Struct | put(String fieldName, Object value)Set the value of a field. |
Schema | schema()Get the schema for this Struct. |
String | toString() |
void | validate()Validates that this struct has filled in all the necessary data with valid values. |
public Schema schema()
public Object get(String fieldName)
Object and must be cast to a more specific type.fieldName - the field name to lookuppublic Object get(Field field)
Object and must be cast to a more specific type.field - the field to lookuppublic Object getWithoutDefault(String fieldName)
fieldName - the field to get the value ofpublic Byte getInt8(String fieldName)
get(String) and casting the result to a Byte.public Short getInt16(String fieldName)
get(String) and casting the result to a Short.public Integer getInt32(String fieldName)
get(String) and casting the result to an Integer.public Long getInt64(String fieldName)
get(String) and casting the result to a Long.public Float getFloat32(String fieldName)
get(String) and casting the result to a Float.public Double getFloat64(String fieldName)
get(String) and casting the result to a Double.public Boolean getBoolean(String fieldName)
get(String) and casting the result to a Boolean.public String getString(String fieldName)
get(String) and casting the result to a String.public byte[] getBytes(String fieldName)
get(String) and casting the result to a byte[].public <T> List<T> getArray(String fieldName)
get(String) and casting the result to a List.public <K,V> Map<K,V> getMap(String fieldName)
get(String) and casting the result to a Map.public Struct getStruct(String fieldName)
get(String) and casting the result to a Struct.public Struct put(String fieldName, Object value)
DataException if it does not match the field's Schema.fieldName - the name of the field to setvalue - the value of the fieldput(String, Object) callspublic Struct put(Field field, Object value)
DataException if it does not match the field's Schema.field - the field to setvalue - the value of the fieldput(String, Object) callspublic void validate()
DataException.