Package com.google.protobuf
Class GeneratedMessage.FieldAccessorTable
- java.lang.Object
-
- com.google.protobuf.GeneratedMessage.FieldAccessorTable
-
- Enclosing class:
- GeneratedMessage
public static final class GeneratedMessage.FieldAccessorTable extends java.lang.Object
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 Classes Modifier and Type Class Description private static interface
GeneratedMessage.FieldAccessorTable.FieldAccessor
Abstract interface that provides access to a single field.private static class
GeneratedMessage.FieldAccessorTable.MapFieldAccessor
private static class
GeneratedMessage.FieldAccessorTable.OneofAccessor
OneofAccessor provides access to a single oneof.private static class
GeneratedMessage.FieldAccessorTable.RepeatedEnumFieldAccessor
private static class
GeneratedMessage.FieldAccessorTable.RepeatedFieldAccessor
private static class
GeneratedMessage.FieldAccessorTable.RepeatedMessageFieldAccessor
private static class
GeneratedMessage.FieldAccessorTable.SingularEnumFieldAccessor
private static class
GeneratedMessage.FieldAccessorTable.SingularFieldAccessor
private static class
GeneratedMessage.FieldAccessorTable.SingularMessageFieldAccessor
private static class
GeneratedMessage.FieldAccessorTable.SingularStringFieldAccessor
Field accessor for string fields.
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String[]
camelCaseNames
private Descriptors.Descriptor
descriptor
private GeneratedMessage.FieldAccessorTable.FieldAccessor[]
fields
private boolean
initialized
private GeneratedMessage.FieldAccessorTable.OneofAccessor[]
oneofs
-
Constructor Summary
Constructors Constructor Description FieldAccessorTable(Descriptors.Descriptor descriptor, java.lang.String[] camelCaseNames)
Construct a FieldAccessorTable for a particular message class without initializing FieldAccessors.FieldAccessorTable(Descriptors.Descriptor descriptor, java.lang.String[] camelCaseNames, java.lang.Class<? extends GeneratedMessage> messageClass, java.lang.Class<? extends GeneratedMessage.Builder> builderClass)
Construct a FieldAccessorTable for a particular message class.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description GeneratedMessage.FieldAccessorTable
ensureFieldAccessorsInitialized(java.lang.Class<? extends GeneratedMessage> messageClass, java.lang.Class<? extends GeneratedMessage.Builder> builderClass)
Ensures the field accessors are initialized.private GeneratedMessage.FieldAccessorTable.FieldAccessor
getField(Descriptors.FieldDescriptor field)
Get the FieldAccessor for a particular field.private GeneratedMessage.FieldAccessorTable.OneofAccessor
getOneof(Descriptors.OneofDescriptor oneof)
Get the OneofAccessor for a particular oneof.private boolean
isMapFieldEnabled(Descriptors.FieldDescriptor field)
private static boolean
supportFieldPresence(Descriptors.FileDescriptor file)
-
-
-
Field Detail
-
descriptor
private final Descriptors.Descriptor descriptor
-
fields
private final GeneratedMessage.FieldAccessorTable.FieldAccessor[] fields
-
camelCaseNames
private java.lang.String[] camelCaseNames
-
oneofs
private final GeneratedMessage.FieldAccessorTable.OneofAccessor[] oneofs
-
initialized
private volatile boolean initialized
-
-
Constructor Detail
-
FieldAccessorTable
public FieldAccessorTable(Descriptors.Descriptor descriptor, java.lang.String[] camelCaseNames, java.lang.Class<? extends GeneratedMessage> messageClass, java.lang.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
public FieldAccessorTable(Descriptors.Descriptor descriptor, java.lang.String[] camelCaseNames)
Construct a FieldAccessorTable for a particular message class without initializing FieldAccessors.
-
-
Method Detail
-
isMapFieldEnabled
private boolean isMapFieldEnabled(Descriptors.FieldDescriptor field)
-
ensureFieldAccessorsInitialized
public GeneratedMessage.FieldAccessorTable ensureFieldAccessorsInitialized(java.lang.Class<? extends GeneratedMessage> messageClass, java.lang.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.
-
supportFieldPresence
private static boolean supportFieldPresence(Descriptors.FileDescriptor file)
-
-