summaryrefslogtreecommitdiff
path: root/ruby/src/main/java/com/google/protobuf/jruby/RubyOneofDescriptor.java
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/src/main/java/com/google/protobuf/jruby/RubyOneofDescriptor.java')
-rw-r--r--ruby/src/main/java/com/google/protobuf/jruby/RubyOneofDescriptor.java124
1 files changed, 0 insertions, 124 deletions
diff --git a/ruby/src/main/java/com/google/protobuf/jruby/RubyOneofDescriptor.java b/ruby/src/main/java/com/google/protobuf/jruby/RubyOneofDescriptor.java
deleted file mode 100644
index cc4ab662..00000000
--- a/ruby/src/main/java/com/google/protobuf/jruby/RubyOneofDescriptor.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package com.google.protobuf.jruby;
-
-import com.google.protobuf.DescriptorProtos;
-import com.google.protobuf.Descriptors;
-import org.jruby.Ruby;
-import org.jruby.RubyClass;
-import org.jruby.RubyModule;
-import org.jruby.RubyObject;
-import org.jruby.anno.JRubyClass;
-import org.jruby.anno.JRubyMethod;
-import org.jruby.runtime.Block;
-import org.jruby.runtime.ObjectAllocator;
-import org.jruby.runtime.ThreadContext;
-import org.jruby.runtime.builtin.IRubyObject;
-
-import java.util.*;
-
-@JRubyClass(name = "OneofDescriptor", include = "Enumerable")
-public class RubyOneofDescriptor extends RubyObject {
-
- public static void createRubyOneofDescriptor(Ruby runtime) {
- RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf");
- RubyClass cRubyOneofDescriptor = protobuf.defineClassUnder("OneofDescriptor", runtime.getObject(), new ObjectAllocator() {
- @Override
- public IRubyObject allocate(Ruby ruby, RubyClass rubyClass) {
- return new RubyOneofDescriptor(ruby, rubyClass);
- }
- });
- cRubyOneofDescriptor.defineAnnotatedMethods(RubyOneofDescriptor.class);
- cRubyOneofDescriptor.includeModule(runtime.getEnumerable());
- }
-
- public RubyOneofDescriptor(Ruby ruby, RubyClass rubyClass) {
- super(ruby, rubyClass);
- }
-
- @JRubyMethod
- public IRubyObject initialize(ThreadContext context) {
- builder = DescriptorProtos.OneofDescriptorProto.newBuilder();
- fields = new ArrayList<RubyFieldDescriptor>();
- return this;
- }
-
- /*
- * call-seq:
- * OneofDescriptor.name => name
- *
- * Returns the name of this oneof.
- */
- @JRubyMethod(name = "name")
- public IRubyObject getName(ThreadContext context) {
- return name;
- }
-
- /*
- * call-seq:
- * OneofDescriptor.name = name
- *
- * Sets a new name for this oneof. The oneof must not have been added to a
- * message descriptor yet.
- */
- @JRubyMethod(name = "name=")
- public IRubyObject setName(ThreadContext context, IRubyObject name) {
- this.name = context.runtime.newString(name.asJavaString());
- this.builder.setName(name.asJavaString());
- return context.runtime.getNil();
- }
-
- /*
- * call-seq:
- * OneofDescriptor.add_field(field) => nil
- *
- * Adds a field to this oneof. The field may have been added to this oneof in
- * the past, or the message to which this oneof belongs (if any), but may not
- * have already been added to any other oneof or message. Otherwise, an
- * exception is raised.
- *
- * All fields added to the oneof via this method will be automatically added to
- * the message to which this oneof belongs, if it belongs to one currently, or
- * else will be added to any message to which the oneof is later added at the
- * time that it is added.
- */
- @JRubyMethod(name = "add_field")
- public IRubyObject addField(ThreadContext context, IRubyObject obj) {
- RubyFieldDescriptor fieldDescriptor = (RubyFieldDescriptor) obj;
- fieldDescriptor.setOneofName(this.name);
- fields.add(fieldDescriptor);
- return context.runtime.getNil();
- }
-
- /*
- * call-seq:
- * OneofDescriptor.each(&block) => nil
- *
- * Iterates through fields in this oneof, yielding to the block on each one.
- */
- @JRubyMethod
- public IRubyObject each(ThreadContext context, Block block) {
- for (RubyFieldDescriptor field : fields) {
- block.yieldSpecific(context, field);
- }
- return context.runtime.getNil();
- }
-
- public DescriptorProtos.OneofDescriptorProto build(int index) {
- for (RubyFieldDescriptor field: fields) {
- field.setOneofIndex(index);
- }
- return this.builder.build();
- }
-
- protected Collection<RubyFieldDescriptor> getFields() {
- return fields;
- }
-
- protected Descriptors.OneofDescriptor getOneofDescriptor() {
- RubyFieldDescriptor fieldDescriptor = fields.get(0);
- return fieldDescriptor.getFieldDef().getContainingOneof();
- }
-
- private IRubyObject name;
- private DescriptorProtos.OneofDescriptorProto.Builder builder;
- private List<RubyFieldDescriptor> fields;
-}