001// Copyright (c) FIRST and other WPILib contributors.
002// Open Source Software; you can modify and/or share it under the terms of
003// the WPILib BSD license file in the root directory of this project.
004// Code generated by protocol buffer compiler. Do not edit!
005package edu.wpi.first.math.proto;
006
007import java.io.IOException;
008import us.hebi.quickbuf.Descriptors;
009import us.hebi.quickbuf.FieldName;
010import us.hebi.quickbuf.InvalidProtocolBufferException;
011import us.hebi.quickbuf.JsonSink;
012import us.hebi.quickbuf.JsonSource;
013import us.hebi.quickbuf.MessageFactory;
014import us.hebi.quickbuf.ProtoMessage;
015import us.hebi.quickbuf.ProtoSink;
016import us.hebi.quickbuf.ProtoSource;
017import us.hebi.quickbuf.ProtoUtil;
018import us.hebi.quickbuf.RepeatedByte;
019
020public final class System {
021  private static final RepeatedByte descriptorData = ProtoUtil.decodeBase64(832,
022    "CgxzeXN0ZW0ucHJvdG8SCXdwaS5wcm90bxoNd3BpbWF0aC5wcm90byKZAgoUUHJvdG9idWZMaW5lYXJT" + 
023    "eXN0ZW0SHQoKbnVtX3N0YXRlcxgBIAEoDVIJbnVtU3RhdGVzEh0KCm51bV9pbnB1dHMYAiABKA1SCW51" + 
024    "bUlucHV0cxIfCgtudW1fb3V0cHV0cxgDIAEoDVIKbnVtT3V0cHV0cxInCgFhGAQgASgLMhkud3BpLnBy" + 
025    "b3RvLlByb3RvYnVmTWF0cml4UgFhEicKAWIYBSABKAsyGS53cGkucHJvdG8uUHJvdG9idWZNYXRyaXhS" + 
026    "AWISJwoBYxgGIAEoCzIZLndwaS5wcm90by5Qcm90b2J1Zk1hdHJpeFIBYxInCgFkGAcgASgLMhkud3Bp" + 
027    "LnByb3RvLlByb3RvYnVmTWF0cml4UgFkQhoKGGVkdS53cGkuZmlyc3QubWF0aC5wcm90b0rVAwoGEgQA" + 
028    "ABABCggKAQwSAwAAEgoICgECEgMCABIKCQoCAwASAwQAFwoICgEIEgMGADEKCQoCCAESAwYAMQoKCgIE" + 
029    "ABIECAAQAQoKCgMEAAESAwgIHAoLCgQEAAIAEgMJAhgKDAoFBAACAAUSAwkCCAoMCgUEAAIAARIDCQkT" + 
030    "CgwKBQQAAgADEgMJFhcKCwoEBAACARIDCgIYCgwKBQQAAgEFEgMKAggKDAoFBAACAQESAwoJEwoMCgUE" + 
031    "AAIBAxIDChYXCgsKBAQAAgISAwsCGQoMCgUEAAICBRIDCwIICgwKBQQAAgIBEgMLCRQKDAoFBAACAgMS" + 
032    "AwsXGAoLCgQEAAIDEgMMAhcKDAoFBAACAwYSAwwCEAoMCgUEAAIDARIDDBESCgwKBQQAAgMDEgMMFRYK" + 
033    "CwoEBAACBBIDDQIXCgwKBQQAAgQGEgMNAhAKDAoFBAACBAESAw0REgoMCgUEAAIEAxIDDRUWCgsKBAQA" + 
034    "AgUSAw4CFwoMCgUEAAIFBhIDDgIQCgwKBQQAAgUBEgMOERIKDAoFBAACBQMSAw4VFgoLCgQEAAIGEgMP" + 
035    "AhcKDAoFBAACBgYSAw8CEAoMCgUEAAIGARIDDxESCgwKBQQAAgYDEgMPFRZiBnByb3RvMw==");
036
037  static final Descriptors.FileDescriptor descriptor = Descriptors.FileDescriptor.internalBuildGeneratedFileFrom("system.proto", "wpi.proto", descriptorData, Wpimath.getDescriptor());
038
039  static final Descriptors.Descriptor wpi_proto_ProtobufLinearSystem_descriptor = descriptor.internalContainedType(43, 281, "ProtobufLinearSystem", "wpi.proto.ProtobufLinearSystem");
040
041  /**
042   * @return this proto file's descriptor.
043   */
044  public static Descriptors.FileDescriptor getDescriptor() {
045    return descriptor;
046  }
047
048  /**
049   * Protobuf type {@code ProtobufLinearSystem}
050   */
051  public static final class ProtobufLinearSystem extends ProtoMessage<ProtobufLinearSystem> implements Cloneable {
052    private static final long serialVersionUID = 0L;
053
054    /**
055     * <code>optional uint32 num_states = 1;</code>
056     */
057    private int numStates;
058
059    /**
060     * <code>optional uint32 num_inputs = 2;</code>
061     */
062    private int numInputs;
063
064    /**
065     * <code>optional uint32 num_outputs = 3;</code>
066     */
067    private int numOutputs;
068
069    /**
070     * <code>optional .wpi.proto.ProtobufMatrix a = 4;</code>
071     */
072    private final Wpimath.ProtobufMatrix a = Wpimath.ProtobufMatrix.newInstance();
073
074    /**
075     * <code>optional .wpi.proto.ProtobufMatrix b = 5;</code>
076     */
077    private final Wpimath.ProtobufMatrix b = Wpimath.ProtobufMatrix.newInstance();
078
079    /**
080     * <code>optional .wpi.proto.ProtobufMatrix c = 6;</code>
081     */
082    private final Wpimath.ProtobufMatrix c = Wpimath.ProtobufMatrix.newInstance();
083
084    /**
085     * <code>optional .wpi.proto.ProtobufMatrix d = 7;</code>
086     */
087    private final Wpimath.ProtobufMatrix d = Wpimath.ProtobufMatrix.newInstance();
088
089    private ProtobufLinearSystem() {
090    }
091
092    /**
093     * @return a new empty instance of {@code ProtobufLinearSystem}
094     */
095    public static ProtobufLinearSystem newInstance() {
096      return new ProtobufLinearSystem();
097    }
098
099    /**
100     * <code>optional uint32 num_states = 1;</code>
101     * @return whether the numStates field is set
102     */
103    public boolean hasNumStates() {
104      return (bitField0_ & 0x00000001) != 0;
105    }
106
107    /**
108     * <code>optional uint32 num_states = 1;</code>
109     * @return this
110     */
111    public ProtobufLinearSystem clearNumStates() {
112      bitField0_ &= ~0x00000001;
113      numStates = 0;
114      return this;
115    }
116
117    /**
118     * <code>optional uint32 num_states = 1;</code>
119     * @return the numStates
120     */
121    public int getNumStates() {
122      return numStates;
123    }
124
125    /**
126     * <code>optional uint32 num_states = 1;</code>
127     * @param value the numStates to set
128     * @return this
129     */
130    public ProtobufLinearSystem setNumStates(final int value) {
131      bitField0_ |= 0x00000001;
132      numStates = value;
133      return this;
134    }
135
136    /**
137     * <code>optional uint32 num_inputs = 2;</code>
138     * @return whether the numInputs field is set
139     */
140    public boolean hasNumInputs() {
141      return (bitField0_ & 0x00000002) != 0;
142    }
143
144    /**
145     * <code>optional uint32 num_inputs = 2;</code>
146     * @return this
147     */
148    public ProtobufLinearSystem clearNumInputs() {
149      bitField0_ &= ~0x00000002;
150      numInputs = 0;
151      return this;
152    }
153
154    /**
155     * <code>optional uint32 num_inputs = 2;</code>
156     * @return the numInputs
157     */
158    public int getNumInputs() {
159      return numInputs;
160    }
161
162    /**
163     * <code>optional uint32 num_inputs = 2;</code>
164     * @param value the numInputs to set
165     * @return this
166     */
167    public ProtobufLinearSystem setNumInputs(final int value) {
168      bitField0_ |= 0x00000002;
169      numInputs = value;
170      return this;
171    }
172
173    /**
174     * <code>optional uint32 num_outputs = 3;</code>
175     * @return whether the numOutputs field is set
176     */
177    public boolean hasNumOutputs() {
178      return (bitField0_ & 0x00000004) != 0;
179    }
180
181    /**
182     * <code>optional uint32 num_outputs = 3;</code>
183     * @return this
184     */
185    public ProtobufLinearSystem clearNumOutputs() {
186      bitField0_ &= ~0x00000004;
187      numOutputs = 0;
188      return this;
189    }
190
191    /**
192     * <code>optional uint32 num_outputs = 3;</code>
193     * @return the numOutputs
194     */
195    public int getNumOutputs() {
196      return numOutputs;
197    }
198
199    /**
200     * <code>optional uint32 num_outputs = 3;</code>
201     * @param value the numOutputs to set
202     * @return this
203     */
204    public ProtobufLinearSystem setNumOutputs(final int value) {
205      bitField0_ |= 0x00000004;
206      numOutputs = value;
207      return this;
208    }
209
210    /**
211     * <code>optional .wpi.proto.ProtobufMatrix a = 4;</code>
212     * @return whether the a field is set
213     */
214    public boolean hasA() {
215      return (bitField0_ & 0x00000008) != 0;
216    }
217
218    /**
219     * <code>optional .wpi.proto.ProtobufMatrix a = 4;</code>
220     * @return this
221     */
222    public ProtobufLinearSystem clearA() {
223      bitField0_ &= ~0x00000008;
224      a.clear();
225      return this;
226    }
227
228    /**
229     * <code>optional .wpi.proto.ProtobufMatrix a = 4;</code>
230     *
231     * This method returns the internal storage object without modifying any has state.
232     * The returned object should not be modified and be treated as read-only.
233     *
234     * Use {@link #getMutableA()} if you want to modify it.
235     *
236     * @return internal storage object for reading
237     */
238    public Wpimath.ProtobufMatrix getA() {
239      return a;
240    }
241
242    /**
243     * <code>optional .wpi.proto.ProtobufMatrix a = 4;</code>
244     *
245     * This method returns the internal storage object and sets the corresponding
246     * has state. The returned object will become part of this message and its
247     * contents may be modified as long as the has state is not cleared.
248     *
249     * @return internal storage object for modifications
250     */
251    public Wpimath.ProtobufMatrix getMutableA() {
252      bitField0_ |= 0x00000008;
253      return a;
254    }
255
256    /**
257     * <code>optional .wpi.proto.ProtobufMatrix a = 4;</code>
258     * @param value the a to set
259     * @return this
260     */
261    public ProtobufLinearSystem setA(final Wpimath.ProtobufMatrix value) {
262      bitField0_ |= 0x00000008;
263      a.copyFrom(value);
264      return this;
265    }
266
267    /**
268     * <code>optional .wpi.proto.ProtobufMatrix b = 5;</code>
269     * @return whether the b field is set
270     */
271    public boolean hasB() {
272      return (bitField0_ & 0x00000010) != 0;
273    }
274
275    /**
276     * <code>optional .wpi.proto.ProtobufMatrix b = 5;</code>
277     * @return this
278     */
279    public ProtobufLinearSystem clearB() {
280      bitField0_ &= ~0x00000010;
281      b.clear();
282      return this;
283    }
284
285    /**
286     * <code>optional .wpi.proto.ProtobufMatrix b = 5;</code>
287     *
288     * This method returns the internal storage object without modifying any has state.
289     * The returned object should not be modified and be treated as read-only.
290     *
291     * Use {@link #getMutableB()} if you want to modify it.
292     *
293     * @return internal storage object for reading
294     */
295    public Wpimath.ProtobufMatrix getB() {
296      return b;
297    }
298
299    /**
300     * <code>optional .wpi.proto.ProtobufMatrix b = 5;</code>
301     *
302     * This method returns the internal storage object and sets the corresponding
303     * has state. The returned object will become part of this message and its
304     * contents may be modified as long as the has state is not cleared.
305     *
306     * @return internal storage object for modifications
307     */
308    public Wpimath.ProtobufMatrix getMutableB() {
309      bitField0_ |= 0x00000010;
310      return b;
311    }
312
313    /**
314     * <code>optional .wpi.proto.ProtobufMatrix b = 5;</code>
315     * @param value the b to set
316     * @return this
317     */
318    public ProtobufLinearSystem setB(final Wpimath.ProtobufMatrix value) {
319      bitField0_ |= 0x00000010;
320      b.copyFrom(value);
321      return this;
322    }
323
324    /**
325     * <code>optional .wpi.proto.ProtobufMatrix c = 6;</code>
326     * @return whether the c field is set
327     */
328    public boolean hasC() {
329      return (bitField0_ & 0x00000020) != 0;
330    }
331
332    /**
333     * <code>optional .wpi.proto.ProtobufMatrix c = 6;</code>
334     * @return this
335     */
336    public ProtobufLinearSystem clearC() {
337      bitField0_ &= ~0x00000020;
338      c.clear();
339      return this;
340    }
341
342    /**
343     * <code>optional .wpi.proto.ProtobufMatrix c = 6;</code>
344     *
345     * This method returns the internal storage object without modifying any has state.
346     * The returned object should not be modified and be treated as read-only.
347     *
348     * Use {@link #getMutableC()} if you want to modify it.
349     *
350     * @return internal storage object for reading
351     */
352    public Wpimath.ProtobufMatrix getC() {
353      return c;
354    }
355
356    /**
357     * <code>optional .wpi.proto.ProtobufMatrix c = 6;</code>
358     *
359     * This method returns the internal storage object and sets the corresponding
360     * has state. The returned object will become part of this message and its
361     * contents may be modified as long as the has state is not cleared.
362     *
363     * @return internal storage object for modifications
364     */
365    public Wpimath.ProtobufMatrix getMutableC() {
366      bitField0_ |= 0x00000020;
367      return c;
368    }
369
370    /**
371     * <code>optional .wpi.proto.ProtobufMatrix c = 6;</code>
372     * @param value the c to set
373     * @return this
374     */
375    public ProtobufLinearSystem setC(final Wpimath.ProtobufMatrix value) {
376      bitField0_ |= 0x00000020;
377      c.copyFrom(value);
378      return this;
379    }
380
381    /**
382     * <code>optional .wpi.proto.ProtobufMatrix d = 7;</code>
383     * @return whether the d field is set
384     */
385    public boolean hasD() {
386      return (bitField0_ & 0x00000040) != 0;
387    }
388
389    /**
390     * <code>optional .wpi.proto.ProtobufMatrix d = 7;</code>
391     * @return this
392     */
393    public ProtobufLinearSystem clearD() {
394      bitField0_ &= ~0x00000040;
395      d.clear();
396      return this;
397    }
398
399    /**
400     * <code>optional .wpi.proto.ProtobufMatrix d = 7;</code>
401     *
402     * This method returns the internal storage object without modifying any has state.
403     * The returned object should not be modified and be treated as read-only.
404     *
405     * Use {@link #getMutableD()} if you want to modify it.
406     *
407     * @return internal storage object for reading
408     */
409    public Wpimath.ProtobufMatrix getD() {
410      return d;
411    }
412
413    /**
414     * <code>optional .wpi.proto.ProtobufMatrix d = 7;</code>
415     *
416     * This method returns the internal storage object and sets the corresponding
417     * has state. The returned object will become part of this message and its
418     * contents may be modified as long as the has state is not cleared.
419     *
420     * @return internal storage object for modifications
421     */
422    public Wpimath.ProtobufMatrix getMutableD() {
423      bitField0_ |= 0x00000040;
424      return d;
425    }
426
427    /**
428     * <code>optional .wpi.proto.ProtobufMatrix d = 7;</code>
429     * @param value the d to set
430     * @return this
431     */
432    public ProtobufLinearSystem setD(final Wpimath.ProtobufMatrix value) {
433      bitField0_ |= 0x00000040;
434      d.copyFrom(value);
435      return this;
436    }
437
438    @Override
439    public ProtobufLinearSystem copyFrom(final ProtobufLinearSystem other) {
440      cachedSize = other.cachedSize;
441      if ((bitField0_ | other.bitField0_) != 0) {
442        bitField0_ = other.bitField0_;
443        numStates = other.numStates;
444        numInputs = other.numInputs;
445        numOutputs = other.numOutputs;
446        a.copyFrom(other.a);
447        b.copyFrom(other.b);
448        c.copyFrom(other.c);
449        d.copyFrom(other.d);
450      }
451      return this;
452    }
453
454    @Override
455    public ProtobufLinearSystem mergeFrom(final ProtobufLinearSystem other) {
456      if (other.isEmpty()) {
457        return this;
458      }
459      cachedSize = -1;
460      if (other.hasNumStates()) {
461        setNumStates(other.numStates);
462      }
463      if (other.hasNumInputs()) {
464        setNumInputs(other.numInputs);
465      }
466      if (other.hasNumOutputs()) {
467        setNumOutputs(other.numOutputs);
468      }
469      if (other.hasA()) {
470        getMutableA().mergeFrom(other.a);
471      }
472      if (other.hasB()) {
473        getMutableB().mergeFrom(other.b);
474      }
475      if (other.hasC()) {
476        getMutableC().mergeFrom(other.c);
477      }
478      if (other.hasD()) {
479        getMutableD().mergeFrom(other.d);
480      }
481      return this;
482    }
483
484    @Override
485    public ProtobufLinearSystem clear() {
486      if (isEmpty()) {
487        return this;
488      }
489      cachedSize = -1;
490      bitField0_ = 0;
491      numStates = 0;
492      numInputs = 0;
493      numOutputs = 0;
494      a.clear();
495      b.clear();
496      c.clear();
497      d.clear();
498      return this;
499    }
500
501    @Override
502    public ProtobufLinearSystem clearQuick() {
503      if (isEmpty()) {
504        return this;
505      }
506      cachedSize = -1;
507      bitField0_ = 0;
508      a.clearQuick();
509      b.clearQuick();
510      c.clearQuick();
511      d.clearQuick();
512      return this;
513    }
514
515    @Override
516    public boolean equals(Object o) {
517      if (o == this) {
518        return true;
519      }
520      if (!(o instanceof ProtobufLinearSystem)) {
521        return false;
522      }
523      ProtobufLinearSystem other = (ProtobufLinearSystem) o;
524      return bitField0_ == other.bitField0_
525        && (!hasNumStates() || numStates == other.numStates)
526        && (!hasNumInputs() || numInputs == other.numInputs)
527        && (!hasNumOutputs() || numOutputs == other.numOutputs)
528        && (!hasA() || a.equals(other.a))
529        && (!hasB() || b.equals(other.b))
530        && (!hasC() || c.equals(other.c))
531        && (!hasD() || d.equals(other.d));
532    }
533
534    @Override
535    public void writeTo(final ProtoSink output) throws IOException {
536      if ((bitField0_ & 0x00000001) != 0) {
537        output.writeRawByte((byte) 8);
538        output.writeUInt32NoTag(numStates);
539      }
540      if ((bitField0_ & 0x00000002) != 0) {
541        output.writeRawByte((byte) 16);
542        output.writeUInt32NoTag(numInputs);
543      }
544      if ((bitField0_ & 0x00000004) != 0) {
545        output.writeRawByte((byte) 24);
546        output.writeUInt32NoTag(numOutputs);
547      }
548      if ((bitField0_ & 0x00000008) != 0) {
549        output.writeRawByte((byte) 34);
550        output.writeMessageNoTag(a);
551      }
552      if ((bitField0_ & 0x00000010) != 0) {
553        output.writeRawByte((byte) 42);
554        output.writeMessageNoTag(b);
555      }
556      if ((bitField0_ & 0x00000020) != 0) {
557        output.writeRawByte((byte) 50);
558        output.writeMessageNoTag(c);
559      }
560      if ((bitField0_ & 0x00000040) != 0) {
561        output.writeRawByte((byte) 58);
562        output.writeMessageNoTag(d);
563      }
564    }
565
566    @Override
567    protected int computeSerializedSize() {
568      int size = 0;
569      if ((bitField0_ & 0x00000001) != 0) {
570        size += 1 + ProtoSink.computeUInt32SizeNoTag(numStates);
571      }
572      if ((bitField0_ & 0x00000002) != 0) {
573        size += 1 + ProtoSink.computeUInt32SizeNoTag(numInputs);
574      }
575      if ((bitField0_ & 0x00000004) != 0) {
576        size += 1 + ProtoSink.computeUInt32SizeNoTag(numOutputs);
577      }
578      if ((bitField0_ & 0x00000008) != 0) {
579        size += 1 + ProtoSink.computeMessageSizeNoTag(a);
580      }
581      if ((bitField0_ & 0x00000010) != 0) {
582        size += 1 + ProtoSink.computeMessageSizeNoTag(b);
583      }
584      if ((bitField0_ & 0x00000020) != 0) {
585        size += 1 + ProtoSink.computeMessageSizeNoTag(c);
586      }
587      if ((bitField0_ & 0x00000040) != 0) {
588        size += 1 + ProtoSink.computeMessageSizeNoTag(d);
589      }
590      return size;
591    }
592
593    @Override
594    @SuppressWarnings("fallthrough")
595    public ProtobufLinearSystem mergeFrom(final ProtoSource input) throws IOException {
596      // Enabled Fall-Through Optimization (QuickBuffers)
597      int tag = input.readTag();
598      while (true) {
599        switch (tag) {
600          case 8: {
601            // numStates
602            numStates = input.readUInt32();
603            bitField0_ |= 0x00000001;
604            tag = input.readTag();
605            if (tag != 16) {
606              break;
607            }
608          }
609          case 16: {
610            // numInputs
611            numInputs = input.readUInt32();
612            bitField0_ |= 0x00000002;
613            tag = input.readTag();
614            if (tag != 24) {
615              break;
616            }
617          }
618          case 24: {
619            // numOutputs
620            numOutputs = input.readUInt32();
621            bitField0_ |= 0x00000004;
622            tag = input.readTag();
623            if (tag != 34) {
624              break;
625            }
626          }
627          case 34: {
628            // a
629            input.readMessage(a);
630            bitField0_ |= 0x00000008;
631            tag = input.readTag();
632            if (tag != 42) {
633              break;
634            }
635          }
636          case 42: {
637            // b
638            input.readMessage(b);
639            bitField0_ |= 0x00000010;
640            tag = input.readTag();
641            if (tag != 50) {
642              break;
643            }
644          }
645          case 50: {
646            // c
647            input.readMessage(c);
648            bitField0_ |= 0x00000020;
649            tag = input.readTag();
650            if (tag != 58) {
651              break;
652            }
653          }
654          case 58: {
655            // d
656            input.readMessage(d);
657            bitField0_ |= 0x00000040;
658            tag = input.readTag();
659            if (tag != 0) {
660              break;
661            }
662          }
663          case 0: {
664            return this;
665          }
666          default: {
667            if (!input.skipField(tag)) {
668              return this;
669            }
670            tag = input.readTag();
671            break;
672          }
673        }
674      }
675    }
676
677    @Override
678    public void writeTo(final JsonSink output) throws IOException {
679      output.beginObject();
680      if ((bitField0_ & 0x00000001) != 0) {
681        output.writeUInt32(FieldNames.numStates, numStates);
682      }
683      if ((bitField0_ & 0x00000002) != 0) {
684        output.writeUInt32(FieldNames.numInputs, numInputs);
685      }
686      if ((bitField0_ & 0x00000004) != 0) {
687        output.writeUInt32(FieldNames.numOutputs, numOutputs);
688      }
689      if ((bitField0_ & 0x00000008) != 0) {
690        output.writeMessage(FieldNames.a, a);
691      }
692      if ((bitField0_ & 0x00000010) != 0) {
693        output.writeMessage(FieldNames.b, b);
694      }
695      if ((bitField0_ & 0x00000020) != 0) {
696        output.writeMessage(FieldNames.c, c);
697      }
698      if ((bitField0_ & 0x00000040) != 0) {
699        output.writeMessage(FieldNames.d, d);
700      }
701      output.endObject();
702    }
703
704    @Override
705    public ProtobufLinearSystem mergeFrom(final JsonSource input) throws IOException {
706      if (!input.beginObject()) {
707        return this;
708      }
709      while (!input.isAtEnd()) {
710        switch (input.readFieldHash()) {
711          case 1233856808:
712          case 1643330779: {
713            if (input.isAtField(FieldNames.numStates)) {
714              if (!input.trySkipNullValue()) {
715                numStates = input.readUInt32();
716                bitField0_ |= 0x00000001;
717              }
718            } else {
719              input.skipUnknownField();
720            }
721            break;
722          }
723          case 942472463:
724          case 1351946434: {
725            if (input.isAtField(FieldNames.numInputs)) {
726              if (!input.trySkipNullValue()) {
727                numInputs = input.readUInt32();
728                bitField0_ |= 0x00000002;
729              }
730            } else {
731              input.skipUnknownField();
732            }
733            break;
734          }
735          case 385880364:
736          case 194671577: {
737            if (input.isAtField(FieldNames.numOutputs)) {
738              if (!input.trySkipNullValue()) {
739                numOutputs = input.readUInt32();
740                bitField0_ |= 0x00000004;
741              }
742            } else {
743              input.skipUnknownField();
744            }
745            break;
746          }
747          case 97: {
748            if (input.isAtField(FieldNames.a)) {
749              if (!input.trySkipNullValue()) {
750                input.readMessage(a);
751                bitField0_ |= 0x00000008;
752              }
753            } else {
754              input.skipUnknownField();
755            }
756            break;
757          }
758          case 98: {
759            if (input.isAtField(FieldNames.b)) {
760              if (!input.trySkipNullValue()) {
761                input.readMessage(b);
762                bitField0_ |= 0x00000010;
763              }
764            } else {
765              input.skipUnknownField();
766            }
767            break;
768          }
769          case 99: {
770            if (input.isAtField(FieldNames.c)) {
771              if (!input.trySkipNullValue()) {
772                input.readMessage(c);
773                bitField0_ |= 0x00000020;
774              }
775            } else {
776              input.skipUnknownField();
777            }
778            break;
779          }
780          case 100: {
781            if (input.isAtField(FieldNames.d)) {
782              if (!input.trySkipNullValue()) {
783                input.readMessage(d);
784                bitField0_ |= 0x00000040;
785              }
786            } else {
787              input.skipUnknownField();
788            }
789            break;
790          }
791          default: {
792            input.skipUnknownField();
793            break;
794          }
795        }
796      }
797      input.endObject();
798      return this;
799    }
800
801    @Override
802    public ProtobufLinearSystem clone() {
803      return new ProtobufLinearSystem().copyFrom(this);
804    }
805
806    @Override
807    public boolean isEmpty() {
808      return ((bitField0_) == 0);
809    }
810
811    public static ProtobufLinearSystem parseFrom(final byte[] data) throws
812        InvalidProtocolBufferException {
813      return ProtoMessage.mergeFrom(new ProtobufLinearSystem(), data).checkInitialized();
814    }
815
816    public static ProtobufLinearSystem parseFrom(final ProtoSource input) throws IOException {
817      return ProtoMessage.mergeFrom(new ProtobufLinearSystem(), input).checkInitialized();
818    }
819
820    public static ProtobufLinearSystem parseFrom(final JsonSource input) throws IOException {
821      return ProtoMessage.mergeFrom(new ProtobufLinearSystem(), input).checkInitialized();
822    }
823
824    /**
825     * @return factory for creating ProtobufLinearSystem messages
826     */
827    public static MessageFactory<ProtobufLinearSystem> getFactory() {
828      return ProtobufLinearSystemFactory.INSTANCE;
829    }
830
831    /**
832     * @return this type's descriptor.
833     */
834    public static Descriptors.Descriptor getDescriptor() {
835      return System.wpi_proto_ProtobufLinearSystem_descriptor;
836    }
837
838    private enum ProtobufLinearSystemFactory implements MessageFactory<ProtobufLinearSystem> {
839      INSTANCE;
840
841      @Override
842      public ProtobufLinearSystem create() {
843        return ProtobufLinearSystem.newInstance();
844      }
845    }
846
847    /**
848     * Contains name constants used for serializing JSON
849     */
850    static class FieldNames {
851      static final FieldName numStates = FieldName.forField("numStates", "num_states");
852
853      static final FieldName numInputs = FieldName.forField("numInputs", "num_inputs");
854
855      static final FieldName numOutputs = FieldName.forField("numOutputs", "num_outputs");
856
857      static final FieldName a = FieldName.forField("a");
858
859      static final FieldName b = FieldName.forField("b");
860
861      static final FieldName c = FieldName.forField("c");
862
863      static final FieldName d = FieldName.forField("d");
864    }
865  }
866}