This is an automated email from the ASF dual-hosted git repository.

dimuthuupe pushed a commit to branch param-sweep
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/param-sweep by this push:
     new d501aaf  Adding missing thrift models
d501aaf is described below

commit d501aaf1d393643fd3b3a5cf241c9305cfef292b
Author: Dimuthu Wannipurage <[email protected]>
AuthorDate: Tue Jun 9 23:57:47 2020 -0400

    Adding missing thrift models
---
 .../experiment/ExperimentParsingTemplate.java      | 480 ++++++++++++
 .../apache/airavata/model/job/ChildJobModel.java   | 839 +++++++++++++++++++++
 .../airavata/model/status/ChildJobStatus.java      | 708 +++++++++++++++++
 3 files changed, 2027 insertions(+)

diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentParsingTemplate.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentParsingTemplate.java
new file mode 100644
index 0000000..8d4ea44
--- /dev/null
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentParsingTemplate.java
@@ -0,0 +1,480 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.experiment;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.10.0)")
+public class ExperimentParsingTemplate implements 
org.apache.thrift.TBase<ExperimentParsingTemplate, 
ExperimentParsingTemplate._Fields>, java.io.Serializable, Cloneable, 
Comparable<ExperimentParsingTemplate> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("ExperimentParsingTemplate");
+
+  private static final org.apache.thrift.protocol.TField 
EXPERIMENT_ID_FIELD_DESC = new 
org.apache.thrift.protocol.TField("experimentId", 
org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField 
PARSING_TEMPLATE_ID_FIELD_DESC = new 
org.apache.thrift.protocol.TField("parsingTemplateId", 
org.apache.thrift.protocol.TType.STRING, (short)2);
+
+  private static final org.apache.thrift.scheme.SchemeFactory 
STANDARD_SCHEME_FACTORY = new ExperimentParsingTemplateStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory 
TUPLE_SCHEME_FACTORY = new ExperimentParsingTemplateTupleSchemeFactory();
+
+  private java.lang.String experimentId; // required
+  private java.lang.String parsingTemplateId; // required
+
+  /** The set of fields this struct contains, along with convenience methods 
for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    EXPERIMENT_ID((short)1, "experimentId"),
+    PARSING_TEMPLATE_ID((short)2, "parsingTemplateId");
+
+    private static final java.util.Map<java.lang.String, _Fields> byName = new 
java.util.HashMap<java.lang.String, _Fields>();
+
+    static {
+      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not 
found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // EXPERIMENT_ID
+          return EXPERIMENT_ID;
+        case 2: // PARSING_TEMPLATE_ID
+          return PARSING_TEMPLATE_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new java.lang.IllegalArgumentException("Field 
" + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(java.lang.String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final java.lang.String _fieldName;
+
+    _Fields(short thriftId, java.lang.String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public java.lang.String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final java.util.Map<_Fields, 
org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = 
new java.util.EnumMap<_Fields, 
org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.EXPERIMENT_ID, new 
org.apache.thrift.meta_data.FieldMetaData("experimentId", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PARSING_TEMPLATE_ID, new 
org.apache.thrift.meta_data.FieldMetaData("parsingTemplateId", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExperimentParsingTemplate.class,
 metaDataMap);
+  }
+
+  public ExperimentParsingTemplate() {
+  }
+
+  public ExperimentParsingTemplate(
+    java.lang.String experimentId,
+    java.lang.String parsingTemplateId)
+  {
+    this();
+    this.experimentId = experimentId;
+    this.parsingTemplateId = parsingTemplateId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ExperimentParsingTemplate(ExperimentParsingTemplate other) {
+    if (other.isSetExperimentId()) {
+      this.experimentId = other.experimentId;
+    }
+    if (other.isSetParsingTemplateId()) {
+      this.parsingTemplateId = other.parsingTemplateId;
+    }
+  }
+
+  public ExperimentParsingTemplate deepCopy() {
+    return new ExperimentParsingTemplate(this);
+  }
+
+  @Override
+  public void clear() {
+    this.experimentId = null;
+    this.parsingTemplateId = null;
+  }
+
+  public java.lang.String getExperimentId() {
+    return this.experimentId;
+  }
+
+  public void setExperimentId(java.lang.String experimentId) {
+    this.experimentId = experimentId;
+  }
+
+  public void unsetExperimentId() {
+    this.experimentId = null;
+  }
+
+  /** Returns true if field experimentId is set (has been assigned a value) 
and false otherwise */
+  public boolean isSetExperimentId() {
+    return this.experimentId != null;
+  }
+
+  public void setExperimentIdIsSet(boolean value) {
+    if (!value) {
+      this.experimentId = null;
+    }
+  }
+
+  public java.lang.String getParsingTemplateId() {
+    return this.parsingTemplateId;
+  }
+
+  public void setParsingTemplateId(java.lang.String parsingTemplateId) {
+    this.parsingTemplateId = parsingTemplateId;
+  }
+
+  public void unsetParsingTemplateId() {
+    this.parsingTemplateId = null;
+  }
+
+  /** Returns true if field parsingTemplateId is set (has been assigned a 
value) and false otherwise */
+  public boolean isSetParsingTemplateId() {
+    return this.parsingTemplateId != null;
+  }
+
+  public void setParsingTemplateIdIsSet(boolean value) {
+    if (!value) {
+      this.parsingTemplateId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, java.lang.Object value) {
+    switch (field) {
+    case EXPERIMENT_ID:
+      if (value == null) {
+        unsetExperimentId();
+      } else {
+        setExperimentId((java.lang.String)value);
+      }
+      break;
+
+    case PARSING_TEMPLATE_ID:
+      if (value == null) {
+        unsetParsingTemplateId();
+      } else {
+        setParsingTemplateId((java.lang.String)value);
+      }
+      break;
+
+    }
+  }
+
+  public java.lang.Object getFieldValue(_Fields field) {
+    switch (field) {
+    case EXPERIMENT_ID:
+      return getExperimentId();
+
+    case PARSING_TEMPLATE_ID:
+      return getParsingTemplateId();
+
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned 
a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new java.lang.IllegalArgumentException();
+    }
+
+    switch (field) {
+    case EXPERIMENT_ID:
+      return isSetExperimentId();
+    case PARSING_TEMPLATE_ID:
+      return isSetParsingTemplateId();
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(java.lang.Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ExperimentParsingTemplate)
+      return this.equals((ExperimentParsingTemplate)that);
+    return false;
+  }
+
+  public boolean equals(ExperimentParsingTemplate that) {
+    if (that == null)
+      return false;
+    if (this == that)
+      return true;
+
+    boolean this_present_experimentId = true && this.isSetExperimentId();
+    boolean that_present_experimentId = true && that.isSetExperimentId();
+    if (this_present_experimentId || that_present_experimentId) {
+      if (!(this_present_experimentId && that_present_experimentId))
+        return false;
+      if (!this.experimentId.equals(that.experimentId))
+        return false;
+    }
+
+    boolean this_present_parsingTemplateId = true && 
this.isSetParsingTemplateId();
+    boolean that_present_parsingTemplateId = true && 
that.isSetParsingTemplateId();
+    if (this_present_parsingTemplateId || that_present_parsingTemplateId) {
+      if (!(this_present_parsingTemplateId && that_present_parsingTemplateId))
+        return false;
+      if (!this.parsingTemplateId.equals(that.parsingTemplateId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int hashCode = 1;
+
+    hashCode = hashCode * 8191 + ((isSetExperimentId()) ? 131071 : 524287);
+    if (isSetExperimentId())
+      hashCode = hashCode * 8191 + experimentId.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetParsingTemplateId()) ? 131071 : 
524287);
+    if (isSetParsingTemplateId())
+      hashCode = hashCode * 8191 + parsingTemplateId.hashCode();
+
+    return hashCode;
+  }
+
+  @Override
+  public int compareTo(ExperimentParsingTemplate other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = 
java.lang.Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentId()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
java.lang.Boolean.valueOf(isSetParsingTemplateId()).compareTo(other.isSetParsingTemplateId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetParsingTemplateId()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.parsingTemplateId, 
other.parsingTemplateId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws 
org.apache.thrift.TException {
+    scheme(iprot).read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws 
org.apache.thrift.TException {
+    scheme(oprot).write(oprot, this);
+  }
+
+  @Override
+  public java.lang.String toString() {
+    java.lang.StringBuilder sb = new 
java.lang.StringBuilder("ExperimentParsingTemplate(");
+    boolean first = true;
+
+    sb.append("experimentId:");
+    if (this.experimentId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("parsingTemplateId:");
+    if (this.parsingTemplateId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.parsingTemplateId);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetExperimentId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'experimentId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetParsingTemplateId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'parsingTemplateId' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws 
java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws 
java.io.IOException, java.lang.ClassNotFoundException {
+    try {
+      read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class ExperimentParsingTemplateStandardSchemeFactory 
implements org.apache.thrift.scheme.SchemeFactory {
+    public ExperimentParsingTemplateStandardScheme getScheme() {
+      return new ExperimentParsingTemplateStandardScheme();
+    }
+  }
+
+  private static class ExperimentParsingTemplateStandardScheme extends 
org.apache.thrift.scheme.StandardScheme<ExperimentParsingTemplate> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, 
ExperimentParsingTemplate struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // EXPERIMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentId = iprot.readString();
+              struct.setExperimentIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // PARSING_TEMPLATE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.parsingTemplateId = iprot.readString();
+              struct.setParsingTemplateIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, 
ExperimentParsingTemplate struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.experimentId != null) {
+        oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.experimentId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.parsingTemplateId != null) {
+        oprot.writeFieldBegin(PARSING_TEMPLATE_ID_FIELD_DESC);
+        oprot.writeString(struct.parsingTemplateId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ExperimentParsingTemplateTupleSchemeFactory implements 
org.apache.thrift.scheme.SchemeFactory {
+    public ExperimentParsingTemplateTupleScheme getScheme() {
+      return new ExperimentParsingTemplateTupleScheme();
+    }
+  }
+
+  private static class ExperimentParsingTemplateTupleScheme extends 
org.apache.thrift.scheme.TupleScheme<ExperimentParsingTemplate> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, 
ExperimentParsingTemplate struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol oprot = 
(org.apache.thrift.protocol.TTupleProtocol) prot;
+      oprot.writeString(struct.experimentId);
+      oprot.writeString(struct.parsingTemplateId);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, 
ExperimentParsingTemplate struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol iprot = 
(org.apache.thrift.protocol.TTupleProtocol) prot;
+      struct.experimentId = iprot.readString();
+      struct.setExperimentIdIsSet(true);
+      struct.parsingTemplateId = iprot.readString();
+      struct.setParsingTemplateIdIsSet(true);
+    }
+  }
+
+  private static <S extends org.apache.thrift.scheme.IScheme> S 
scheme(org.apache.thrift.protocol.TProtocol proto) {
+    return 
(org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? 
STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+  }
+}
+
diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/ChildJobModel.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/ChildJobModel.java
new file mode 100644
index 0000000..1f360e3
--- /dev/null
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/ChildJobModel.java
@@ -0,0 +1,839 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.job;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.10.0)")
+public class ChildJobModel implements org.apache.thrift.TBase<ChildJobModel, 
ChildJobModel._Fields>, java.io.Serializable, Cloneable, 
Comparable<ChildJobModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("ChildJobModel");
+
+  private static final org.apache.thrift.protocol.TField 
CHILD_JOB_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("childJobId", 
org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField 
PARENT_JOB_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("parentJobId", 
org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField 
PARENT_TASK_ID_FIELD_DESC = new 
org.apache.thrift.protocol.TField("parentTaskId", 
org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField JOB_INDEX_FIELD_DESC 
= new org.apache.thrift.protocol.TField("jobIndex", 
org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField 
JOB_STATUSES_FIELD_DESC = new org.apache.thrift.protocol.TField("jobStatuses", 
org.apache.thrift.protocol.TType.LIST, (short)5);
+
+  private static final org.apache.thrift.scheme.SchemeFactory 
STANDARD_SCHEME_FACTORY = new ChildJobModelStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory 
TUPLE_SCHEME_FACTORY = new ChildJobModelTupleSchemeFactory();
+
+  private java.lang.String childJobId; // required
+  private java.lang.String parentJobId; // required
+  private java.lang.String parentTaskId; // required
+  private int jobIndex; // required
+  private java.util.List<org.apache.airavata.model.status.ChildJobStatus> 
jobStatuses; // optional
+
+  /** The set of fields this struct contains, along with convenience methods 
for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    CHILD_JOB_ID((short)1, "childJobId"),
+    PARENT_JOB_ID((short)2, "parentJobId"),
+    PARENT_TASK_ID((short)3, "parentTaskId"),
+    JOB_INDEX((short)4, "jobIndex"),
+    JOB_STATUSES((short)5, "jobStatuses");
+
+    private static final java.util.Map<java.lang.String, _Fields> byName = new 
java.util.HashMap<java.lang.String, _Fields>();
+
+    static {
+      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not 
found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // CHILD_JOB_ID
+          return CHILD_JOB_ID;
+        case 2: // PARENT_JOB_ID
+          return PARENT_JOB_ID;
+        case 3: // PARENT_TASK_ID
+          return PARENT_TASK_ID;
+        case 4: // JOB_INDEX
+          return JOB_INDEX;
+        case 5: // JOB_STATUSES
+          return JOB_STATUSES;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new java.lang.IllegalArgumentException("Field 
" + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(java.lang.String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final java.lang.String _fieldName;
+
+    _Fields(short thriftId, java.lang.String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public java.lang.String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __JOBINDEX_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.JOB_STATUSES};
+  public static final java.util.Map<_Fields, 
org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = 
new java.util.EnumMap<_Fields, 
org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.CHILD_JOB_ID, new 
org.apache.thrift.meta_data.FieldMetaData("childJobId", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PARENT_JOB_ID, new 
org.apache.thrift.meta_data.FieldMetaData("parentJobId", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PARENT_TASK_ID, new 
org.apache.thrift.meta_data.FieldMetaData("parentTaskId", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.JOB_INDEX, new 
org.apache.thrift.meta_data.FieldMetaData("jobIndex", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.JOB_STATUSES, new 
org.apache.thrift.meta_data.FieldMetaData("jobStatuses", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 org.apache.airavata.model.status.ChildJobStatus.class))));
+    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ChildJobModel.class,
 metaDataMap);
+  }
+
+  public ChildJobModel() {
+  }
+
+  public ChildJobModel(
+    java.lang.String childJobId,
+    java.lang.String parentJobId,
+    java.lang.String parentTaskId,
+    int jobIndex)
+  {
+    this();
+    this.childJobId = childJobId;
+    this.parentJobId = parentJobId;
+    this.parentTaskId = parentTaskId;
+    this.jobIndex = jobIndex;
+    setJobIndexIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ChildJobModel(ChildJobModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetChildJobId()) {
+      this.childJobId = other.childJobId;
+    }
+    if (other.isSetParentJobId()) {
+      this.parentJobId = other.parentJobId;
+    }
+    if (other.isSetParentTaskId()) {
+      this.parentTaskId = other.parentTaskId;
+    }
+    this.jobIndex = other.jobIndex;
+    if (other.isSetJobStatuses()) {
+      java.util.List<org.apache.airavata.model.status.ChildJobStatus> 
__this__jobStatuses = new 
java.util.ArrayList<org.apache.airavata.model.status.ChildJobStatus>(other.jobStatuses.size());
+      for (org.apache.airavata.model.status.ChildJobStatus other_element : 
other.jobStatuses) {
+        __this__jobStatuses.add(new 
org.apache.airavata.model.status.ChildJobStatus(other_element));
+      }
+      this.jobStatuses = __this__jobStatuses;
+    }
+  }
+
+  public ChildJobModel deepCopy() {
+    return new ChildJobModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.childJobId = null;
+    this.parentJobId = null;
+    this.parentTaskId = null;
+    setJobIndexIsSet(false);
+    this.jobIndex = 0;
+    this.jobStatuses = null;
+  }
+
+  public java.lang.String getChildJobId() {
+    return this.childJobId;
+  }
+
+  public void setChildJobId(java.lang.String childJobId) {
+    this.childJobId = childJobId;
+  }
+
+  public void unsetChildJobId() {
+    this.childJobId = null;
+  }
+
+  /** Returns true if field childJobId is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetChildJobId() {
+    return this.childJobId != null;
+  }
+
+  public void setChildJobIdIsSet(boolean value) {
+    if (!value) {
+      this.childJobId = null;
+    }
+  }
+
+  public java.lang.String getParentJobId() {
+    return this.parentJobId;
+  }
+
+  public void setParentJobId(java.lang.String parentJobId) {
+    this.parentJobId = parentJobId;
+  }
+
+  public void unsetParentJobId() {
+    this.parentJobId = null;
+  }
+
+  /** Returns true if field parentJobId is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetParentJobId() {
+    return this.parentJobId != null;
+  }
+
+  public void setParentJobIdIsSet(boolean value) {
+    if (!value) {
+      this.parentJobId = null;
+    }
+  }
+
+  public java.lang.String getParentTaskId() {
+    return this.parentTaskId;
+  }
+
+  public void setParentTaskId(java.lang.String parentTaskId) {
+    this.parentTaskId = parentTaskId;
+  }
+
+  public void unsetParentTaskId() {
+    this.parentTaskId = null;
+  }
+
+  /** Returns true if field parentTaskId is set (has been assigned a value) 
and false otherwise */
+  public boolean isSetParentTaskId() {
+    return this.parentTaskId != null;
+  }
+
+  public void setParentTaskIdIsSet(boolean value) {
+    if (!value) {
+      this.parentTaskId = null;
+    }
+  }
+
+  public int getJobIndex() {
+    return this.jobIndex;
+  }
+
+  public void setJobIndex(int jobIndex) {
+    this.jobIndex = jobIndex;
+    setJobIndexIsSet(true);
+  }
+
+  public void unsetJobIndex() {
+    __isset_bitfield = 
org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __JOBINDEX_ISSET_ID);
+  }
+
+  /** Returns true if field jobIndex is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetJobIndex() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, 
__JOBINDEX_ISSET_ID);
+  }
+
+  public void setJobIndexIsSet(boolean value) {
+    __isset_bitfield = 
org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __JOBINDEX_ISSET_ID, 
value);
+  }
+
+  public int getJobStatusesSize() {
+    return (this.jobStatuses == null) ? 0 : this.jobStatuses.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.status.ChildJobStatus> 
getJobStatusesIterator() {
+    return (this.jobStatuses == null) ? null : this.jobStatuses.iterator();
+  }
+
+  public void addToJobStatuses(org.apache.airavata.model.status.ChildJobStatus 
elem) {
+    if (this.jobStatuses == null) {
+      this.jobStatuses = new 
java.util.ArrayList<org.apache.airavata.model.status.ChildJobStatus>();
+    }
+    this.jobStatuses.add(elem);
+  }
+
+  public java.util.List<org.apache.airavata.model.status.ChildJobStatus> 
getJobStatuses() {
+    return this.jobStatuses;
+  }
+
+  public void 
setJobStatuses(java.util.List<org.apache.airavata.model.status.ChildJobStatus> 
jobStatuses) {
+    this.jobStatuses = jobStatuses;
+  }
+
+  public void unsetJobStatuses() {
+    this.jobStatuses = null;
+  }
+
+  /** Returns true if field jobStatuses is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetJobStatuses() {
+    return this.jobStatuses != null;
+  }
+
+  public void setJobStatusesIsSet(boolean value) {
+    if (!value) {
+      this.jobStatuses = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, java.lang.Object value) {
+    switch (field) {
+    case CHILD_JOB_ID:
+      if (value == null) {
+        unsetChildJobId();
+      } else {
+        setChildJobId((java.lang.String)value);
+      }
+      break;
+
+    case PARENT_JOB_ID:
+      if (value == null) {
+        unsetParentJobId();
+      } else {
+        setParentJobId((java.lang.String)value);
+      }
+      break;
+
+    case PARENT_TASK_ID:
+      if (value == null) {
+        unsetParentTaskId();
+      } else {
+        setParentTaskId((java.lang.String)value);
+      }
+      break;
+
+    case JOB_INDEX:
+      if (value == null) {
+        unsetJobIndex();
+      } else {
+        setJobIndex((java.lang.Integer)value);
+      }
+      break;
+
+    case JOB_STATUSES:
+      if (value == null) {
+        unsetJobStatuses();
+      } else {
+        
setJobStatuses((java.util.List<org.apache.airavata.model.status.ChildJobStatus>)value);
+      }
+      break;
+
+    }
+  }
+
+  public java.lang.Object getFieldValue(_Fields field) {
+    switch (field) {
+    case CHILD_JOB_ID:
+      return getChildJobId();
+
+    case PARENT_JOB_ID:
+      return getParentJobId();
+
+    case PARENT_TASK_ID:
+      return getParentTaskId();
+
+    case JOB_INDEX:
+      return getJobIndex();
+
+    case JOB_STATUSES:
+      return getJobStatuses();
+
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned 
a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new java.lang.IllegalArgumentException();
+    }
+
+    switch (field) {
+    case CHILD_JOB_ID:
+      return isSetChildJobId();
+    case PARENT_JOB_ID:
+      return isSetParentJobId();
+    case PARENT_TASK_ID:
+      return isSetParentTaskId();
+    case JOB_INDEX:
+      return isSetJobIndex();
+    case JOB_STATUSES:
+      return isSetJobStatuses();
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(java.lang.Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ChildJobModel)
+      return this.equals((ChildJobModel)that);
+    return false;
+  }
+
+  public boolean equals(ChildJobModel that) {
+    if (that == null)
+      return false;
+    if (this == that)
+      return true;
+
+    boolean this_present_childJobId = true && this.isSetChildJobId();
+    boolean that_present_childJobId = true && that.isSetChildJobId();
+    if (this_present_childJobId || that_present_childJobId) {
+      if (!(this_present_childJobId && that_present_childJobId))
+        return false;
+      if (!this.childJobId.equals(that.childJobId))
+        return false;
+    }
+
+    boolean this_present_parentJobId = true && this.isSetParentJobId();
+    boolean that_present_parentJobId = true && that.isSetParentJobId();
+    if (this_present_parentJobId || that_present_parentJobId) {
+      if (!(this_present_parentJobId && that_present_parentJobId))
+        return false;
+      if (!this.parentJobId.equals(that.parentJobId))
+        return false;
+    }
+
+    boolean this_present_parentTaskId = true && this.isSetParentTaskId();
+    boolean that_present_parentTaskId = true && that.isSetParentTaskId();
+    if (this_present_parentTaskId || that_present_parentTaskId) {
+      if (!(this_present_parentTaskId && that_present_parentTaskId))
+        return false;
+      if (!this.parentTaskId.equals(that.parentTaskId))
+        return false;
+    }
+
+    boolean this_present_jobIndex = true;
+    boolean that_present_jobIndex = true;
+    if (this_present_jobIndex || that_present_jobIndex) {
+      if (!(this_present_jobIndex && that_present_jobIndex))
+        return false;
+      if (this.jobIndex != that.jobIndex)
+        return false;
+    }
+
+    boolean this_present_jobStatuses = true && this.isSetJobStatuses();
+    boolean that_present_jobStatuses = true && that.isSetJobStatuses();
+    if (this_present_jobStatuses || that_present_jobStatuses) {
+      if (!(this_present_jobStatuses && that_present_jobStatuses))
+        return false;
+      if (!this.jobStatuses.equals(that.jobStatuses))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int hashCode = 1;
+
+    hashCode = hashCode * 8191 + ((isSetChildJobId()) ? 131071 : 524287);
+    if (isSetChildJobId())
+      hashCode = hashCode * 8191 + childJobId.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetParentJobId()) ? 131071 : 524287);
+    if (isSetParentJobId())
+      hashCode = hashCode * 8191 + parentJobId.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetParentTaskId()) ? 131071 : 524287);
+    if (isSetParentTaskId())
+      hashCode = hashCode * 8191 + parentTaskId.hashCode();
+
+    hashCode = hashCode * 8191 + jobIndex;
+
+    hashCode = hashCode * 8191 + ((isSetJobStatuses()) ? 131071 : 524287);
+    if (isSetJobStatuses())
+      hashCode = hashCode * 8191 + jobStatuses.hashCode();
+
+    return hashCode;
+  }
+
+  @Override
+  public int compareTo(ChildJobModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = 
java.lang.Boolean.valueOf(isSetChildJobId()).compareTo(other.isSetChildJobId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetChildJobId()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.childJobId, other.childJobId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
java.lang.Boolean.valueOf(isSetParentJobId()).compareTo(other.isSetParentJobId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetParentJobId()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.parentJobId, other.parentJobId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
java.lang.Boolean.valueOf(isSetParentTaskId()).compareTo(other.isSetParentTaskId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetParentTaskId()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.parentTaskId, other.parentTaskId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
java.lang.Boolean.valueOf(isSetJobIndex()).compareTo(other.isSetJobIndex());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobIndex()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobIndex, 
other.jobIndex);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
java.lang.Boolean.valueOf(isSetJobStatuses()).compareTo(other.isSetJobStatuses());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobStatuses()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.jobStatuses, other.jobStatuses);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws 
org.apache.thrift.TException {
+    scheme(iprot).read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws 
org.apache.thrift.TException {
+    scheme(oprot).write(oprot, this);
+  }
+
+  @Override
+  public java.lang.String toString() {
+    java.lang.StringBuilder sb = new java.lang.StringBuilder("ChildJobModel(");
+    boolean first = true;
+
+    sb.append("childJobId:");
+    if (this.childJobId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.childJobId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("parentJobId:");
+    if (this.parentJobId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.parentJobId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("parentTaskId:");
+    if (this.parentTaskId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.parentTaskId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("jobIndex:");
+    sb.append(this.jobIndex);
+    first = false;
+    if (isSetJobStatuses()) {
+      if (!first) sb.append(", ");
+      sb.append("jobStatuses:");
+      if (this.jobStatuses == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.jobStatuses);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetChildJobId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'childJobId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetParentJobId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'parentJobId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetParentTaskId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'parentTaskId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetJobIndex()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'jobIndex' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws 
java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws 
java.io.IOException, java.lang.ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java 
serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class ChildJobModelStandardSchemeFactory implements 
org.apache.thrift.scheme.SchemeFactory {
+    public ChildJobModelStandardScheme getScheme() {
+      return new ChildJobModelStandardScheme();
+    }
+  }
+
+  private static class ChildJobModelStandardScheme extends 
org.apache.thrift.scheme.StandardScheme<ChildJobModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ChildJobModel 
struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // CHILD_JOB_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.childJobId = iprot.readString();
+              struct.setChildJobIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // PARENT_JOB_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.parentJobId = iprot.readString();
+              struct.setParentJobIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 3: // PARENT_TASK_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.parentTaskId = iprot.readString();
+              struct.setParentTaskIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 4: // JOB_INDEX
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.jobIndex = iprot.readI32();
+              struct.setJobIndexIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 5: // JOB_STATUSES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list8 = 
iprot.readListBegin();
+                struct.jobStatuses = new 
java.util.ArrayList<org.apache.airavata.model.status.ChildJobStatus>(_list8.size);
+                org.apache.airavata.model.status.ChildJobStatus _elem9;
+                for (int _i10 = 0; _i10 < _list8.size; ++_i10)
+                {
+                  _elem9 = new 
org.apache.airavata.model.status.ChildJobStatus();
+                  _elem9.read(iprot);
+                  struct.jobStatuses.add(_elem9);
+                }
+                iprot.readListEnd();
+              }
+              struct.setJobStatusesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, 
ChildJobModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.childJobId != null) {
+        oprot.writeFieldBegin(CHILD_JOB_ID_FIELD_DESC);
+        oprot.writeString(struct.childJobId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.parentJobId != null) {
+        oprot.writeFieldBegin(PARENT_JOB_ID_FIELD_DESC);
+        oprot.writeString(struct.parentJobId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.parentTaskId != null) {
+        oprot.writeFieldBegin(PARENT_TASK_ID_FIELD_DESC);
+        oprot.writeString(struct.parentTaskId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(JOB_INDEX_FIELD_DESC);
+      oprot.writeI32(struct.jobIndex);
+      oprot.writeFieldEnd();
+      if (struct.jobStatuses != null) {
+        if (struct.isSetJobStatuses()) {
+          oprot.writeFieldBegin(JOB_STATUSES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, 
struct.jobStatuses.size()));
+            for (org.apache.airavata.model.status.ChildJobStatus _iter11 : 
struct.jobStatuses)
+            {
+              _iter11.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ChildJobModelTupleSchemeFactory implements 
org.apache.thrift.scheme.SchemeFactory {
+    public ChildJobModelTupleScheme getScheme() {
+      return new ChildJobModelTupleScheme();
+    }
+  }
+
+  private static class ChildJobModelTupleScheme extends 
org.apache.thrift.scheme.TupleScheme<ChildJobModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ChildJobModel 
struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol oprot = 
(org.apache.thrift.protocol.TTupleProtocol) prot;
+      oprot.writeString(struct.childJobId);
+      oprot.writeString(struct.parentJobId);
+      oprot.writeString(struct.parentTaskId);
+      oprot.writeI32(struct.jobIndex);
+      java.util.BitSet optionals = new java.util.BitSet();
+      if (struct.isSetJobStatuses()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetJobStatuses()) {
+        {
+          oprot.writeI32(struct.jobStatuses.size());
+          for (org.apache.airavata.model.status.ChildJobStatus _iter12 : 
struct.jobStatuses)
+          {
+            _iter12.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ChildJobModel 
struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol iprot = 
(org.apache.thrift.protocol.TTupleProtocol) prot;
+      struct.childJobId = iprot.readString();
+      struct.setChildJobIdIsSet(true);
+      struct.parentJobId = iprot.readString();
+      struct.setParentJobIdIsSet(true);
+      struct.parentTaskId = iprot.readString();
+      struct.setParentTaskIdIsSet(true);
+      struct.jobIndex = iprot.readI32();
+      struct.setJobIndexIsSet(true);
+      java.util.BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, 
iprot.readI32());
+          struct.jobStatuses = new 
java.util.ArrayList<org.apache.airavata.model.status.ChildJobStatus>(_list13.size);
+          org.apache.airavata.model.status.ChildJobStatus _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+          {
+            _elem14 = new org.apache.airavata.model.status.ChildJobStatus();
+            _elem14.read(iprot);
+            struct.jobStatuses.add(_elem14);
+          }
+        }
+        struct.setJobStatusesIsSet(true);
+      }
+    }
+  }
+
+  private static <S extends org.apache.thrift.scheme.IScheme> S 
scheme(org.apache.thrift.protocol.TProtocol proto) {
+    return 
(org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? 
STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+  }
+}
+
diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ChildJobStatus.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ChildJobStatus.java
new file mode 100644
index 0000000..cb8dbd8
--- /dev/null
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ChildJobStatus.java
@@ -0,0 +1,708 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.status;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.10.0)")
+public class ChildJobStatus implements org.apache.thrift.TBase<ChildJobStatus, 
ChildJobStatus._Fields>, java.io.Serializable, Cloneable, 
Comparable<ChildJobStatus> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("ChildJobStatus");
+
+  private static final org.apache.thrift.protocol.TField JOB_STATE_FIELD_DESC 
= new org.apache.thrift.protocol.TField("jobState", 
org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField 
TIME_OF_STATE_CHANGE_FIELD_DESC = new 
org.apache.thrift.protocol.TField("timeOfStateChange", 
org.apache.thrift.protocol.TType.I64, (short)2);
+  private static final org.apache.thrift.protocol.TField REASON_FIELD_DESC = 
new org.apache.thrift.protocol.TField("reason", 
org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField STATUS_ID_FIELD_DESC 
= new org.apache.thrift.protocol.TField("statusId", 
org.apache.thrift.protocol.TType.STRING, (short)4);
+
+  private static final org.apache.thrift.scheme.SchemeFactory 
STANDARD_SCHEME_FACTORY = new ChildJobStatusStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory 
TUPLE_SCHEME_FACTORY = new ChildJobStatusTupleSchemeFactory();
+
+  private JobState jobState; // required
+  private long timeOfStateChange; // optional
+  private java.lang.String reason; // optional
+  private java.lang.String statusId; // optional
+
+  /** The set of fields this struct contains, along with convenience methods 
for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see JobState
+     */
+    JOB_STATE((short)1, "jobState"),
+    TIME_OF_STATE_CHANGE((short)2, "timeOfStateChange"),
+    REASON((short)3, "reason"),
+    STATUS_ID((short)4, "statusId");
+
+    private static final java.util.Map<java.lang.String, _Fields> byName = new 
java.util.HashMap<java.lang.String, _Fields>();
+
+    static {
+      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not 
found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // JOB_STATE
+          return JOB_STATE;
+        case 2: // TIME_OF_STATE_CHANGE
+          return TIME_OF_STATE_CHANGE;
+        case 3: // REASON
+          return REASON;
+        case 4: // STATUS_ID
+          return STATUS_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new java.lang.IllegalArgumentException("Field 
" + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(java.lang.String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final java.lang.String _fieldName;
+
+    _Fields(short thriftId, java.lang.String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public java.lang.String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __TIMEOFSTATECHANGE_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = 
{_Fields.TIME_OF_STATE_CHANGE,_Fields.REASON,_Fields.STATUS_ID};
+  public static final java.util.Map<_Fields, 
org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = 
new java.util.EnumMap<_Fields, 
org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.JOB_STATE, new 
org.apache.thrift.meta_data.FieldMetaData("jobState", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new 
org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, 
JobState.class)));
+    tmpMap.put(_Fields.TIME_OF_STATE_CHANGE, new 
org.apache.thrift.meta_data.FieldMetaData("timeOfStateChange", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.REASON, new 
org.apache.thrift.meta_data.FieldMetaData("reason", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STATUS_ID, new 
org.apache.thrift.meta_data.FieldMetaData("statusId", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ChildJobStatus.class,
 metaDataMap);
+  }
+
+  public ChildJobStatus() {
+  }
+
+  public ChildJobStatus(
+    JobState jobState)
+  {
+    this();
+    this.jobState = jobState;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ChildJobStatus(ChildJobStatus other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetJobState()) {
+      this.jobState = other.jobState;
+    }
+    this.timeOfStateChange = other.timeOfStateChange;
+    if (other.isSetReason()) {
+      this.reason = other.reason;
+    }
+    if (other.isSetStatusId()) {
+      this.statusId = other.statusId;
+    }
+  }
+
+  public ChildJobStatus deepCopy() {
+    return new ChildJobStatus(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobState = null;
+    setTimeOfStateChangeIsSet(false);
+    this.timeOfStateChange = 0;
+    this.reason = null;
+    this.statusId = null;
+  }
+
+  /**
+   * 
+   * @see JobState
+   */
+  public JobState getJobState() {
+    return this.jobState;
+  }
+
+  /**
+   * 
+   * @see JobState
+   */
+  public void setJobState(JobState jobState) {
+    this.jobState = jobState;
+  }
+
+  public void unsetJobState() {
+    this.jobState = null;
+  }
+
+  /** Returns true if field jobState is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetJobState() {
+    return this.jobState != null;
+  }
+
+  public void setJobStateIsSet(boolean value) {
+    if (!value) {
+      this.jobState = null;
+    }
+  }
+
+  public long getTimeOfStateChange() {
+    return this.timeOfStateChange;
+  }
+
+  public void setTimeOfStateChange(long timeOfStateChange) {
+    this.timeOfStateChange = timeOfStateChange;
+    setTimeOfStateChangeIsSet(true);
+  }
+
+  public void unsetTimeOfStateChange() {
+    __isset_bitfield = 
org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, 
__TIMEOFSTATECHANGE_ISSET_ID);
+  }
+
+  /** Returns true if field timeOfStateChange is set (has been assigned a 
value) and false otherwise */
+  public boolean isSetTimeOfStateChange() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, 
__TIMEOFSTATECHANGE_ISSET_ID);
+  }
+
+  public void setTimeOfStateChangeIsSet(boolean value) {
+    __isset_bitfield = 
org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, 
__TIMEOFSTATECHANGE_ISSET_ID, value);
+  }
+
+  public java.lang.String getReason() {
+    return this.reason;
+  }
+
+  public void setReason(java.lang.String reason) {
+    this.reason = reason;
+  }
+
+  public void unsetReason() {
+    this.reason = null;
+  }
+
+  /** Returns true if field reason is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetReason() {
+    return this.reason != null;
+  }
+
+  public void setReasonIsSet(boolean value) {
+    if (!value) {
+      this.reason = null;
+    }
+  }
+
+  public java.lang.String getStatusId() {
+    return this.statusId;
+  }
+
+  public void setStatusId(java.lang.String statusId) {
+    this.statusId = statusId;
+  }
+
+  public void unsetStatusId() {
+    this.statusId = null;
+  }
+
+  /** Returns true if field statusId is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetStatusId() {
+    return this.statusId != null;
+  }
+
+  public void setStatusIdIsSet(boolean value) {
+    if (!value) {
+      this.statusId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, java.lang.Object value) {
+    switch (field) {
+    case JOB_STATE:
+      if (value == null) {
+        unsetJobState();
+      } else {
+        setJobState((JobState)value);
+      }
+      break;
+
+    case TIME_OF_STATE_CHANGE:
+      if (value == null) {
+        unsetTimeOfStateChange();
+      } else {
+        setTimeOfStateChange((java.lang.Long)value);
+      }
+      break;
+
+    case REASON:
+      if (value == null) {
+        unsetReason();
+      } else {
+        setReason((java.lang.String)value);
+      }
+      break;
+
+    case STATUS_ID:
+      if (value == null) {
+        unsetStatusId();
+      } else {
+        setStatusId((java.lang.String)value);
+      }
+      break;
+
+    }
+  }
+
+  public java.lang.Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_STATE:
+      return getJobState();
+
+    case TIME_OF_STATE_CHANGE:
+      return getTimeOfStateChange();
+
+    case REASON:
+      return getReason();
+
+    case STATUS_ID:
+      return getStatusId();
+
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned 
a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new java.lang.IllegalArgumentException();
+    }
+
+    switch (field) {
+    case JOB_STATE:
+      return isSetJobState();
+    case TIME_OF_STATE_CHANGE:
+      return isSetTimeOfStateChange();
+    case REASON:
+      return isSetReason();
+    case STATUS_ID:
+      return isSetStatusId();
+    }
+    throw new java.lang.IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(java.lang.Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ChildJobStatus)
+      return this.equals((ChildJobStatus)that);
+    return false;
+  }
+
+  public boolean equals(ChildJobStatus that) {
+    if (that == null)
+      return false;
+    if (this == that)
+      return true;
+
+    boolean this_present_jobState = true && this.isSetJobState();
+    boolean that_present_jobState = true && that.isSetJobState();
+    if (this_present_jobState || that_present_jobState) {
+      if (!(this_present_jobState && that_present_jobState))
+        return false;
+      if (!this.jobState.equals(that.jobState))
+        return false;
+    }
+
+    boolean this_present_timeOfStateChange = true && 
this.isSetTimeOfStateChange();
+    boolean that_present_timeOfStateChange = true && 
that.isSetTimeOfStateChange();
+    if (this_present_timeOfStateChange || that_present_timeOfStateChange) {
+      if (!(this_present_timeOfStateChange && that_present_timeOfStateChange))
+        return false;
+      if (this.timeOfStateChange != that.timeOfStateChange)
+        return false;
+    }
+
+    boolean this_present_reason = true && this.isSetReason();
+    boolean that_present_reason = true && that.isSetReason();
+    if (this_present_reason || that_present_reason) {
+      if (!(this_present_reason && that_present_reason))
+        return false;
+      if (!this.reason.equals(that.reason))
+        return false;
+    }
+
+    boolean this_present_statusId = true && this.isSetStatusId();
+    boolean that_present_statusId = true && that.isSetStatusId();
+    if (this_present_statusId || that_present_statusId) {
+      if (!(this_present_statusId && that_present_statusId))
+        return false;
+      if (!this.statusId.equals(that.statusId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int hashCode = 1;
+
+    hashCode = hashCode * 8191 + ((isSetJobState()) ? 131071 : 524287);
+    if (isSetJobState())
+      hashCode = hashCode * 8191 + jobState.getValue();
+
+    hashCode = hashCode * 8191 + ((isSetTimeOfStateChange()) ? 131071 : 
524287);
+    if (isSetTimeOfStateChange())
+      hashCode = hashCode * 8191 + 
org.apache.thrift.TBaseHelper.hashCode(timeOfStateChange);
+
+    hashCode = hashCode * 8191 + ((isSetReason()) ? 131071 : 524287);
+    if (isSetReason())
+      hashCode = hashCode * 8191 + reason.hashCode();
+
+    hashCode = hashCode * 8191 + ((isSetStatusId()) ? 131071 : 524287);
+    if (isSetStatusId())
+      hashCode = hashCode * 8191 + statusId.hashCode();
+
+    return hashCode;
+  }
+
+  @Override
+  public int compareTo(ChildJobStatus other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = 
java.lang.Boolean.valueOf(isSetJobState()).compareTo(other.isSetJobState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobState, 
other.jobState);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
java.lang.Boolean.valueOf(isSetTimeOfStateChange()).compareTo(other.isSetTimeOfStateChange());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTimeOfStateChange()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.timeOfStateChange, 
other.timeOfStateChange);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
java.lang.Boolean.valueOf(isSetReason()).compareTo(other.isSetReason());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReason()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reason, 
other.reason);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
java.lang.Boolean.valueOf(isSetStatusId()).compareTo(other.isSetStatusId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStatusId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.statusId, 
other.statusId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws 
org.apache.thrift.TException {
+    scheme(iprot).read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws 
org.apache.thrift.TException {
+    scheme(oprot).write(oprot, this);
+  }
+
+  @Override
+  public java.lang.String toString() {
+    java.lang.StringBuilder sb = new 
java.lang.StringBuilder("ChildJobStatus(");
+    boolean first = true;
+
+    sb.append("jobState:");
+    if (this.jobState == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobState);
+    }
+    first = false;
+    if (isSetTimeOfStateChange()) {
+      if (!first) sb.append(", ");
+      sb.append("timeOfStateChange:");
+      sb.append(this.timeOfStateChange);
+      first = false;
+    }
+    if (isSetReason()) {
+      if (!first) sb.append(", ");
+      sb.append("reason:");
+      if (this.reason == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.reason);
+      }
+      first = false;
+    }
+    if (isSetStatusId()) {
+      if (!first) sb.append(", ");
+      sb.append("statusId:");
+      if (this.statusId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.statusId);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetJobState()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'jobState' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws 
java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws 
java.io.IOException, java.lang.ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java 
serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class ChildJobStatusStandardSchemeFactory implements 
org.apache.thrift.scheme.SchemeFactory {
+    public ChildJobStatusStandardScheme getScheme() {
+      return new ChildJobStatusStandardScheme();
+    }
+  }
+
+  private static class ChildJobStatusStandardScheme extends 
org.apache.thrift.scheme.StandardScheme<ChildJobStatus> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, 
ChildJobStatus struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.jobState = 
org.apache.airavata.model.status.JobState.findByValue(iprot.readI32());
+              struct.setJobStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // TIME_OF_STATE_CHANGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.timeOfStateChange = iprot.readI64();
+              struct.setTimeOfStateChangeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 3: // REASON
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.reason = iprot.readString();
+              struct.setReasonIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 4: // STATUS_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.statusId = iprot.readString();
+              struct.setStatusIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, 
ChildJobStatus struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobState != null) {
+        oprot.writeFieldBegin(JOB_STATE_FIELD_DESC);
+        oprot.writeI32(struct.jobState.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeFieldBegin(TIME_OF_STATE_CHANGE_FIELD_DESC);
+        oprot.writeI64(struct.timeOfStateChange);
+        oprot.writeFieldEnd();
+      }
+      if (struct.reason != null) {
+        if (struct.isSetReason()) {
+          oprot.writeFieldBegin(REASON_FIELD_DESC);
+          oprot.writeString(struct.reason);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.statusId != null) {
+        if (struct.isSetStatusId()) {
+          oprot.writeFieldBegin(STATUS_ID_FIELD_DESC);
+          oprot.writeString(struct.statusId);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ChildJobStatusTupleSchemeFactory implements 
org.apache.thrift.scheme.SchemeFactory {
+    public ChildJobStatusTupleScheme getScheme() {
+      return new ChildJobStatusTupleScheme();
+    }
+  }
+
+  private static class ChildJobStatusTupleScheme extends 
org.apache.thrift.scheme.TupleScheme<ChildJobStatus> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, 
ChildJobStatus struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol oprot = 
(org.apache.thrift.protocol.TTupleProtocol) prot;
+      oprot.writeI32(struct.jobState.getValue());
+      java.util.BitSet optionals = new java.util.BitSet();
+      if (struct.isSetTimeOfStateChange()) {
+        optionals.set(0);
+      }
+      if (struct.isSetReason()) {
+        optionals.set(1);
+      }
+      if (struct.isSetStatusId()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeI64(struct.timeOfStateChange);
+      }
+      if (struct.isSetReason()) {
+        oprot.writeString(struct.reason);
+      }
+      if (struct.isSetStatusId()) {
+        oprot.writeString(struct.statusId);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ChildJobStatus 
struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TTupleProtocol iprot = 
(org.apache.thrift.protocol.TTupleProtocol) prot;
+      struct.jobState = 
org.apache.airavata.model.status.JobState.findByValue(iprot.readI32());
+      struct.setJobStateIsSet(true);
+      java.util.BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.timeOfStateChange = iprot.readI64();
+        struct.setTimeOfStateChangeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.reason = iprot.readString();
+        struct.setReasonIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.statusId = iprot.readString();
+        struct.setStatusIdIsSet(true);
+      }
+    }
+  }
+
+  private static <S extends org.apache.thrift.scheme.IScheme> S 
scheme(org.apache.thrift.protocol.TProtocol proto) {
+    return 
(org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? 
STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+  }
+}
+

Reply via email to