35 #include <google/protobuf/compiler/java/java_extension.h>
37 #include <google/protobuf/compiler/java/java_context.h>
38 #include <google/protobuf/compiler/java/java_doc_comment.h>
39 #include <google/protobuf/compiler/java/java_helpers.h>
40 #include <google/protobuf/compiler/java/java_name_resolver.h>
41 #include <google/protobuf/io/printer.h>
42 #include <google/protobuf/stubs/strutil.h>
65 ClassNameResolver* name_resolver,
66 std::map<std::string, std::string>* vars_pointer) {
67 std::map<std::string, std::string>& vars = *vars_pointer;
68 vars[
"scope"] = scope;
70 vars[
"containing_type"] =
71 name_resolver->GetClassName(
descriptor->containing_type(), immutable);
79 vars[
"packed"] =
descriptor->is_packed() ?
"true" :
"false";
80 vars[
"enum_map"] =
"null";
81 vars[
"prototype"] =
"null";
88 name_resolver->GetClassName(
descriptor->message_type(), immutable);
89 vars[
"prototype"] = singular_type +
".getDefaultInstance()";
93 name_resolver->GetClassName(
descriptor->enum_type(), immutable);
94 vars[
"enum_map"] = singular_type +
".internalGetValueMap()";
97 singular_type =
"java.lang.String";
100 singular_type = immutable ?
"com.google.protobuf.ByteString" :
"byte[]";
107 ?
"java.util.List<" + singular_type +
">"
109 vars[
"singular_type"] = singular_type;
113 std::map<std::string, std::string> vars;
114 const bool kUseImmutableNames =
true;
117 printer->Print(vars,
"public static final int $constant_name$ = $number$;\n");
124 "public static final\n"
125 " com.google.protobuf.GeneratedMessage.GeneratedExtension<\n"
126 " $containing_type$,\n"
127 " $type$> $name$ = com.google.protobuf.GeneratedMessage\n"
128 " .newFileScopedGeneratedExtension(\n"
129 " $singular_type$.class,\n"
135 "public static final\n"
136 " com.google.protobuf.GeneratedMessage.GeneratedExtension<\n"
137 " $containing_type$,\n"
138 " $type$> $name$ = com.google.protobuf.GeneratedMessage\n"
139 " .newMessageScopedGeneratedExtension(\n"
140 " $scope$.getDefaultInstance(),\n"
142 " $singular_type$.class,\n"
150 int bytecode_estimate = 0;
154 "$name$.internalInit(descriptor.getExtensions().get($index$));\n",
157 bytecode_estimate += 21;
159 return bytecode_estimate;
164 printer->Print(
"registry.add($scope$.$name$);\n",
"scope",
scope_,
"name",