Package com.google.protobuf
Class FieldSet.Builder<T extends FieldSet.FieldDescriptorLite<T>>
- java.lang.Object
-
- com.google.protobuf.FieldSet.Builder<T>
-
- Enclosing class:
- FieldSet<T extends FieldSet.FieldDescriptorLite<T>>
static final class FieldSet.Builder<T extends FieldSet.FieldDescriptorLite<T>> extends java.lang.Object
A FieldSet Builder that accept aMessageLite.Builder
as a field value. This is useful for implementing methods inMessageLite.Builder
.
-
-
Field Summary
Fields Modifier and Type Field Description private SmallSortedMap<T,java.lang.Object>
fields
private boolean
hasLazyField
private boolean
hasNestedBuilders
private boolean
isMutable
-
Constructor Summary
Constructors Modifier Constructor Description private
Builder()
private
Builder(SmallSortedMap<T,java.lang.Object> fields)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addRepeatedField(T descriptor, java.lang.Object value)
Useful for implementingMessage.Builder.addRepeatedField(Descriptors.FieldDescriptor, Object)
.FieldSet<T>
build()
Creates the FieldSetprivate FieldSet<T>
buildImpl(boolean partial)
Creates the FieldSet.FieldSet<T>
buildPartial()
Creates the FieldSet but does not validate that all required fields are present.void
clearField(T descriptor)
Useful for implementingMessage.Builder.clearField(Descriptors.FieldDescriptor)
.private void
ensureIsMutable()
static <T extends FieldSet.FieldDescriptorLite<T>>
FieldSet.Builder<T>fromFieldSet(FieldSet<T> fieldSet)
Returns a new Builder using the fields fromfieldSet
.java.util.Map<T,java.lang.Object>
getAllFields()
Get a simple map containing all the fields.java.lang.Object
getField(T descriptor)
Useful for implementingMessageOrBuilder.getField(Descriptors.FieldDescriptor)
.(package private) java.lang.Object
getFieldAllowBuilders(T descriptor)
Same as#getField(F)
, but allow aMessageLite.Builder
to be returned.java.lang.Object
getRepeatedField(T descriptor, int index)
Useful for implementingMessageOrBuilder.getRepeatedField(Descriptors.FieldDescriptor, int)
.(package private) java.lang.Object
getRepeatedFieldAllowBuilders(T descriptor, int index)
Same as#getRepeatedField(F, int)
, but allow aMessageLite.Builder
to be returned.int
getRepeatedFieldCount(T descriptor)
Useful for implementingMessageOrBuilder.getRepeatedFieldCount(Descriptors.FieldDescriptor)
.boolean
hasField(T descriptor)
Useful for implementingMessageOrBuilder.hasField(Descriptors.FieldDescriptor)
.boolean
isInitialized()
void
mergeFrom(FieldSet<T> other)
LikeMessage.Builder.mergeFrom(Message)
, but merges from anotherFieldSet
.private void
mergeFromField(java.util.Map.Entry<T,java.lang.Object> entry)
private static java.lang.Object
replaceBuilder(java.lang.Object value, boolean partial)
private static <T extends FieldSet.FieldDescriptorLite<T>>
voidreplaceBuilders(SmallSortedMap<T,java.lang.Object> fieldMap, boolean partial)
private static <T extends FieldSet.FieldDescriptorLite<T>>
voidreplaceBuilders(java.util.Map.Entry<T,java.lang.Object> entry, boolean partial)
private static <T extends FieldSet.FieldDescriptorLite<T>>
java.lang.ObjectreplaceBuilders(T descriptor, java.lang.Object value, boolean partial)
void
setField(T descriptor, java.lang.Object value)
Useful for implementingMessage.Builder.setField(Descriptors.FieldDescriptor, Object)
.void
setRepeatedField(T descriptor, int index, java.lang.Object value)
Useful for implementingMessage.Builder.setRepeatedField(Descriptors.FieldDescriptor, int, Object)
.private void
verifyType(T descriptor, java.lang.Object value)
Verifies that the given object is of the correct type to be a valid value for the given field.
-
-
-
Field Detail
-
fields
private SmallSortedMap<T extends FieldSet.FieldDescriptorLite<T>,java.lang.Object> fields
-
hasLazyField
private boolean hasLazyField
-
isMutable
private boolean isMutable
-
hasNestedBuilders
private boolean hasNestedBuilders
-
-
Constructor Detail
-
Builder
private Builder()
-
Builder
private Builder(SmallSortedMap<T,java.lang.Object> fields)
-
-
Method Detail
-
build
public FieldSet<T> build()
Creates the FieldSet- Throws:
UninitializedMessageException
- if a message field is missing required fields.
-
buildPartial
public FieldSet<T> buildPartial()
Creates the FieldSet but does not validate that all required fields are present.
-
buildImpl
private FieldSet<T> buildImpl(boolean partial)
Creates the FieldSet.- Parameters:
partial
- controls whether to do a build() or buildPartial() when converting submessage builders to messages.
-
replaceBuilders
private static <T extends FieldSet.FieldDescriptorLite<T>> void replaceBuilders(SmallSortedMap<T,java.lang.Object> fieldMap, boolean partial)
-
replaceBuilders
private static <T extends FieldSet.FieldDescriptorLite<T>> void replaceBuilders(java.util.Map.Entry<T,java.lang.Object> entry, boolean partial)
-
replaceBuilders
private static <T extends FieldSet.FieldDescriptorLite<T>> java.lang.Object replaceBuilders(T descriptor, java.lang.Object value, boolean partial)
-
replaceBuilder
private static java.lang.Object replaceBuilder(java.lang.Object value, boolean partial)
-
fromFieldSet
public static <T extends FieldSet.FieldDescriptorLite<T>> FieldSet.Builder<T> fromFieldSet(FieldSet<T> fieldSet)
Returns a new Builder using the fields fromfieldSet
.
-
getAllFields
public java.util.Map<T,java.lang.Object> getAllFields()
Get a simple map containing all the fields.
-
hasField
public boolean hasField(T descriptor)
Useful for implementingMessageOrBuilder.hasField(Descriptors.FieldDescriptor)
.
-
getField
public java.lang.Object getField(T descriptor)
Useful for implementingMessageOrBuilder.getField(Descriptors.FieldDescriptor)
. This method returnsnull
if the field is not set; in this case it is up to the caller to fetch the field's default value.
-
getFieldAllowBuilders
java.lang.Object getFieldAllowBuilders(T descriptor)
Same as#getField(F)
, but allow aMessageLite.Builder
to be returned.
-
ensureIsMutable
private void ensureIsMutable()
-
setField
public void setField(T descriptor, java.lang.Object value)
Useful for implementingMessage.Builder.setField(Descriptors.FieldDescriptor, Object)
.
-
clearField
public void clearField(T descriptor)
Useful for implementingMessage.Builder.clearField(Descriptors.FieldDescriptor)
.
-
getRepeatedFieldCount
public int getRepeatedFieldCount(T descriptor)
Useful for implementingMessageOrBuilder.getRepeatedFieldCount(Descriptors.FieldDescriptor)
.
-
getRepeatedField
public java.lang.Object getRepeatedField(T descriptor, int index)
Useful for implementingMessageOrBuilder.getRepeatedField(Descriptors.FieldDescriptor, int)
.
-
getRepeatedFieldAllowBuilders
java.lang.Object getRepeatedFieldAllowBuilders(T descriptor, int index)
Same as#getRepeatedField(F, int)
, but allow aMessageLite.Builder
to be returned.
-
setRepeatedField
public void setRepeatedField(T descriptor, int index, java.lang.Object value)
Useful for implementingMessage.Builder.setRepeatedField(Descriptors.FieldDescriptor, int, Object)
.
-
addRepeatedField
public void addRepeatedField(T descriptor, java.lang.Object value)
Useful for implementingMessage.Builder.addRepeatedField(Descriptors.FieldDescriptor, Object)
.
-
verifyType
private void verifyType(T descriptor, java.lang.Object value)
Verifies that the given object is of the correct type to be a valid value for the given field. (For repeated fields, this checks if the object is the right type to be one element of the field.)- Throws:
java.lang.IllegalArgumentException
- The value is not of the right type.
-
isInitialized
public boolean isInitialized()
SeeMessageLiteOrBuilder.isInitialized()
. Note: SinceFieldSet
itself does not have any way of knowing about required fields that aren't actually present in the set, it is up to the caller to check that all required fields are present.
-
mergeFrom
public void mergeFrom(FieldSet<T> other)
LikeMessage.Builder.mergeFrom(Message)
, but merges from anotherFieldSet
.
-
mergeFromField
private void mergeFromField(java.util.Map.Entry<T,java.lang.Object> entry)
-
-