001/**
002 * Autogenerated by Avro
003 *
004 * DO NOT EDIT DIRECTLY
005 */
006package org.apache.reef.bridge.message;
007
008import org.apache.avro.specific.SpecificData;
009
010@SuppressWarnings("all")
011/** Container message for all Java/CLR bridge messages in the protocol. */
012@org.apache.avro.specific.AvroGenerated
013public class BridgeInterop extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
014  private static final long serialVersionUID = 1683981483945214147L;
015  public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"BridgeInterop\",\"namespace\":\"org.apache.reef.bridge.message\",\"doc\":\"Container message for all Java/CLR bridge messages in the protocol.\",\"fields\":[{\"name\":\"sequence\",\"type\":\"long\",\"doc\":\"The unique squence identifier of the message in the protocol stream.\"},{\"name\":\"messageType\",\"type\":{\"type\":\"enum\",\"name\":\"MessageType\",\"doc\":\"An enumeration of all possible Java/C# bridge protocol messages.\",\"symbols\":[\"SetupBridge\",\"SystemOnStart\",\"Acknowledgement\"]},\"doc\":\"The type of the bridge Java/CLR interop message.\"},{\"name\":\"message\",\"type\":[{\"type\":\"record\",\"name\":\"SetupBridge\",\"doc\":\"Notify the C# bridge of the http port of the Java bridge webserver.\",\"fields\":[{\"name\":\"httpServerPortNumber\",\"type\":\"int\",\"doc\":\"The Java bridge http server port number.\"}]},{\"type\":\"record\",\"name\":\"SystemOnStart\",\"doc\":\"Notify the C# bridge the system is now running.\",\"fields\":[{\"name\":\"dateTime\",\"type\":\"long\",\"doc\":\"Date time in seconds as a long since January 1, 1970\"}]},{\"type\":\"record\",\"name\":\"Acknowledgement\",\"doc\":\"The Acknowledgement message is sent to the Java bridge to acknowledge receipt and processing of a specific message.\",\"fields\":[{\"name\":\"messageIdentifier\",\"type\":\"long\",\"doc\":\"The message identifier of the message that was successfully processed.\"}]},{\"type\":\"array\",\"items\":\"bytes\"}],\"doc\":\"A union which contains the actual message.\"}]}");
016  public static org.apache.avro.Schema getClassSchema() { return SCHEMA$; }
017  /** The unique squence identifier of the message in the protocol stream. */
018  @Deprecated public long sequence;
019  /** The type of the bridge Java/CLR interop message. */
020  @Deprecated public org.apache.reef.bridge.message.MessageType messageType;
021  /** A union which contains the actual message. */
022  @Deprecated public java.lang.Object message;
023
024  /**
025   * Default constructor.  Note that this does not initialize fields
026   * to their default values from the schema.  If that is desired then
027   * one should use <code>newBuilder()</code>.
028   */
029  public BridgeInterop() {}
030
031  /**
032   * All-args constructor.
033   * @param sequence The unique squence identifier of the message in the protocol stream.
034   * @param messageType The type of the bridge Java/CLR interop message.
035   * @param message A union which contains the actual message.
036   */
037  public BridgeInterop(java.lang.Long sequence, org.apache.reef.bridge.message.MessageType messageType, java.lang.Object message) {
038    this.sequence = sequence;
039    this.messageType = messageType;
040    this.message = message;
041  }
042
043  public org.apache.avro.Schema getSchema() { return SCHEMA$; }
044  // Used by DatumWriter.  Applications should not call.
045  public java.lang.Object get(int field$) {
046    switch (field$) {
047    case 0: return sequence;
048    case 1: return messageType;
049    case 2: return message;
050    default: throw new org.apache.avro.AvroRuntimeException("Bad index");
051    }
052  }
053
054  // Used by DatumReader.  Applications should not call.
055  @SuppressWarnings(value="unchecked")
056  public void put(int field$, java.lang.Object value$) {
057    switch (field$) {
058    case 0: sequence = (java.lang.Long)value$; break;
059    case 1: messageType = (org.apache.reef.bridge.message.MessageType)value$; break;
060    case 2: message = (java.lang.Object)value$; break;
061    default: throw new org.apache.avro.AvroRuntimeException("Bad index");
062    }
063  }
064
065  /**
066   * Gets the value of the 'sequence' field.
067   * @return The unique squence identifier of the message in the protocol stream.
068   */
069  public java.lang.Long getSequence() {
070    return sequence;
071  }
072
073  /**
074   * Sets the value of the 'sequence' field.
075   * The unique squence identifier of the message in the protocol stream.
076   * @param value the value to set.
077   */
078  public void setSequence(java.lang.Long value) {
079    this.sequence = value;
080  }
081
082  /**
083   * Gets the value of the 'messageType' field.
084   * @return The type of the bridge Java/CLR interop message.
085   */
086  public org.apache.reef.bridge.message.MessageType getMessageType() {
087    return messageType;
088  }
089
090  /**
091   * Sets the value of the 'messageType' field.
092   * The type of the bridge Java/CLR interop message.
093   * @param value the value to set.
094   */
095  public void setMessageType(org.apache.reef.bridge.message.MessageType value) {
096    this.messageType = value;
097  }
098
099  /**
100   * Gets the value of the 'message' field.
101   * @return A union which contains the actual message.
102   */
103  public java.lang.Object getMessage() {
104    return message;
105  }
106
107  /**
108   * Sets the value of the 'message' field.
109   * A union which contains the actual message.
110   * @param value the value to set.
111   */
112  public void setMessage(java.lang.Object value) {
113    this.message = value;
114  }
115
116  /**
117   * Creates a new BridgeInterop RecordBuilder.
118   * @return A new BridgeInterop RecordBuilder
119   */
120  public static org.apache.reef.bridge.message.BridgeInterop.Builder newBuilder() {
121    return new org.apache.reef.bridge.message.BridgeInterop.Builder();
122  }
123
124  /**
125   * Creates a new BridgeInterop RecordBuilder by copying an existing Builder.
126   * @param other The existing builder to copy.
127   * @return A new BridgeInterop RecordBuilder
128   */
129  public static org.apache.reef.bridge.message.BridgeInterop.Builder newBuilder(org.apache.reef.bridge.message.BridgeInterop.Builder other) {
130    return new org.apache.reef.bridge.message.BridgeInterop.Builder(other);
131  }
132
133  /**
134   * Creates a new BridgeInterop RecordBuilder by copying an existing BridgeInterop instance.
135   * @param other The existing instance to copy.
136   * @return A new BridgeInterop RecordBuilder
137   */
138  public static org.apache.reef.bridge.message.BridgeInterop.Builder newBuilder(org.apache.reef.bridge.message.BridgeInterop other) {
139    return new org.apache.reef.bridge.message.BridgeInterop.Builder(other);
140  }
141
142  /**
143   * RecordBuilder for BridgeInterop instances.
144   */
145  public static class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase<BridgeInterop>
146    implements org.apache.avro.data.RecordBuilder<BridgeInterop> {
147
148    /** The unique squence identifier of the message in the protocol stream. */
149    private long sequence;
150    /** The type of the bridge Java/CLR interop message. */
151    private org.apache.reef.bridge.message.MessageType messageType;
152    /** A union which contains the actual message. */
153    private java.lang.Object message;
154
155    /** Creates a new Builder */
156    private Builder() {
157      super(SCHEMA$);
158    }
159
160    /**
161     * Creates a Builder by copying an existing Builder.
162     * @param other The existing Builder to copy.
163     */
164    private Builder(org.apache.reef.bridge.message.BridgeInterop.Builder other) {
165      super(other);
166      if (isValidValue(fields()[0], other.sequence)) {
167        this.sequence = data().deepCopy(fields()[0].schema(), other.sequence);
168        fieldSetFlags()[0] = true;
169      }
170      if (isValidValue(fields()[1], other.messageType)) {
171        this.messageType = data().deepCopy(fields()[1].schema(), other.messageType);
172        fieldSetFlags()[1] = true;
173      }
174      if (isValidValue(fields()[2], other.message)) {
175        this.message = data().deepCopy(fields()[2].schema(), other.message);
176        fieldSetFlags()[2] = true;
177      }
178    }
179
180    /**
181     * Creates a Builder by copying an existing BridgeInterop instance
182     * @param other The existing instance to copy.
183     */
184    private Builder(org.apache.reef.bridge.message.BridgeInterop other) {
185            super(SCHEMA$);
186      if (isValidValue(fields()[0], other.sequence)) {
187        this.sequence = data().deepCopy(fields()[0].schema(), other.sequence);
188        fieldSetFlags()[0] = true;
189      }
190      if (isValidValue(fields()[1], other.messageType)) {
191        this.messageType = data().deepCopy(fields()[1].schema(), other.messageType);
192        fieldSetFlags()[1] = true;
193      }
194      if (isValidValue(fields()[2], other.message)) {
195        this.message = data().deepCopy(fields()[2].schema(), other.message);
196        fieldSetFlags()[2] = true;
197      }
198    }
199
200    /**
201      * Gets the value of the 'sequence' field.
202      * The unique squence identifier of the message in the protocol stream.
203      * @return The value.
204      */
205    public java.lang.Long getSequence() {
206      return sequence;
207    }
208
209    /**
210      * Sets the value of the 'sequence' field.
211      * The unique squence identifier of the message in the protocol stream.
212      * @param value The value of 'sequence'.
213      * @return This builder.
214      */
215    public org.apache.reef.bridge.message.BridgeInterop.Builder setSequence(long value) {
216      validate(fields()[0], value);
217      this.sequence = value;
218      fieldSetFlags()[0] = true;
219      return this;
220    }
221
222    /**
223      * Checks whether the 'sequence' field has been set.
224      * The unique squence identifier of the message in the protocol stream.
225      * @return True if the 'sequence' field has been set, false otherwise.
226      */
227    public boolean hasSequence() {
228      return fieldSetFlags()[0];
229    }
230
231
232    /**
233      * Clears the value of the 'sequence' field.
234      * The unique squence identifier of the message in the protocol stream.
235      * @return This builder.
236      */
237    public org.apache.reef.bridge.message.BridgeInterop.Builder clearSequence() {
238      fieldSetFlags()[0] = false;
239      return this;
240    }
241
242    /**
243      * Gets the value of the 'messageType' field.
244      * The type of the bridge Java/CLR interop message.
245      * @return The value.
246      */
247    public org.apache.reef.bridge.message.MessageType getMessageType() {
248      return messageType;
249    }
250
251    /**
252      * Sets the value of the 'messageType' field.
253      * The type of the bridge Java/CLR interop message.
254      * @param value The value of 'messageType'.
255      * @return This builder.
256      */
257    public org.apache.reef.bridge.message.BridgeInterop.Builder setMessageType(org.apache.reef.bridge.message.MessageType value) {
258      validate(fields()[1], value);
259      this.messageType = value;
260      fieldSetFlags()[1] = true;
261      return this;
262    }
263
264    /**
265      * Checks whether the 'messageType' field has been set.
266      * The type of the bridge Java/CLR interop message.
267      * @return True if the 'messageType' field has been set, false otherwise.
268      */
269    public boolean hasMessageType() {
270      return fieldSetFlags()[1];
271    }
272
273
274    /**
275      * Clears the value of the 'messageType' field.
276      * The type of the bridge Java/CLR interop message.
277      * @return This builder.
278      */
279    public org.apache.reef.bridge.message.BridgeInterop.Builder clearMessageType() {
280      messageType = null;
281      fieldSetFlags()[1] = false;
282      return this;
283    }
284
285    /**
286      * Gets the value of the 'message' field.
287      * A union which contains the actual message.
288      * @return The value.
289      */
290    public java.lang.Object getMessage() {
291      return message;
292    }
293
294    /**
295      * Sets the value of the 'message' field.
296      * A union which contains the actual message.
297      * @param value The value of 'message'.
298      * @return This builder.
299      */
300    public org.apache.reef.bridge.message.BridgeInterop.Builder setMessage(java.lang.Object value) {
301      validate(fields()[2], value);
302      this.message = value;
303      fieldSetFlags()[2] = true;
304      return this;
305    }
306
307    /**
308      * Checks whether the 'message' field has been set.
309      * A union which contains the actual message.
310      * @return True if the 'message' field has been set, false otherwise.
311      */
312    public boolean hasMessage() {
313      return fieldSetFlags()[2];
314    }
315
316
317    /**
318      * Clears the value of the 'message' field.
319      * A union which contains the actual message.
320      * @return This builder.
321      */
322    public org.apache.reef.bridge.message.BridgeInterop.Builder clearMessage() {
323      message = null;
324      fieldSetFlags()[2] = false;
325      return this;
326    }
327
328    @Override
329    public BridgeInterop build() {
330      try {
331        BridgeInterop record = new BridgeInterop();
332        record.sequence = fieldSetFlags()[0] ? this.sequence : (java.lang.Long) defaultValue(fields()[0]);
333        record.messageType = fieldSetFlags()[1] ? this.messageType : (org.apache.reef.bridge.message.MessageType) defaultValue(fields()[1]);
334        record.message = fieldSetFlags()[2] ? this.message : (java.lang.Object) defaultValue(fields()[2]);
335        return record;
336      } catch (Exception e) {
337        throw new org.apache.avro.AvroRuntimeException(e);
338      }
339    }
340  }
341
342  private static final org.apache.avro.io.DatumWriter
343    WRITER$ = new org.apache.avro.specific.SpecificDatumWriter(SCHEMA$);
344
345  @Override public void writeExternal(java.io.ObjectOutput out)
346    throws java.io.IOException {
347    WRITER$.write(this, SpecificData.getEncoder(out));
348  }
349
350  private static final org.apache.avro.io.DatumReader
351    READER$ = new org.apache.avro.specific.SpecificDatumReader(SCHEMA$);
352
353  @Override public void readExternal(java.io.ObjectInput in)
354    throws java.io.IOException {
355    READER$.read(this, SpecificData.getDecoder(in));
356  }
357
358}