Skip to content

Commit

Permalink
Removes "Enum" suffix from generated enum class types.
Browse files Browse the repository at this point in the history
Provides backward compatible aliases.
	Change on 2016/01/05 by kstanger <kstanger@google.com>
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=111417795
  • Loading branch information
kstanger authored and Keith Stanger committed Jan 6, 2016
1 parent 1a64291 commit 7db71f7
Show file tree
Hide file tree
Showing 26 changed files with 386 additions and 401 deletions.
2 changes: 1 addition & 1 deletion jre_emul/Classes/IOSConcreteClass.m
Expand Up @@ -96,7 +96,7 @@ - (jboolean)isEnum {
return (metadata.modifiers & JavaLangReflectModifier_ENUM) > 0 &&
[self getSuperclass] == JavaLangEnum_class_();
} else {
return class_ != nil && [NSStringFromClass(class_) hasSuffix:@"Enum"];
return class_ != nil && strcmp(class_getName(class_getSuperclass(class_)), "JavaLangEnum") == 0;
}
}

Expand Down
6 changes: 3 additions & 3 deletions jre_emul/Classes/J2ObjC_common.h
Expand Up @@ -22,9 +22,9 @@
@class IOSClass;

// TODO(kstanger): Remove after users have migrated.
/*#ifndef J2OBJC_NO_RENAME_ALIASES
#define J2OBJC_RENAME_ALIASES 1
#endif*/
#ifndef J2OBJC_NO_RENAME2_ALIASES
#define J2OBJC_RENAME2_ALIASES 1
#endif

#ifndef __has_feature
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
Expand Down
Expand Up @@ -83,28 +83,24 @@ void EnumGenerator::GenerateHeader(io::Printer* printer) {
printer->Outdent();
printer->Print("};\n\n");

// TODO(kstanger): Remove after users have migrated.
printer->Print("#ifdef J2OBJC_RENAME_ALIASES\n");
printer->Print(
"#define $oldname$ $newname$\n",
"oldname", TypeName(descriptor_),
"newname", CEnumName(descriptor_));
for (int i = 0; i < canonical_values_.size(); i++) {
printer->Print(
"#define $oldname$_$value$ $newname$_$value$\n",
"oldname", TypeName(descriptor_),
"newname", CEnumName(descriptor_),
"value", canonical_values_[i]->name());
"#define $classname$_$name$_VALUE $value$\n",
"classname", ClassName(descriptor_),
"name", canonical_values_[i]->name(),
"value", SimpleItoa(canonical_values_[i]->number()));
}
printer->Print("#endif // J2OBJC_RENAME_ALIASES\n");

// TODO(kstanger): Remove after users have migrated.
printer->Print("#ifdef J2OBJC_RENAME2_ALIASES\n");
for (int i = 0; i < canonical_values_.size(); i++) {
printer->Print(
"#define $classname$_$name$_VALUE $value$\n",
"#define $classname$Enum_$name$_VALUE $value$\n",
"classname", ClassName(descriptor_),
"name", canonical_values_[i]->name(),
"value", SimpleItoa(canonical_values_[i]->number()));
}
printer->Print("#endif // J2OBJC_RENAME2_ALIASES\n");

printer->Print(
"\n"
Expand Down Expand Up @@ -134,6 +130,18 @@ void EnumGenerator::GenerateHeader(io::Printer* printer) {
"jint value);\n\n",
"classname", ClassName(descriptor_));

// TODO(kstanger): Remove when users have migrated.
printer->Print("#ifdef J2OBJC_RENAME2_ALIASES\n");
printer->Print(
"#define $classname$Enum $classname$\n"
"#define $classname$Enum_initialize $classname$_initialize\n"
"#define $classname$Enum_values $classname$_values\n"
"#define $classname$Enum_valueOfWithNSString_"
" $classname$_valueOfWithNSString_\n"
"#define $classname$Enum_valueOfWithInt_ $classname$_valueOfWithInt_\n",
"classname", ClassName(descriptor_));
printer->Print("#endif // J2OBJC_RENAME2_ALIASES\n");

for (int i = 0; i < canonical_values_.size(); i++) {
printer->Print(
"#define $classname$_$name$ $classname$_values_[$nativeenumname$]\n"
Expand All @@ -142,6 +150,17 @@ void EnumGenerator::GenerateHeader(io::Printer* printer) {
"name", canonical_values_[i]->name(),
"nativeenumname", EnumValueName(canonical_values_[i]));
}

// TODO(kstanger): Remove when users have migrated.
printer->Print("#ifdef J2OBJC_RENAME2_ALIASES\n");
for (int i = 0; i < canonical_values_.size(); i++) {
printer->Print(
"#define $classname$Enum_$name$ $classname$_$name$\n"
"#define $classname$Enum_get_$name$ $classname$_get_$name$\n",
"classname", ClassName(descriptor_),
"name", canonical_values_[i]->name());
}
printer->Print("#endif // J2OBJC_RENAME2_ALIASES\n");
}

const int kMaxRowChars = 80;
Expand Down
Expand Up @@ -77,14 +77,6 @@ void ExtensionGenerator::GenerateMembersHeader(io::Printer* printer) {
"ComGoogleProtobufGeneratedMessage_GeneratedExtension *)\n",
"name", UnderscoresToCamelCase(descriptor_),
"classname", ContainingClassName(descriptor_));
// TODO(kstanger): Remove when users have migrated.
printer->Print("#ifdef J2OBJC_RENAME_ALIASES\n");
printer->Print(
"#define $classname$_$name$_ $classname$_$name$\n"
"#define $classname$_get_$name$_ $classname$_get_$name$\n",
"name", UnderscoresToCamelCase(descriptor_),
"classname", ContainingClassName(descriptor_));
printer->Print("#endif // J2OBJC_RENAME_ALIASES\n");
}

void ExtensionGenerator::GenerateSourceDefinition(io::Printer* printer) {
Expand Down
Expand Up @@ -226,6 +226,14 @@ void SingleFieldGenerator::GenerateFieldBuilderHeader(io::Printer* printer)
" set$capitalized_name$With$parameter_type$_Builder:\n"
" ($parameter_type$_Builder *)value;\n");
}
// TODO(kstanger): Remove after name migration. (b/25973003)
if (GetJavaType(descriptor_) == JAVATYPE_ENUM) {
printer->Print("#ifdef J2OBJC_RENAME2_ALIASES\n");
printer->Print(variables_,
"#define set$capitalized_name$With$parameter_type$Enum "
"set$capitalized_name$With$parameter_type$\n");
printer->Print("#endif // J2OBJC_RENAME2_ALIASES\n");
}
}

void SingleFieldGenerator::GenerateMessageOrBuilderProtocol(io::Printer* printer)
Expand Down Expand Up @@ -277,6 +285,15 @@ void RepeatedFieldGenerator::GenerateFieldBuilderHeader(io::Printer* printer)
" add$capitalized_name$With$parameter_type$_Builder:\n"
" ($parameter_type$_Builder *)value;\n");
}
// TODO(kstanger): Remove after name migration. (b/25973003)
if (GetJavaType(descriptor_) == JAVATYPE_ENUM) {
printer->Print("#ifdef J2OBJC_RENAME2_ALIASES\n");
printer->Print(variables_,
"#define with$parameter_type$Enum with$parameter_type$\n"
"#define add$capitalized_name$With$parameter_type$Enum "
"add$capitalized_name$With$parameter_type$\n");
printer->Print("#endif // J2OBJC_RENAME2_ALIASES\n");
}
}

void RepeatedFieldGenerator::GenerateMessageOrBuilderProtocol(
Expand Down
Expand Up @@ -505,7 +505,7 @@ void FileGenerator::GenerateClassMappings(GeneratorContext* context) {
PrintProperty(&printer, JavaClassName(file_), ClassName(file_));
for (int i = 0; i < file_->enum_type_count(); i++) {
PrintProperty(&printer, JavaClassName(file_->enum_type(i)),
TypeName(file_->enum_type(i)));
ClassName(file_->enum_type(i)));
}
for (int i = 0; i < file_->message_type_count(); i++) {
PrintClassMappings(file_->message_type(i), &printer);
Expand Down
Expand Up @@ -262,17 +262,13 @@ string ClassName(const Descriptor *descriptor) {
+ descriptor->name();
}

string TypeName(const EnumDescriptor *descriptor) {
string ClassName(const EnumDescriptor *descriptor) {
return GetClassPrefix(descriptor->file(), descriptor->containing_type())
+ descriptor->name();
}

string CEnumName(const EnumDescriptor *descriptor) {
return TypeName(descriptor) + "_Enum";
}

string ClassName(const EnumDescriptor *descriptor) {
return TypeName(descriptor) + "Enum";
return ClassName(descriptor) + "_Enum";
}

string ClassName(const FileDescriptor *descriptor) {
Expand Down
Expand Up @@ -72,7 +72,6 @@ string ClassName(const Descriptor *descriptor);
string ClassName(const EnumDescriptor *descriptor);
string ClassName(const FileDescriptor *descriptor);

string TypeName(const EnumDescriptor *descriptor);
string CEnumName(const EnumDescriptor *descriptor);

string EnumValueName(const EnumValueDescriptor *descriptor);
Expand Down
4 changes: 0 additions & 4 deletions protobuf/runtime/src/com/google/protobuf/ByteString.h
Expand Up @@ -92,10 +92,6 @@ J2OBJC_STATIC_INIT(ComGoogleProtobufByteString)

FOUNDATION_EXPORT ComGoogleProtobufByteString *ComGoogleProtobufByteString_EMPTY;
J2OBJC_STATIC_FIELD_GETTER(ComGoogleProtobufByteString, EMPTY, ComGoogleProtobufByteString *)
// TODO(kstanger): Remove when users have migrated.
#ifdef J2OBJC_RENAME_ALIASES
#define ComGoogleProtobufByteString_get_EMPTY_ ComGoogleProtobufByteString_get_EMPTY
#endif // J2OBJC_RENAME_ALIASES

J2OBJC_TYPE_LITERAL_HEADER(ComGoogleProtobufByteString)

Expand Down

0 comments on commit 7db71f7

Please sign in to comment.