Package com.google.protobuf
Class GeneratedMessage.FieldAccessorTable
java.lang.Object
com.google.protobuf.GeneratedMessage.FieldAccessorTable
- Direct Known Subclasses:
GeneratedMessageV3.FieldAccessorTable
- Enclosing class:
GeneratedMessage
Users should ignore this class. This class provides the implementation with access to the
fields of a message object using Java reflection.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static interface
Abstract interface that provides access to a single field.private static class
private static interface
OneofAccessor provides access to a single oneof.private static class
RealOneofAccessor provides access to a single real oneof.private static final class
private static class
private static final class
private static final class
private static class
private static final class
private static final class
Field accessor for string fields.private static class
SyntheticOneofAccessor provides access to a single synthetic oneof. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String[]
private final Descriptors.Descriptor
private final GeneratedMessage.FieldAccessorTable.FieldAccessor[]
private boolean
private final GeneratedMessage.FieldAccessorTable.OneofAccessor[]
-
Constructor Summary
ConstructorsConstructorDescriptionFieldAccessorTable
(Descriptors.Descriptor descriptor, String[] camelCaseNames) Construct a FieldAccessorTable for a particular message class without initializing FieldAccessors.FieldAccessorTable
(Descriptors.Descriptor descriptor, String[] camelCaseNames, Class<? extends GeneratedMessage> messageClass, Class<? extends GeneratedMessage.Builder<?>> builderClass) Construct a FieldAccessorTable for a particular message class. -
Method Summary
Modifier and TypeMethodDescriptionensureFieldAccessorsInitialized
(Class<? extends GeneratedMessage> messageClass, Class<? extends GeneratedMessage.Builder<?>> builderClass) Ensures the field accessors are initialized.Get the FieldAccessor for a particular field.Get the OneofAccessor for a particular oneof.
-
Field Details
-
descriptor
-
fields
-
camelCaseNames
-
oneofs
-
initialized
private volatile boolean initialized
-
-
Constructor Details
-
FieldAccessorTable
public FieldAccessorTable(Descriptors.Descriptor descriptor, String[] camelCaseNames, Class<? extends GeneratedMessage> messageClass, Class<? extends GeneratedMessage.Builder<?>> builderClass) Construct a FieldAccessorTable for a particular message class. Only one FieldAccessorTable should ever be constructed per class.- Parameters:
descriptor
- The type's descriptor.camelCaseNames
- The camelcase names of all fields in the message. These are used to derive the accessor method names.messageClass
- The message type.builderClass
- The builder type.
-
FieldAccessorTable
Construct a FieldAccessorTable for a particular message class without initializing FieldAccessors.
-
-
Method Details
-
ensureFieldAccessorsInitialized
public GeneratedMessage.FieldAccessorTable ensureFieldAccessorsInitialized(Class<? extends GeneratedMessage> messageClass, Class<? extends GeneratedMessage.Builder<?>> builderClass) Ensures the field accessors are initialized. This method is thread-safe.- Parameters:
messageClass
- The message type.builderClass
- The builder type.- Returns:
- this
-
getField
private GeneratedMessage.FieldAccessorTable.FieldAccessor getField(Descriptors.FieldDescriptor field) Get the FieldAccessor for a particular field. -
getOneof
private GeneratedMessage.FieldAccessorTable.OneofAccessor getOneof(Descriptors.OneofDescriptor oneof) Get the OneofAccessor for a particular oneof.
-