public interface PortableBuilder
Here is an example of how a portable object can be built dynamically:
PortableBuilder builder = Ignition.ignite().portables().builder("org.project.MyObject");
builder.setField("fieldA", "A");
builder.setField("fieldB", "B");
PortableObject portableObj = builder.build();
Also builder can be initialized by existing portable object. This allows changing some fields without affecting other fields.
PortableBuilder builder = Ignition.ignite().portables().builder(person);
builder.setField("name", "John");
person = builder.build();
If you need to modify nested portable object you can get builder for nested object using
getField(String), changes made on nested builder will affect parent object,
for example:
PortableBuilder personBuilder = grid.portables().createBuilder(personPortableObj);
PortableBuilder addressBuilder = personBuilder.setField("address");
addressBuilder.setField("city", "New York");
personPortableObj = personBuilder.build();
// Should be "New York".
String city = personPortableObj.getField("address").getField("city");
| Modifier and Type | Method and Description |
|---|---|
PortableObject |
build()
Builds portable object.
|
<T> T |
getField(String name)
Returns value assigned to the specified field.
|
PortableBuilder |
hashCode(int hashCode)
Sets hash code for resulting portable object returned by
build() method. |
PortableBuilder |
removeField(String fieldName)
Removes field from this builder.
|
PortableBuilder |
setField(String name,
Object val)
Sets field value.
|
PortableBuilder |
setField(String name,
PortableBuilder builder)
Sets field value.
|
<T> PortableBuilder |
setField(String name,
T val,
Class<? super T> type)
Sets field value with value type specification.
|
<T> T getField(String name)
GridPortableBuilder will be returned,
which can be modified.
Collections and maps returned from this method are modifiable.
name - Field name.PortableBuilder setField(String name, Object val)
name - Field name.val - Field value (cannot be null).PortableObject.metaData()<T> PortableBuilder setField(String name, @Nullable T val, Class<? super T> type)
Field type is needed for proper metadata update.
name - Field name.val - Field value.type - Field type.PortableObject.metaData()PortableBuilder setField(String name, @Nullable PortableBuilder builder)
This method should be used if field is portable object.
name - Field name.builder - Builder for object field.PortableBuilder removeField(String fieldName)
fieldName - Field name.this instance for chaining.PortableBuilder hashCode(int hashCode)
build() method.
If not set 0 is used.
hashCode - Hash code.this instance for chaining.PortableObject build() throws PortableException
PortableException - In case of error.
Follow @ApacheIgnite
Ignite Fabric : ver. 1.4.0 Release Date : September 24 2015