Allow String to be used as message names.

pull/3335/head
liujisi@google.com 14 years ago
parent 5c24564811
commit 02d7015ba8
  1. 20
      java/src/test/java/com/google/protobuf/test_bad_identifiers.proto
  2. 49
      src/google/protobuf/compiler/java/java_string_field.cc

@ -64,6 +64,26 @@ message Object {
optional int32 object = 1;
}
message String {
optional string string = 1;
}
message Integer {
optional int32 integer = 1;
}
message Long {
optional int32 long = 1;
}
message Float {
optional float float = 1;
}
message Double {
optional double double = 1;
}
service TestConflictingMethodNames {
rpc Override(TestMessage) returns (TestMessage);
}

@ -162,7 +162,7 @@ void StringFieldGenerator::
GenerateInterfaceMembers(io::Printer* printer) const {
printer->Print(variables_,
"$deprecation$boolean has$capitalized_name$();\n"
"$deprecation$String get$capitalized_name$();\n");
"$deprecation$java.lang.String get$capitalized_name$();\n");
}
void StringFieldGenerator::
@ -174,14 +174,14 @@ GenerateMembers(io::Printer* printer) const {
"}\n");
printer->Print(variables_,
"$deprecation$public String get$capitalized_name$() {\n"
"$deprecation$public java.lang.String get$capitalized_name$() {\n"
" java.lang.Object ref = $name$_;\n"
" if (ref instanceof String) {\n"
" return (String) ref;\n"
" if (ref instanceof java.lang.String) {\n"
" return (java.lang.String) ref;\n"
" } else {\n"
" com.google.protobuf.ByteString bs = \n"
" (com.google.protobuf.ByteString) ref;\n"
" String s = bs.toStringUtf8();\n"
" java.lang.String s = bs.toStringUtf8();\n"
" if (com.google.protobuf.Internal.isValidUtf8(bs)) {\n"
" $name$_ = s;\n"
" }\n"
@ -190,9 +190,10 @@ GenerateMembers(io::Printer* printer) const {
"}\n"
"private com.google.protobuf.ByteString get$capitalized_name$Bytes() {\n"
" java.lang.Object ref = $name$_;\n"
" if (ref instanceof String) {\n"
" if (ref instanceof java.lang.String) {\n"
" com.google.protobuf.ByteString b = \n"
" com.google.protobuf.ByteString.copyFromUtf8((String) ref);\n"
" com.google.protobuf.ByteString.copyFromUtf8(\n"
" (java.lang.String) ref);\n"
" $name$_ = b;\n"
" return b;\n"
" } else {\n"
@ -210,19 +211,21 @@ GenerateBuilderMembers(io::Printer* printer) const {
"}\n");
printer->Print(variables_,
"$deprecation$public String get$capitalized_name$() {\n"
"$deprecation$public java.lang.String get$capitalized_name$() {\n"
" java.lang.Object ref = $name$_;\n"
" if (!(ref instanceof String)) {\n"
" String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();\n"
" if (!(ref instanceof java.lang.String)) {\n"
" java.lang.String s = ((com.google.protobuf.ByteString) ref)\n"
" .toStringUtf8();\n"
" $name$_ = s;\n"
" return s;\n"
" } else {\n"
" return (String) ref;\n"
" return (java.lang.String) ref;\n"
" }\n"
"}\n");
printer->Print(variables_,
"$deprecation$public Builder set$capitalized_name$(String value) {\n"
"$deprecation$public Builder set$capitalized_name$(\n"
" java.lang.String value) {\n"
"$null_check$"
" $set_has_field_bit_builder$;\n"
" $name$_ = value;\n"
@ -322,7 +325,7 @@ GenerateHashCode(io::Printer* printer) const {
}
string StringFieldGenerator::GetBoxedType() const {
return "String";
return "java.lang.String";
}
@ -351,9 +354,10 @@ int RepeatedStringFieldGenerator::GetNumBitsForBuilder() const {
void RepeatedStringFieldGenerator::
GenerateInterfaceMembers(io::Printer* printer) const {
printer->Print(variables_,
"$deprecation$java.util.List<String> get$capitalized_name$List();\n"
"$deprecation$java.util.List<java.lang.String>\n"
" get$capitalized_name$List();\n"
"$deprecation$int get$capitalized_name$Count();\n"
"$deprecation$String get$capitalized_name$(int index);\n");
"$deprecation$java.lang.String get$capitalized_name$(int index);\n");
}
@ -361,14 +365,14 @@ void RepeatedStringFieldGenerator::
GenerateMembers(io::Printer* printer) const {
printer->Print(variables_,
"private com.google.protobuf.LazyStringList $name$_;\n"
"$deprecation$public java.util.List<String>\n"
"$deprecation$public java.util.List<java.lang.String>\n"
" get$capitalized_name$List() {\n"
" return $name$_;\n" // note: unmodifiable list
"}\n"
"$deprecation$public int get$capitalized_name$Count() {\n"
" return $name$_.size();\n"
"}\n"
"$deprecation$public String get$capitalized_name$(int index) {\n"
"$deprecation$public java.lang.String get$capitalized_name$(int index) {\n"
" return $name$_.get(index);\n"
"}\n");
@ -406,25 +410,26 @@ GenerateBuilderMembers(io::Printer* printer) const {
// has been built, thus mutating the message which is supposed to be
// immutable.
printer->Print(variables_,
"$deprecation$public java.util.List<String>\n"
"$deprecation$public java.util.List<java.lang.String>\n"
" get$capitalized_name$List() {\n"
" return java.util.Collections.unmodifiableList($name$_);\n"
"}\n"
"$deprecation$public int get$capitalized_name$Count() {\n"
" return $name$_.size();\n"
"}\n"
"$deprecation$public String get$capitalized_name$(int index) {\n"
"$deprecation$public java.lang.String get$capitalized_name$(int index) {\n"
" return $name$_.get(index);\n"
"}\n"
"$deprecation$public Builder set$capitalized_name$(\n"
" int index, String value) {\n"
" int index, java.lang.String value) {\n"
"$null_check$"
" ensure$capitalized_name$IsMutable();\n"
" $name$_.set(index, value);\n"
" $on_changed$\n"
" return this;\n"
"}\n"
"$deprecation$public Builder add$capitalized_name$(String value) {\n"
"$deprecation$public Builder add$capitalized_name$(\n"
" java.lang.String value) {\n"
"$null_check$"
" ensure$capitalized_name$IsMutable();\n"
" $name$_.add(value);\n"
@ -432,7 +437,7 @@ GenerateBuilderMembers(io::Printer* printer) const {
" return this;\n"
"}\n"
"$deprecation$public Builder addAll$capitalized_name$(\n"
" java.lang.Iterable<String> values) {\n"
" java.lang.Iterable<java.lang.String> values) {\n"
" ensure$capitalized_name$IsMutable();\n"
" super.addAll(values, $name$_);\n"
" $on_changed$\n"

Loading…
Cancel
Save