Class Descriptors.FileDescriptor

  • Enclosing class:
    Descriptors

    public static final class Descriptors.FileDescriptor
    extends Descriptors.GenericDescriptor
    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).
    • Method Detail

      • getPackage

        public java.lang.String getPackage()
        Get the proto package name. This is the package name given by the package statement in the .proto file, which differs from the Java package.
      • getMessageTypes

        public java.util.List<Descriptors.Descriptor> getMessageTypes()
        Get a list of top-level message types declared in this file.
      • getEnumTypes

        public java.util.List<Descriptors.EnumDescriptor> getEnumTypes()
        Get a list of top-level enum types declared in this file.
      • getExtensions

        public java.util.List<Descriptors.FieldDescriptor> getExtensions()
        Get a list of top-level extensions declared in this file.
      • getDependencies

        public java.util.List<Descriptors.FileDescriptor> getDependencies()
        Get a list of this file's dependencies (imports).
      • getPublicDependencies

        public java.util.List<Descriptors.FileDescriptor> getPublicDependencies()
        Get a list of this file's public dependencies (public imports).
      • findMessageTypeByName

        public Descriptors.Descriptor findMessageTypeByName​(java.lang.String name)
        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

        public Descriptors.EnumDescriptor findEnumTypeByName​(java.lang.String name)
        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

        public Descriptors.ServiceDescriptor findServiceByName​(java.lang.String name)
        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

        public Descriptors.FieldDescriptor findExtensionByName​(java.lang.String name)
        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,
                                                           boolean allowUnknownDependencies)
                                                    throws Descriptors.DescriptorValidationException
        Construct a FileDescriptor.
        Parameters:
        proto - the protocol message form of the FileDescriptor
        dependencies - FileDescriptors corresponding to all of the file's dependencies
        allowUnknownDependencies - 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.
      • internalBuildGeneratedFileFrom

        public static Descriptors.FileDescriptor internalBuildGeneratedFileFrom​(java.lang.String[] descriptorDataParts,
                                                                                Descriptors.FileDescriptor[] dependencies)
        This method is to be called by generated code only. It is equivalent to buildFrom except that the FileDescriptorProto is encoded in protocol buffer wire format.
      • internalBuildGeneratedFileFrom

        @Deprecated
        public static void internalBuildGeneratedFileFrom​(java.lang.String[] descriptorDataParts,
                                                          java.lang.Class<?> descriptorOuterClass,
                                                          java.lang.String[] dependencyClassNames,
                                                          java.lang.String[] dependencyFileNames,
                                                          Descriptors.FileDescriptor.InternalDescriptorAssigner descriptorAssigner)
        Deprecated.
        This method is for backward compatibility with generated code which passed an InternalDescriptorAssigner.
      • internalBuildGeneratedFileFrom

        public static Descriptors.FileDescriptor internalBuildGeneratedFileFrom​(java.lang.String[] descriptorDataParts,
                                                                                java.lang.Class<?> descriptorOuterClass,
                                                                                java.lang.String[] dependencyClassNames,
                                                                                java.lang.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.