Package com.google.protobuf
Class Descriptors.FileDescriptor
java.lang.Object
com.google.protobuf.Descriptors.GenericDescriptor
com.google.protobuf.Descriptors.FileDescriptor
- Enclosing class:
Descriptors
Describes a
.proto
file, including everything defined within. That includes, in
particular, descriptors for all the messages and file descriptors for all other imported
.proto
files (dependencies).-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Deprecated. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Descriptors.FileDescriptor[]
private final Descriptors.EnumDescriptor[]
private final Descriptors.FieldDescriptor[]
private boolean
private final Descriptors.Descriptor[]
private DescriptorProtos.FileOptions
private final Descriptors.DescriptorPool
private final Descriptors.FileDescriptor[]
private final Descriptors.ServiceDescriptor[]
Fields inherited from class com.google.protobuf.Descriptors.GenericDescriptor
features, parent
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
FileDescriptor
(DescriptorProtos.FileDescriptorProto proto, Descriptors.FileDescriptor[] dependencies, Descriptors.DescriptorPool pool, boolean allowUnknownDependencies) (package private)
FileDescriptor
(String packageName, Descriptors.Descriptor message) Create a placeholder FileDescriptor for a message Descriptor. -
Method Summary
Modifier and TypeMethodDescriptionstatic Descriptors.FileDescriptor
buildFrom
(DescriptorProtos.FileDescriptorProto proto, Descriptors.FileDescriptor[] dependencies) Construct aFileDescriptor
.static Descriptors.FileDescriptor
buildFrom
(DescriptorProtos.FileDescriptorProto proto, Descriptors.FileDescriptor[] dependencies, boolean allowUnknownDependencies) Construct aFileDescriptor
.private static Descriptors.FileDescriptor
buildFrom
(DescriptorProtos.FileDescriptorProto proto, Descriptors.FileDescriptor[] dependencies, boolean allowUnknownDependencies, boolean allowUnresolvedFeatures) void
copyHeadingTo
(DescriptorProtos.FileDescriptorProto.Builder protoBuilder) private void
Look up and cross-link all field types, etc.private static Descriptors.FileDescriptor[]
findDescriptors
(Class<?> descriptorOuterClass, String[] dependencyClassNames, String[] dependencyFileNames) findEnumTypeByName
(String name) Find an enum type in the file by name.findExtensionByName
(String name) Find an extension in the file by name.findMessageTypeByName
(String name) Find a message type in the file by name.findServiceByName
(String name) Find a service type in the file by name.Get a list of this file's dependencies (imports).(package private) DescriptorProtos.Edition
Get the edition of the .proto file.Get a list of top-level enum types declared in this file.Get a list of top-level extensions declared in this file.getFile()
Returns this object.Returns the same as getName().Get a list of top-level message types declared in this file.getName()
Get the file name.Get theFileOptions
, defined indescriptor.proto
.Get the proto package name.Get a list of this file's public dependencies (public imports).Get a list of top-level services declared in this file.(package private) boolean
(package private) DescriptorProtos.FeatureSet
static Descriptors.FileDescriptor
internalBuildGeneratedFileFrom
(String[] descriptorDataParts, Descriptors.FileDescriptor[] dependencies) This method is to be called by generated code only.static Descriptors.FileDescriptor
internalBuildGeneratedFileFrom
(String[] descriptorDataParts, Class<?> descriptorOuterClass, String[] dependencyClassNames, String[] dependencyFileNames) This method is to be called by generated code only.static void
internalUpdateFileDescriptor
(Descriptors.FileDescriptor descriptor, ExtensionRegistry registry) This method is to be called by generated code only.private static byte[]
void
private void
This method is to be called by generated code only.private void
Replace ourDescriptorProtos.FileDescriptorProto
with the given one, which is identical except that it might contain extensions that weren't present in the original.toProto()
Convert the descriptor to its protocol message representation.Methods inherited from class com.google.protobuf.Descriptors.GenericDescriptor
getFeatures, resolveFeatures, validateFeatures
-
Field Details
-
proto
-
options
-
messageTypes
-
enumTypes
-
services
-
extensions
-
dependencies
-
publicDependencies
-
pool
-
featuresResolved
private volatile boolean featuresResolved
-
-
Constructor Details
-
FileDescriptor
private FileDescriptor(DescriptorProtos.FileDescriptorProto proto, Descriptors.FileDescriptor[] dependencies, Descriptors.DescriptorPool pool, boolean allowUnknownDependencies) throws Descriptors.DescriptorValidationException -
FileDescriptor
FileDescriptor(String packageName, Descriptors.Descriptor message) throws Descriptors.DescriptorValidationException Create a placeholder FileDescriptor for a message Descriptor.
-
-
Method Details
-
toProto
Convert the descriptor to its protocol message representation.- Specified by:
toProto
in classDescriptors.GenericDescriptor
-
getName
Get the file name.- Specified by:
getName
in classDescriptors.GenericDescriptor
-
getFile
Returns this object.- Specified by:
getFile
in classDescriptors.GenericDescriptor
-
getFullName
Returns the same as getName().- Specified by:
getFullName
in classDescriptors.GenericDescriptor
-
getPackage
Get the proto package name. This is the package name given by thepackage
statement in the.proto
file, which differs from the Java package. -
getOptions
Get theFileOptions
, defined indescriptor.proto
. -
getMessageTypes
Get a list of top-level message types declared in this file. -
getEnumTypes
Get a list of top-level enum types declared in this file. -
getServices
Get a list of top-level services declared in this file. -
getExtensions
Get a list of top-level extensions declared in this file. -
getDependencies
Get a list of this file's dependencies (imports). -
getPublicDependencies
Get a list of this file's public dependencies (public imports). -
getEdition
DescriptorProtos.Edition getEdition()Get the edition of the .proto file. -
copyHeadingTo
-
findMessageTypeByName
Find a message type in the file by name. Does not find nested types.- Parameters:
name
- The unqualified type name to look for.- Returns:
- The message type's descriptor, or
null
if not found.
-
findEnumTypeByName
Find an enum type in the file by name. Does not find nested types.- Parameters:
name
- The unqualified type name to look for.- Returns:
- The enum type's descriptor, or
null
if not found.
-
findServiceByName
Find a service type in the file by name.- Parameters:
name
- The unqualified type name to look for.- Returns:
- The service type's descriptor, or
null
if not found.
-
findExtensionByName
Find an extension in the file by name. Does not find extensions nested inside message types.- Parameters:
name
- The unqualified extension name to look for.- Returns:
- The extension's descriptor, or
null
if not found.
-
buildFrom
public static Descriptors.FileDescriptor buildFrom(DescriptorProtos.FileDescriptorProto proto, Descriptors.FileDescriptor[] dependencies) throws Descriptors.DescriptorValidationException Construct aFileDescriptor
.- Parameters:
proto
- the protocol message form of the FileDescriptortdependencies
-FileDescriptor
s corresponding to all of the file's dependencies.- Throws:
Descriptors.DescriptorValidationException
-proto
is not a valid descriptor. This can occur for a number of reasons; for instance, because a field has an undefined type or because two messages were defined with the same name.
-
buildFrom
public static Descriptors.FileDescriptor buildFrom(DescriptorProtos.FileDescriptorProto proto, Descriptors.FileDescriptor[] dependencies, boolean allowUnknownDependencies) throws Descriptors.DescriptorValidationException Construct aFileDescriptor
.- Parameters:
proto
- the protocol message form of the FileDescriptordependencies
-FileDescriptor
s corresponding to all of the file's dependenciesallowUnknownDependencies
- if true, non-existing dependencies will be ignored and undefined message types will be replaced with a placeholder type. Undefined enum types still cause a DescriptorValidationException.- Throws:
Descriptors.DescriptorValidationException
-proto
is not a valid descriptor. This can occur for a number of reasons; for instance, because a field has an undefined type or because two messages were defined with the same name.
-
buildFrom
private static Descriptors.FileDescriptor buildFrom(DescriptorProtos.FileDescriptorProto proto, Descriptors.FileDescriptor[] dependencies, boolean allowUnknownDependencies, boolean allowUnresolvedFeatures) throws Descriptors.DescriptorValidationException -
latin1Cat
-
findDescriptors
private static Descriptors.FileDescriptor[] findDescriptors(Class<?> descriptorOuterClass, String[] dependencyClassNames, String[] dependencyFileNames) -
internalBuildGeneratedFileFrom
public static Descriptors.FileDescriptor internalBuildGeneratedFileFrom(String[] descriptorDataParts, Descriptors.FileDescriptor[] dependencies) This method is to be called by generated code only. It is equivalent tobuildFrom
except that theFileDescriptorProto
is encoded in protocol buffer wire format. -
internalBuildGeneratedFileFrom
public static Descriptors.FileDescriptor internalBuildGeneratedFileFrom(String[] descriptorDataParts, Class<?> descriptorOuterClass, String[] dependencyClassNames, String[] dependencyFileNames) This method is to be called by generated code only. It uses Java reflection to load the dependencies' descriptors. -
internalUpdateFileDescriptor
public static void internalUpdateFileDescriptor(Descriptors.FileDescriptor descriptor, ExtensionRegistry registry) This method is to be called by generated code only. It updates the FileDescriptorProto associated with the descriptor by parsing it again with the given ExtensionRegistry. This is needed to recognize custom options. -
resolveAllFeaturesImmutable
public void resolveAllFeaturesImmutable() -
resolveAllFeaturesInternal
This method is to be called by generated code only. It resolves features for the descriptor and all of its children. -
inferLegacyProtoFeatures
DescriptorProtos.FeatureSet inferLegacyProtoFeatures()- Overrides:
inferLegacyProtoFeatures
in classDescriptors.GenericDescriptor
-
hasInferredLegacyProtoFeatures
boolean hasInferredLegacyProtoFeatures()- Overrides:
hasInferredLegacyProtoFeatures
in classDescriptors.GenericDescriptor
-
crossLink
Look up and cross-link all field types, etc. -
setProto
Replace ourDescriptorProtos.FileDescriptorProto
with the given one, which is identical except that it might contain extensions that weren't present in the original. This method is needed for bootstrapping when a file defines custom options. The options may be defined in the file itself, so we can't actually parse them until we've constructed the descriptors, but to construct the descriptors we have to have parsed the descriptor protos. So, we have to parse the descriptor protos a second time after constructing the descriptors.
-