Lokasi ngalangkungan proxy:   [ UP ]  
[Ngawartoskeun bug]   [Panyetelan cookie]                
Skip to content

Latest commit

 

History

History
148 lines (123 loc) · 11.9 KB

File metadata and controls

148 lines (123 loc) · 11.9 KB

+++ title = "Java Proto Names" weight = 655 linkTitle = "Generated Proto Names" description = "This topic covers the names that are generated by the immutable API." type = "docs" +++

This document contains information on what the fully-qualified Java name of a proto is, based on the different proto options. This name corresponds to the package you need to import to use that message.

Immutable API Message Names { #immutable-api-message-names }

The names for protos generated by the immutable API (java_proto_library BUILD target) are listed in the following table.

java_api_version java_multiple_files java_alt_api_package java_package java_outer_classname Generated full message name
1 true Defined - $java_alt_api_package.$message
1 true Not defined Not defined com.google.protos.$package.proto2api.$message
1 true Not defined Defined $java_package.proto2api.$message
1 false Defined - Not defined $java_alt_api_package.$derived_outer_class.$message
1 false Defined - Defined $java_alt_api_package.$java_outer_classname.$message
1 false Not defined Not defined Not defined com.google.protos.$package.proto2api.$derived_outer_class.$message
1 false Not defined Not defined Defined com.google.protos.$package.proto2api.$java_outer_classname.$message
1 false Not defined Defined Not defined $java_package.proto2api.$derived_outer_class.$message
1 false Not defined Defined Defined $java_package.proto2api.$java_outer_classname.$message
2 true - Not defined - com.google.protos.$package.$message
2 true - Defined - $java_package.$message
2 false - Not defined Not defined com.google.protos.$package.$derived_outer_class.$message
2 false - Not defined Defined com.google.protos.$package.$java_outer_classname.$message
2 false - Defined Not defined $java_package.$derived_outer_class.$message
2 false - Defined Defined $java_package.$java_outer_classname.$message

Legend

  • - means either setting or not setting the option will not change the generated full message name.

  • $message is the actual name of the proto message.

  • $package is the name of the proto package. This is the name specified by the package directive in the proto file, which is usually at the top of the file.

  • $derived_outer_class is a name generated from the proto file name. Generally it's computed by removing punctuation from the file name and converting it to CamelCase. For example, if the proto is foo_bar.proto, the $derived_outer_class value is FooBar.

    If the generated class name would be the same as one of the messages defined in the proto file, derived_outer_class has OuterClass appended to it. For example, if the proto is foo_bar.proto and contains a FooBar message, the $derived_outer_class value is FooBarOuterClass. The same is true when using the v1 API, whether or not the class name would be the same as one of the messages defined.

  • All other $names are the values of the corresponding proto2 file options defined in the proto file.

The recommended set of options is:

option java_multiple_files = true;
option java_outer_classname = "{UpperCamelCaseFilename}Proto";

Mutable API Message Names { #mutable-api-message-names }

The names for protos generated by the mutable API are outlined in the following sections.

{{% alert title="Note" color="note" %}} Java mutable API names will be generated only when the java_mutable_proto_library target is built. {{% /alert %}}

Generated Proto API Version { #generated-proto-api-version }

{{% alert title="Warning" color="warning" %}} Java proto1 is deprecated. Avoid any settings that will generate that version. {{% /alert %}}

java_api_version java_mutable_api java_enable_dual_generate_mutable_api API version
- - true proto1, proto2 mutable
1 - false proto1
2 true false proto2 mutable
2 false false proto1

Proto2 Message Names { #proto2-message-names }

java_api_version (java_multiple_files, java_multiple_files_mutable_package) java_package java_outer_classname java_alt_api_package Proto2 Mutable message name
- (true, defined) - - - $java_multiple_files_mutable_package.$message
1 !(true, defined) Undefined Undefined Undefined com.google.protos.$package.proto2api.Mutable$Filename.$message
1 !(true, defined) Undefined Undefined Defined $java_alt_api_package.Mutable$Filename.$message
1 !(true, defined) Undefined Defined Undefined com.google.protos.$package.proto2api.Mutable$java_outer_classname.$message
1 !(true, defined) Undefined Defined Defined $java_alt_api_package.Mutable$java_outer_classname.$message
1 !(true, defined) Defined Undefined Undefined $java_package.proto2api.Mutable$Filename.$message
1 !(true, defined) Defined Undefined Defined $java_alt_api_package.Mutable$Filename.$message
1 !(true, defined) Defined Defined Undefined $java_package.proto2api.Mutable$java_outer_classname.$message
1 !(true, defined) Defined Defined Defined $java_alt_api_package.Mutable$java_outer_classname.$message
2 !(true, defined) Undefined Undefined - com.google.protos.$package.Mutable$Filename.$message
2 !(true, defined) Undefined Defined - com.google.protos.$package..Mutable$java_outer_classname.$message
2 !(true, defined) Defined Undefined - $java_package.Mutable$Filename.$message
2 !(true, defined) Defined Defined - $java_package.Mutable$java_outer_classname.$message

Legend

  • - means either setting or not setting the option will not change the generated full message name.
  • $message is the actual name of the proto message.
  • All other $names are the values of the corresponding proto2 file options defined in the proto file.

Proto1 Message Names { #proto1-message-names }

{{% alert title="Warning" color="warning" %}} Java proto1 is deprecated. The following table is provided for informational purposes only. {{% /alert %}}

java_api_version java_multiple_files java_package java_outer_classname java_alt_api_package Proto1 message name
1 true Undefined - - com.google.protos.$package.$message
1 true Defined - - $java_package.$message
1 false Undefined Defined - com.google.protos.$package.$java_outer_class.$message
1 false Undefined Undefined - com.google.protos.$package.$message
1 false Defined Defined - $java_package.$java_outer_class.$message
1 false Defined Undefined - $java_package.$message
2 true Undefined - Undefined com.google.protos.$package.proto1api.$message
2 true Defined - Undefined $java_package.proto1api.$message
2 false Undefined Defined Undefined com.google.protos.$package.proto1api.$java_outer_class.$message
2 false Undefined Undefined Undefined com.google.protos.$package.proto1api.$message
2 false Defined Defined Undefined $java_package.proto1api.$java_outer_class.$message
2 false Defined Undefined Undefined $java_package.proto1api.$message
2 true Undefined - Defined com.google.protos.$package.$java_alt_api_package.$message
2 true Defined - Defined $java_package.$java_alt_api_package.$message
2 false Undefined Defined Defined com.google.protos.$package.$java_alt_api_package.$java_outer_class.$message
2 false Undefined Undefined Defined com.google.protos.$package.$java_alt_api_package.$message
2 false Defined Defined Defined $java_package.$java_alt_api_package.$java_outer_class.$message
2 false Defined Undefined Defined $java_package.$java_alt_api_package.$message

Legend

  • - means either setting or not setting the option will not change the generated full message name.
  • $message is the actual name of the proto message.
  • All other $names are the values of the corresponding proto2 file options defined in the proto file.