Skip to content

Commit 8c8b2be

Browse files
zhangskzcopybara-github
authored andcommitted
Breaking change: Lock down visibility for FileDescriptor.getSyntax().
Syntax will become meaningless once we migrate to editions. In the meantime, we've implemented APIs to expose the differences between proto2 and proto3 in terms of the features we plan to release in edition 2023. PiperOrigin-RevId: 520433607
1 parent 5dc171f commit 8c8b2be

File tree

5 files changed

+13
-10
lines changed

5 files changed

+13
-10
lines changed

java/core/src/main/java/com/google/protobuf/Descriptors.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ public List<FileDescriptor> getPublicDependencies() {
162162
}
163163

164164
/** The syntax of the .proto file. */
165-
public enum Syntax {
165+
enum Syntax {
166166
UNKNOWN("unknown"),
167167
PROTO2("proto2"),
168168
PROTO3("proto3");
@@ -175,7 +175,7 @@ public enum Syntax {
175175
}
176176

177177
/** Get the syntax of the .proto file. */
178-
public Syntax getSyntax() {
178+
Syntax getSyntax() {
179179
if (Syntax.PROTO3.name.equals(proto.getSyntax())) {
180180
return Syntax.PROTO3;
181181
}

ruby/src/main/java/com/google/protobuf/jruby/RubyEnumDescriptor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import com.google.protobuf.DescriptorProtos.EnumDescriptorProto;
3636
import com.google.protobuf.Descriptors.EnumDescriptor;
3737
import com.google.protobuf.Descriptors.EnumValueDescriptor;
38-
import com.google.protobuf.Descriptors.FileDescriptor;
38+
import com.google.protobuf.LegacyDescriptorsUtil.LegacyFileDescriptor;
3939
import org.jruby.Ruby;
4040
import org.jruby.RubyClass;
4141
import org.jruby.RubyModule;
@@ -160,7 +160,7 @@ private RubyModule buildModuleFromDescriptor(ThreadContext context) {
160160

161161
RubyModule enumModule = RubyModule.newModule(runtime);
162162
boolean defaultValueRequiredButNotFound =
163-
descriptor.getFile().getSyntax() == FileDescriptor.Syntax.PROTO3;
163+
LegacyFileDescriptor.getSyntax(descriptor.getFile()) == LegacyFileDescriptor.Syntax.PROTO3;
164164
for (EnumValueDescriptor value : descriptor.getValues()) {
165165
String name = fixEnumConstantName(value.getName());
166166
// Make sure it's a valid constant name before trying to create it

ruby/src/main/java/com/google/protobuf/jruby/RubyFieldDescriptor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
package com.google.protobuf.jruby;
3434

3535
import com.google.protobuf.Descriptors.FieldDescriptor;
36-
import com.google.protobuf.Descriptors.FileDescriptor;
36+
import com.google.protobuf.LegacyDescriptorsUtil.LegacyFileDescriptor;
3737
import org.jruby.*;
3838
import org.jruby.anno.JRubyClass;
3939
import org.jruby.anno.JRubyMethod;
@@ -234,7 +234,8 @@ public IRubyObject setValue(ThreadContext context, IRubyObject message, IRubyObj
234234
protected void setDescriptor(
235235
ThreadContext context, FieldDescriptor descriptor, RubyDescriptorPool pool) {
236236
if (descriptor.isRequired()
237-
&& descriptor.getFile().getSyntax() == FileDescriptor.Syntax.PROTO3) {
237+
&& LegacyFileDescriptor.getSyntax(descriptor.getFile())
238+
== LegacyFileDescriptor.Syntax.PROTO3) {
238239
throw Utils.createTypeError(
239240
context,
240241
descriptor.getName()

ruby/src/main/java/com/google/protobuf/jruby/RubyFileDescriptor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@
3333
package com.google.protobuf.jruby;
3434

3535
import com.google.protobuf.Descriptors.FileDescriptor;
36-
import com.google.protobuf.Descriptors.FileDescriptor.Syntax.*;
3736
import com.google.protobuf.Descriptors.GenericDescriptor;
37+
import com.google.protobuf.LegacyDescriptorsUtil.LegacyFileDescriptor;
38+
import com.google.protobuf.LegacyDescriptorsUtil.LegacyFileDescriptor.Syntax.*;
3839
import org.jruby.*;
3940
import org.jruby.anno.JRubyClass;
4041
import org.jruby.anno.JRubyMethod;
@@ -95,7 +96,7 @@ public IRubyObject getName(ThreadContext context) {
9596
*/
9697
@JRubyMethod(name = "syntax")
9798
public IRubyObject getSyntax(ThreadContext context) {
98-
switch (fileDescriptor.getSyntax()) {
99+
switch (LegacyFileDescriptor.getSyntax(fileDescriptor)) {
99100
case PROTO2:
100101
return context.runtime.newSymbol("proto2");
101102
case PROTO3:

ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@
3838
import com.google.protobuf.Descriptors.EnumDescriptor;
3939
import com.google.protobuf.Descriptors.EnumValueDescriptor;
4040
import com.google.protobuf.Descriptors.FieldDescriptor;
41-
import com.google.protobuf.Descriptors.FileDescriptor;
4241
import com.google.protobuf.Descriptors.OneofDescriptor;
4342
import com.google.protobuf.DynamicMessage;
4443
import com.google.protobuf.InvalidProtocolBufferException;
44+
import com.google.protobuf.LegacyDescriptorsUtil.LegacyFileDescriptor;
4545
import com.google.protobuf.Message;
4646
import com.google.protobuf.UnknownFieldSet;
4747
import com.google.protobuf.util.JsonFormat;
@@ -73,7 +73,8 @@ public RubyMessage(Ruby runtime, RubyClass klazz, Descriptor descriptor) {
7373
this.builder = DynamicMessage.newBuilder(descriptor);
7474
this.fields = new HashMap<FieldDescriptor, IRubyObject>();
7575
this.oneofCases = new HashMap<OneofDescriptor, FieldDescriptor>();
76-
this.proto3 = descriptor.getFile().getSyntax() == FileDescriptor.Syntax.PROTO3;
76+
this.proto3 =
77+
LegacyFileDescriptor.getSyntax(descriptor.getFile()) == LegacyFileDescriptor.Syntax.PROTO3;
7778
}
7879

7980
/*

0 commit comments

Comments
 (0)