You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/01/12 16:58:52 UTC

[38/65] [abbrv] airavata git commit: adding thrift generated files

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/process/ProcessModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/process/ProcessModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/process/ProcessModel.java
new file mode 100644
index 0000000..60d95f1
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/process/ProcessModel.java
@@ -0,0 +1,2553 @@
+/**
+ * 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.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.process;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * ProcessModel: A structure holding the process details. The infromation is derived based on user provided
+ *          configuration data or system inferred information from scheduling and QoS parameters.
+ * 
+ * processDetail:
+ *   A friendly description of the process, usally used to communicate information to users.
+ * 
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, ProcessModel._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessModel");
+
+  private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  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)2);
+  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)3);
+  private static final org.apache.thrift.protocol.TField LAST_UPDATE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastUpdateTime", org.apache.thrift.protocol.TType.I64, (short)4);
+  private static final org.apache.thrift.protocol.TField PROCESS_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("processStatus", org.apache.thrift.protocol.TType.STRUCT, (short)5);
+  private static final org.apache.thrift.protocol.TField PROCESS_DETAIL_FIELD_DESC = new org.apache.thrift.protocol.TField("processDetail", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField APPLICATION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField APPLICATION_DEPLOYMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationDeploymentId", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField PROCESS_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("processInputs", org.apache.thrift.protocol.TType.LIST, (short)10);
+  private static final org.apache.thrift.protocol.TField PROCESS_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("processOutputs", org.apache.thrift.protocol.TType.LIST, (short)11);
+  private static final org.apache.thrift.protocol.TField RESOURCE_SCHEDULE_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceSchedule", org.apache.thrift.protocol.TType.STRUCT, (short)12);
+  private static final org.apache.thrift.protocol.TField TASKS_FIELD_DESC = new org.apache.thrift.protocol.TField("tasks", org.apache.thrift.protocol.TType.LIST, (short)13);
+  private static final org.apache.thrift.protocol.TField TASK_DAG_FIELD_DESC = new org.apache.thrift.protocol.TField("taskDag", org.apache.thrift.protocol.TType.STRING, (short)14);
+  private static final org.apache.thrift.protocol.TField PROCESS_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("processError", org.apache.thrift.protocol.TType.STRUCT, (short)15);
+  private static final org.apache.thrift.protocol.TField GATEWAY_EXECUTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayExecutionId", org.apache.thrift.protocol.TType.STRING, (short)16);
+  private static final org.apache.thrift.protocol.TField ENABLE_EMAIL_NOTIFICATION_FIELD_DESC = new org.apache.thrift.protocol.TField("enableEmailNotification", org.apache.thrift.protocol.TType.BOOL, (short)17);
+  private static final org.apache.thrift.protocol.TField EMAIL_ADDRESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("emailAddresses", org.apache.thrift.protocol.TType.LIST, (short)18);
+  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)19);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ProcessModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ProcessModelTupleSchemeFactory());
+  }
+
+  public String processId; // required
+  public String experimentId; // required
+  public long creationTime; // optional
+  public long lastUpdateTime; // optional
+  public org.apache.airavata.model.status.ProcessStatus processStatus; // optional
+  public String processDetail; // optional
+  public String applicationInterfaceId; // optional
+  public String applicationDeploymentId; // optional
+  public String computeResourceId; // optional
+  public List<org.apache.airavata.model.application.io.InputDataObjectType> processInputs; // optional
+  public List<org.apache.airavata.model.application.io.OutputDataObjectType> processOutputs; // optional
+  public org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel resourceSchedule; // optional
+  public List<org.apache.airavata.model.task.TaskModel> tasks; // optional
+  public String taskDag; // optional
+  public org.apache.airavata.model.commons.ErrorModel processError; // optional
+  public String gatewayExecutionId; // optional
+  public boolean enableEmailNotification; // optional
+  public List<String> emailAddresses; // optional
+  public String storageResourceId; // 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 {
+    PROCESS_ID((short)1, "processId"),
+    EXPERIMENT_ID((short)2, "experimentId"),
+    CREATION_TIME((short)3, "creationTime"),
+    LAST_UPDATE_TIME((short)4, "lastUpdateTime"),
+    PROCESS_STATUS((short)5, "processStatus"),
+    PROCESS_DETAIL((short)6, "processDetail"),
+    APPLICATION_INTERFACE_ID((short)7, "applicationInterfaceId"),
+    APPLICATION_DEPLOYMENT_ID((short)8, "applicationDeploymentId"),
+    COMPUTE_RESOURCE_ID((short)9, "computeResourceId"),
+    PROCESS_INPUTS((short)10, "processInputs"),
+    PROCESS_OUTPUTS((short)11, "processOutputs"),
+    RESOURCE_SCHEDULE((short)12, "resourceSchedule"),
+    TASKS((short)13, "tasks"),
+    TASK_DAG((short)14, "taskDag"),
+    PROCESS_ERROR((short)15, "processError"),
+    GATEWAY_EXECUTION_ID((short)16, "gatewayExecutionId"),
+    ENABLE_EMAIL_NOTIFICATION((short)17, "enableEmailNotification"),
+    EMAIL_ADDRESSES((short)18, "emailAddresses"),
+    STORAGE_RESOURCE_ID((short)19, "storageResourceId");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : 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: // PROCESS_ID
+          return PROCESS_ID;
+        case 2: // EXPERIMENT_ID
+          return EXPERIMENT_ID;
+        case 3: // CREATION_TIME
+          return CREATION_TIME;
+        case 4: // LAST_UPDATE_TIME
+          return LAST_UPDATE_TIME;
+        case 5: // PROCESS_STATUS
+          return PROCESS_STATUS;
+        case 6: // PROCESS_DETAIL
+          return PROCESS_DETAIL;
+        case 7: // APPLICATION_INTERFACE_ID
+          return APPLICATION_INTERFACE_ID;
+        case 8: // APPLICATION_DEPLOYMENT_ID
+          return APPLICATION_DEPLOYMENT_ID;
+        case 9: // COMPUTE_RESOURCE_ID
+          return COMPUTE_RESOURCE_ID;
+        case 10: // PROCESS_INPUTS
+          return PROCESS_INPUTS;
+        case 11: // PROCESS_OUTPUTS
+          return PROCESS_OUTPUTS;
+        case 12: // RESOURCE_SCHEDULE
+          return RESOURCE_SCHEDULE;
+        case 13: // TASKS
+          return TASKS;
+        case 14: // TASK_DAG
+          return TASK_DAG;
+        case 15: // PROCESS_ERROR
+          return PROCESS_ERROR;
+        case 16: // GATEWAY_EXECUTION_ID
+          return GATEWAY_EXECUTION_ID;
+        case 17: // ENABLE_EMAIL_NOTIFICATION
+          return ENABLE_EMAIL_NOTIFICATION;
+        case 18: // EMAIL_ADDRESSES
+          return EMAIL_ADDRESSES;
+        case 19: // STORAGE_RESOURCE_ID
+          return STORAGE_RESOURCE_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 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(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __CREATIONTIME_ISSET_ID = 0;
+  private static final int __LASTUPDATETIME_ISSET_ID = 1;
+  private static final int __ENABLEEMAILNOTIFICATION_ISSET_ID = 2;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.LAST_UPDATE_TIME,_Fields.PROCESS_STATUS,_Fields.PROCESS_DETAIL,_Fields.APPLICATION_INTERFACE_ID,_Fields.APPLICATION_DEPLOYMENT_ID,_Fields.COMPUTE_RESOURCE_ID,_Fields.PROCESS_INPUTS,_Fields.PROCESS_OUTPUTS,_Fields.RESOURCE_SCHEDULE,_Fields.TASKS,_Fields.TASK_DAG,_Fields.PROCESS_ERROR,_Fields.GATEWAY_EXECUTION_ID,_Fields.ENABLE_EMAIL_NOTIFICATION,_Fields.EMAIL_ADDRESSES,_Fields.STORAGE_RESOURCE_ID};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    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.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.LAST_UPDATE_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastUpdateTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.PROCESS_STATUS, new org.apache.thrift.meta_data.FieldMetaData("processStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ProcessStatus.class)));
+    tmpMap.put(_Fields.PROCESS_DETAIL, new org.apache.thrift.meta_data.FieldMetaData("processDetail", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APPLICATION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("applicationInterfaceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APPLICATION_DEPLOYMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("applicationDeploymentId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROCESS_INPUTS, new org.apache.thrift.meta_data.FieldMetaData("processInputs", 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.application.io.InputDataObjectType.class))));
+    tmpMap.put(_Fields.PROCESS_OUTPUTS, new org.apache.thrift.meta_data.FieldMetaData("processOutputs", 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.application.io.OutputDataObjectType.class))));
+    tmpMap.put(_Fields.RESOURCE_SCHEDULE, new org.apache.thrift.meta_data.FieldMetaData("resourceSchedule", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel.class)));
+    tmpMap.put(_Fields.TASKS, new org.apache.thrift.meta_data.FieldMetaData("tasks", 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.task.TaskModel.class))));
+    tmpMap.put(_Fields.TASK_DAG, new org.apache.thrift.meta_data.FieldMetaData("taskDag", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROCESS_ERROR, new org.apache.thrift.meta_data.FieldMetaData("processError", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class)));
+    tmpMap.put(_Fields.GATEWAY_EXECUTION_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayExecutionId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.ENABLE_EMAIL_NOTIFICATION, new org.apache.thrift.meta_data.FieldMetaData("enableEmailNotification", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.EMAIL_ADDRESSES, new org.apache.thrift.meta_data.FieldMetaData("emailAddresses", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ProcessModel.class, metaDataMap);
+  }
+
+  public ProcessModel() {
+    this.processId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public ProcessModel(
+    String processId,
+    String experimentId)
+  {
+    this();
+    this.processId = processId;
+    this.experimentId = experimentId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ProcessModel(ProcessModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetProcessId()) {
+      this.processId = other.processId;
+    }
+    if (other.isSetExperimentId()) {
+      this.experimentId = other.experimentId;
+    }
+    this.creationTime = other.creationTime;
+    this.lastUpdateTime = other.lastUpdateTime;
+    if (other.isSetProcessStatus()) {
+      this.processStatus = new org.apache.airavata.model.status.ProcessStatus(other.processStatus);
+    }
+    if (other.isSetProcessDetail()) {
+      this.processDetail = other.processDetail;
+    }
+    if (other.isSetApplicationInterfaceId()) {
+      this.applicationInterfaceId = other.applicationInterfaceId;
+    }
+    if (other.isSetApplicationDeploymentId()) {
+      this.applicationDeploymentId = other.applicationDeploymentId;
+    }
+    if (other.isSetComputeResourceId()) {
+      this.computeResourceId = other.computeResourceId;
+    }
+    if (other.isSetProcessInputs()) {
+      List<org.apache.airavata.model.application.io.InputDataObjectType> __this__processInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(other.processInputs.size());
+      for (org.apache.airavata.model.application.io.InputDataObjectType other_element : other.processInputs) {
+        __this__processInputs.add(new org.apache.airavata.model.application.io.InputDataObjectType(other_element));
+      }
+      this.processInputs = __this__processInputs;
+    }
+    if (other.isSetProcessOutputs()) {
+      List<org.apache.airavata.model.application.io.OutputDataObjectType> __this__processOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(other.processOutputs.size());
+      for (org.apache.airavata.model.application.io.OutputDataObjectType other_element : other.processOutputs) {
+        __this__processOutputs.add(new org.apache.airavata.model.application.io.OutputDataObjectType(other_element));
+      }
+      this.processOutputs = __this__processOutputs;
+    }
+    if (other.isSetResourceSchedule()) {
+      this.resourceSchedule = new org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel(other.resourceSchedule);
+    }
+    if (other.isSetTasks()) {
+      List<org.apache.airavata.model.task.TaskModel> __this__tasks = new ArrayList<org.apache.airavata.model.task.TaskModel>(other.tasks.size());
+      for (org.apache.airavata.model.task.TaskModel other_element : other.tasks) {
+        __this__tasks.add(new org.apache.airavata.model.task.TaskModel(other_element));
+      }
+      this.tasks = __this__tasks;
+    }
+    if (other.isSetTaskDag()) {
+      this.taskDag = other.taskDag;
+    }
+    if (other.isSetProcessError()) {
+      this.processError = new org.apache.airavata.model.commons.ErrorModel(other.processError);
+    }
+    if (other.isSetGatewayExecutionId()) {
+      this.gatewayExecutionId = other.gatewayExecutionId;
+    }
+    this.enableEmailNotification = other.enableEmailNotification;
+    if (other.isSetEmailAddresses()) {
+      List<String> __this__emailAddresses = new ArrayList<String>(other.emailAddresses);
+      this.emailAddresses = __this__emailAddresses;
+    }
+    if (other.isSetStorageResourceId()) {
+      this.storageResourceId = other.storageResourceId;
+    }
+  }
+
+  public ProcessModel deepCopy() {
+    return new ProcessModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.processId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.experimentId = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    setLastUpdateTimeIsSet(false);
+    this.lastUpdateTime = 0;
+    this.processStatus = null;
+    this.processDetail = null;
+    this.applicationInterfaceId = null;
+    this.applicationDeploymentId = null;
+    this.computeResourceId = null;
+    this.processInputs = null;
+    this.processOutputs = null;
+    this.resourceSchedule = null;
+    this.tasks = null;
+    this.taskDag = null;
+    this.processError = null;
+    this.gatewayExecutionId = null;
+    setEnableEmailNotificationIsSet(false);
+    this.enableEmailNotification = false;
+    this.emailAddresses = null;
+    this.storageResourceId = null;
+  }
+
+  public String getProcessId() {
+    return this.processId;
+  }
+
+  public ProcessModel setProcessId(String processId) {
+    this.processId = processId;
+    return this;
+  }
+
+  public void unsetProcessId() {
+    this.processId = null;
+  }
+
+  /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessId() {
+    return this.processId != null;
+  }
+
+  public void setProcessIdIsSet(boolean value) {
+    if (!value) {
+      this.processId = null;
+    }
+  }
+
+  public String getExperimentId() {
+    return this.experimentId;
+  }
+
+  public ProcessModel setExperimentId(String experimentId) {
+    this.experimentId = experimentId;
+    return this;
+  }
+
+  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 long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public ProcessModel setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetCreationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  public void setCreationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
+  }
+
+  public long getLastUpdateTime() {
+    return this.lastUpdateTime;
+  }
+
+  public ProcessModel setLastUpdateTime(long lastUpdateTime) {
+    this.lastUpdateTime = lastUpdateTime;
+    setLastUpdateTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetLastUpdateTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTUPDATETIME_ISSET_ID);
+  }
+
+  /** Returns true if field lastUpdateTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetLastUpdateTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __LASTUPDATETIME_ISSET_ID);
+  }
+
+  public void setLastUpdateTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTUPDATETIME_ISSET_ID, value);
+  }
+
+  public org.apache.airavata.model.status.ProcessStatus getProcessStatus() {
+    return this.processStatus;
+  }
+
+  public ProcessModel setProcessStatus(org.apache.airavata.model.status.ProcessStatus processStatus) {
+    this.processStatus = processStatus;
+    return this;
+  }
+
+  public void unsetProcessStatus() {
+    this.processStatus = null;
+  }
+
+  /** Returns true if field processStatus is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessStatus() {
+    return this.processStatus != null;
+  }
+
+  public void setProcessStatusIsSet(boolean value) {
+    if (!value) {
+      this.processStatus = null;
+    }
+  }
+
+  public String getProcessDetail() {
+    return this.processDetail;
+  }
+
+  public ProcessModel setProcessDetail(String processDetail) {
+    this.processDetail = processDetail;
+    return this;
+  }
+
+  public void unsetProcessDetail() {
+    this.processDetail = null;
+  }
+
+  /** Returns true if field processDetail is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessDetail() {
+    return this.processDetail != null;
+  }
+
+  public void setProcessDetailIsSet(boolean value) {
+    if (!value) {
+      this.processDetail = null;
+    }
+  }
+
+  public String getApplicationInterfaceId() {
+    return this.applicationInterfaceId;
+  }
+
+  public ProcessModel setApplicationInterfaceId(String applicationInterfaceId) {
+    this.applicationInterfaceId = applicationInterfaceId;
+    return this;
+  }
+
+  public void unsetApplicationInterfaceId() {
+    this.applicationInterfaceId = null;
+  }
+
+  /** Returns true if field applicationInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationInterfaceId() {
+    return this.applicationInterfaceId != null;
+  }
+
+  public void setApplicationInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.applicationInterfaceId = null;
+    }
+  }
+
+  public String getApplicationDeploymentId() {
+    return this.applicationDeploymentId;
+  }
+
+  public ProcessModel setApplicationDeploymentId(String applicationDeploymentId) {
+    this.applicationDeploymentId = applicationDeploymentId;
+    return this;
+  }
+
+  public void unsetApplicationDeploymentId() {
+    this.applicationDeploymentId = null;
+  }
+
+  /** Returns true if field applicationDeploymentId is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationDeploymentId() {
+    return this.applicationDeploymentId != null;
+  }
+
+  public void setApplicationDeploymentIdIsSet(boolean value) {
+    if (!value) {
+      this.applicationDeploymentId = null;
+    }
+  }
+
+  public String getComputeResourceId() {
+    return this.computeResourceId;
+  }
+
+  public ProcessModel setComputeResourceId(String computeResourceId) {
+    this.computeResourceId = computeResourceId;
+    return this;
+  }
+
+  public void unsetComputeResourceId() {
+    this.computeResourceId = null;
+  }
+
+  /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetComputeResourceId() {
+    return this.computeResourceId != null;
+  }
+
+  public void setComputeResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.computeResourceId = null;
+    }
+  }
+
+  public int getProcessInputsSize() {
+    return (this.processInputs == null) ? 0 : this.processInputs.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.application.io.InputDataObjectType> getProcessInputsIterator() {
+    return (this.processInputs == null) ? null : this.processInputs.iterator();
+  }
+
+  public void addToProcessInputs(org.apache.airavata.model.application.io.InputDataObjectType elem) {
+    if (this.processInputs == null) {
+      this.processInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>();
+    }
+    this.processInputs.add(elem);
+  }
+
+  public List<org.apache.airavata.model.application.io.InputDataObjectType> getProcessInputs() {
+    return this.processInputs;
+  }
+
+  public ProcessModel setProcessInputs(List<org.apache.airavata.model.application.io.InputDataObjectType> processInputs) {
+    this.processInputs = processInputs;
+    return this;
+  }
+
+  public void unsetProcessInputs() {
+    this.processInputs = null;
+  }
+
+  /** Returns true if field processInputs is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessInputs() {
+    return this.processInputs != null;
+  }
+
+  public void setProcessInputsIsSet(boolean value) {
+    if (!value) {
+      this.processInputs = null;
+    }
+  }
+
+  public int getProcessOutputsSize() {
+    return (this.processOutputs == null) ? 0 : this.processOutputs.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.application.io.OutputDataObjectType> getProcessOutputsIterator() {
+    return (this.processOutputs == null) ? null : this.processOutputs.iterator();
+  }
+
+  public void addToProcessOutputs(org.apache.airavata.model.application.io.OutputDataObjectType elem) {
+    if (this.processOutputs == null) {
+      this.processOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>();
+    }
+    this.processOutputs.add(elem);
+  }
+
+  public List<org.apache.airavata.model.application.io.OutputDataObjectType> getProcessOutputs() {
+    return this.processOutputs;
+  }
+
+  public ProcessModel setProcessOutputs(List<org.apache.airavata.model.application.io.OutputDataObjectType> processOutputs) {
+    this.processOutputs = processOutputs;
+    return this;
+  }
+
+  public void unsetProcessOutputs() {
+    this.processOutputs = null;
+  }
+
+  /** Returns true if field processOutputs is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessOutputs() {
+    return this.processOutputs != null;
+  }
+
+  public void setProcessOutputsIsSet(boolean value) {
+    if (!value) {
+      this.processOutputs = null;
+    }
+  }
+
+  public org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel getResourceSchedule() {
+    return this.resourceSchedule;
+  }
+
+  public ProcessModel setResourceSchedule(org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel resourceSchedule) {
+    this.resourceSchedule = resourceSchedule;
+    return this;
+  }
+
+  public void unsetResourceSchedule() {
+    this.resourceSchedule = null;
+  }
+
+  /** Returns true if field resourceSchedule is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceSchedule() {
+    return this.resourceSchedule != null;
+  }
+
+  public void setResourceScheduleIsSet(boolean value) {
+    if (!value) {
+      this.resourceSchedule = null;
+    }
+  }
+
+  public int getTasksSize() {
+    return (this.tasks == null) ? 0 : this.tasks.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.task.TaskModel> getTasksIterator() {
+    return (this.tasks == null) ? null : this.tasks.iterator();
+  }
+
+  public void addToTasks(org.apache.airavata.model.task.TaskModel elem) {
+    if (this.tasks == null) {
+      this.tasks = new ArrayList<org.apache.airavata.model.task.TaskModel>();
+    }
+    this.tasks.add(elem);
+  }
+
+  public List<org.apache.airavata.model.task.TaskModel> getTasks() {
+    return this.tasks;
+  }
+
+  public ProcessModel setTasks(List<org.apache.airavata.model.task.TaskModel> tasks) {
+    this.tasks = tasks;
+    return this;
+  }
+
+  public void unsetTasks() {
+    this.tasks = null;
+  }
+
+  /** Returns true if field tasks is set (has been assigned a value) and false otherwise */
+  public boolean isSetTasks() {
+    return this.tasks != null;
+  }
+
+  public void setTasksIsSet(boolean value) {
+    if (!value) {
+      this.tasks = null;
+    }
+  }
+
+  public String getTaskDag() {
+    return this.taskDag;
+  }
+
+  public ProcessModel setTaskDag(String taskDag) {
+    this.taskDag = taskDag;
+    return this;
+  }
+
+  public void unsetTaskDag() {
+    this.taskDag = null;
+  }
+
+  /** Returns true if field taskDag is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskDag() {
+    return this.taskDag != null;
+  }
+
+  public void setTaskDagIsSet(boolean value) {
+    if (!value) {
+      this.taskDag = null;
+    }
+  }
+
+  public org.apache.airavata.model.commons.ErrorModel getProcessError() {
+    return this.processError;
+  }
+
+  public ProcessModel setProcessError(org.apache.airavata.model.commons.ErrorModel processError) {
+    this.processError = processError;
+    return this;
+  }
+
+  public void unsetProcessError() {
+    this.processError = null;
+  }
+
+  /** Returns true if field processError is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessError() {
+    return this.processError != null;
+  }
+
+  public void setProcessErrorIsSet(boolean value) {
+    if (!value) {
+      this.processError = null;
+    }
+  }
+
+  public String getGatewayExecutionId() {
+    return this.gatewayExecutionId;
+  }
+
+  public ProcessModel setGatewayExecutionId(String gatewayExecutionId) {
+    this.gatewayExecutionId = gatewayExecutionId;
+    return this;
+  }
+
+  public void unsetGatewayExecutionId() {
+    this.gatewayExecutionId = null;
+  }
+
+  /** Returns true if field gatewayExecutionId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayExecutionId() {
+    return this.gatewayExecutionId != null;
+  }
+
+  public void setGatewayExecutionIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayExecutionId = null;
+    }
+  }
+
+  public boolean isEnableEmailNotification() {
+    return this.enableEmailNotification;
+  }
+
+  public ProcessModel setEnableEmailNotification(boolean enableEmailNotification) {
+    this.enableEmailNotification = enableEmailNotification;
+    setEnableEmailNotificationIsSet(true);
+    return this;
+  }
+
+  public void unsetEnableEmailNotification() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ENABLEEMAILNOTIFICATION_ISSET_ID);
+  }
+
+  /** Returns true if field enableEmailNotification is set (has been assigned a value) and false otherwise */
+  public boolean isSetEnableEmailNotification() {
+    return EncodingUtils.testBit(__isset_bitfield, __ENABLEEMAILNOTIFICATION_ISSET_ID);
+  }
+
+  public void setEnableEmailNotificationIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ENABLEEMAILNOTIFICATION_ISSET_ID, value);
+  }
+
+  public int getEmailAddressesSize() {
+    return (this.emailAddresses == null) ? 0 : this.emailAddresses.size();
+  }
+
+  public java.util.Iterator<String> getEmailAddressesIterator() {
+    return (this.emailAddresses == null) ? null : this.emailAddresses.iterator();
+  }
+
+  public void addToEmailAddresses(String elem) {
+    if (this.emailAddresses == null) {
+      this.emailAddresses = new ArrayList<String>();
+    }
+    this.emailAddresses.add(elem);
+  }
+
+  public List<String> getEmailAddresses() {
+    return this.emailAddresses;
+  }
+
+  public ProcessModel setEmailAddresses(List<String> emailAddresses) {
+    this.emailAddresses = emailAddresses;
+    return this;
+  }
+
+  public void unsetEmailAddresses() {
+    this.emailAddresses = null;
+  }
+
+  /** Returns true if field emailAddresses is set (has been assigned a value) and false otherwise */
+  public boolean isSetEmailAddresses() {
+    return this.emailAddresses != null;
+  }
+
+  public void setEmailAddressesIsSet(boolean value) {
+    if (!value) {
+      this.emailAddresses = null;
+    }
+  }
+
+  public String getStorageResourceId() {
+    return this.storageResourceId;
+  }
+
+  public ProcessModel setStorageResourceId(String storageResourceId) {
+    this.storageResourceId = storageResourceId;
+    return this;
+  }
+
+  public void unsetStorageResourceId() {
+    this.storageResourceId = null;
+  }
+
+  /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageResourceId() {
+    return this.storageResourceId != null;
+  }
+
+  public void setStorageResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.storageResourceId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case PROCESS_ID:
+      if (value == null) {
+        unsetProcessId();
+      } else {
+        setProcessId((String)value);
+      }
+      break;
+
+    case EXPERIMENT_ID:
+      if (value == null) {
+        unsetExperimentId();
+      } else {
+        setExperimentId((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case LAST_UPDATE_TIME:
+      if (value == null) {
+        unsetLastUpdateTime();
+      } else {
+        setLastUpdateTime((Long)value);
+      }
+      break;
+
+    case PROCESS_STATUS:
+      if (value == null) {
+        unsetProcessStatus();
+      } else {
+        setProcessStatus((org.apache.airavata.model.status.ProcessStatus)value);
+      }
+      break;
+
+    case PROCESS_DETAIL:
+      if (value == null) {
+        unsetProcessDetail();
+      } else {
+        setProcessDetail((String)value);
+      }
+      break;
+
+    case APPLICATION_INTERFACE_ID:
+      if (value == null) {
+        unsetApplicationInterfaceId();
+      } else {
+        setApplicationInterfaceId((String)value);
+      }
+      break;
+
+    case APPLICATION_DEPLOYMENT_ID:
+      if (value == null) {
+        unsetApplicationDeploymentId();
+      } else {
+        setApplicationDeploymentId((String)value);
+      }
+      break;
+
+    case COMPUTE_RESOURCE_ID:
+      if (value == null) {
+        unsetComputeResourceId();
+      } else {
+        setComputeResourceId((String)value);
+      }
+      break;
+
+    case PROCESS_INPUTS:
+      if (value == null) {
+        unsetProcessInputs();
+      } else {
+        setProcessInputs((List<org.apache.airavata.model.application.io.InputDataObjectType>)value);
+      }
+      break;
+
+    case PROCESS_OUTPUTS:
+      if (value == null) {
+        unsetProcessOutputs();
+      } else {
+        setProcessOutputs((List<org.apache.airavata.model.application.io.OutputDataObjectType>)value);
+      }
+      break;
+
+    case RESOURCE_SCHEDULE:
+      if (value == null) {
+        unsetResourceSchedule();
+      } else {
+        setResourceSchedule((org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel)value);
+      }
+      break;
+
+    case TASKS:
+      if (value == null) {
+        unsetTasks();
+      } else {
+        setTasks((List<org.apache.airavata.model.task.TaskModel>)value);
+      }
+      break;
+
+    case TASK_DAG:
+      if (value == null) {
+        unsetTaskDag();
+      } else {
+        setTaskDag((String)value);
+      }
+      break;
+
+    case PROCESS_ERROR:
+      if (value == null) {
+        unsetProcessError();
+      } else {
+        setProcessError((org.apache.airavata.model.commons.ErrorModel)value);
+      }
+      break;
+
+    case GATEWAY_EXECUTION_ID:
+      if (value == null) {
+        unsetGatewayExecutionId();
+      } else {
+        setGatewayExecutionId((String)value);
+      }
+      break;
+
+    case ENABLE_EMAIL_NOTIFICATION:
+      if (value == null) {
+        unsetEnableEmailNotification();
+      } else {
+        setEnableEmailNotification((Boolean)value);
+      }
+      break;
+
+    case EMAIL_ADDRESSES:
+      if (value == null) {
+        unsetEmailAddresses();
+      } else {
+        setEmailAddresses((List<String>)value);
+      }
+      break;
+
+    case STORAGE_RESOURCE_ID:
+      if (value == null) {
+        unsetStorageResourceId();
+      } else {
+        setStorageResourceId((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PROCESS_ID:
+      return getProcessId();
+
+    case EXPERIMENT_ID:
+      return getExperimentId();
+
+    case CREATION_TIME:
+      return Long.valueOf(getCreationTime());
+
+    case LAST_UPDATE_TIME:
+      return Long.valueOf(getLastUpdateTime());
+
+    case PROCESS_STATUS:
+      return getProcessStatus();
+
+    case PROCESS_DETAIL:
+      return getProcessDetail();
+
+    case APPLICATION_INTERFACE_ID:
+      return getApplicationInterfaceId();
+
+    case APPLICATION_DEPLOYMENT_ID:
+      return getApplicationDeploymentId();
+
+    case COMPUTE_RESOURCE_ID:
+      return getComputeResourceId();
+
+    case PROCESS_INPUTS:
+      return getProcessInputs();
+
+    case PROCESS_OUTPUTS:
+      return getProcessOutputs();
+
+    case RESOURCE_SCHEDULE:
+      return getResourceSchedule();
+
+    case TASKS:
+      return getTasks();
+
+    case TASK_DAG:
+      return getTaskDag();
+
+    case PROCESS_ERROR:
+      return getProcessError();
+
+    case GATEWAY_EXECUTION_ID:
+      return getGatewayExecutionId();
+
+    case ENABLE_EMAIL_NOTIFICATION:
+      return Boolean.valueOf(isEnableEmailNotification());
+
+    case EMAIL_ADDRESSES:
+      return getEmailAddresses();
+
+    case STORAGE_RESOURCE_ID:
+      return getStorageResourceId();
+
+    }
+    throw new 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 IllegalArgumentException();
+    }
+
+    switch (field) {
+    case PROCESS_ID:
+      return isSetProcessId();
+    case EXPERIMENT_ID:
+      return isSetExperimentId();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case LAST_UPDATE_TIME:
+      return isSetLastUpdateTime();
+    case PROCESS_STATUS:
+      return isSetProcessStatus();
+    case PROCESS_DETAIL:
+      return isSetProcessDetail();
+    case APPLICATION_INTERFACE_ID:
+      return isSetApplicationInterfaceId();
+    case APPLICATION_DEPLOYMENT_ID:
+      return isSetApplicationDeploymentId();
+    case COMPUTE_RESOURCE_ID:
+      return isSetComputeResourceId();
+    case PROCESS_INPUTS:
+      return isSetProcessInputs();
+    case PROCESS_OUTPUTS:
+      return isSetProcessOutputs();
+    case RESOURCE_SCHEDULE:
+      return isSetResourceSchedule();
+    case TASKS:
+      return isSetTasks();
+    case TASK_DAG:
+      return isSetTaskDag();
+    case PROCESS_ERROR:
+      return isSetProcessError();
+    case GATEWAY_EXECUTION_ID:
+      return isSetGatewayExecutionId();
+    case ENABLE_EMAIL_NOTIFICATION:
+      return isSetEnableEmailNotification();
+    case EMAIL_ADDRESSES:
+      return isSetEmailAddresses();
+    case STORAGE_RESOURCE_ID:
+      return isSetStorageResourceId();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ProcessModel)
+      return this.equals((ProcessModel)that);
+    return false;
+  }
+
+  public boolean equals(ProcessModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_processId = true && this.isSetProcessId();
+    boolean that_present_processId = true && that.isSetProcessId();
+    if (this_present_processId || that_present_processId) {
+      if (!(this_present_processId && that_present_processId))
+        return false;
+      if (!this.processId.equals(that.processId))
+        return false;
+    }
+
+    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_creationTime = true && this.isSetCreationTime();
+    boolean that_present_creationTime = true && that.isSetCreationTime();
+    if (this_present_creationTime || that_present_creationTime) {
+      if (!(this_present_creationTime && that_present_creationTime))
+        return false;
+      if (this.creationTime != that.creationTime)
+        return false;
+    }
+
+    boolean this_present_lastUpdateTime = true && this.isSetLastUpdateTime();
+    boolean that_present_lastUpdateTime = true && that.isSetLastUpdateTime();
+    if (this_present_lastUpdateTime || that_present_lastUpdateTime) {
+      if (!(this_present_lastUpdateTime && that_present_lastUpdateTime))
+        return false;
+      if (this.lastUpdateTime != that.lastUpdateTime)
+        return false;
+    }
+
+    boolean this_present_processStatus = true && this.isSetProcessStatus();
+    boolean that_present_processStatus = true && that.isSetProcessStatus();
+    if (this_present_processStatus || that_present_processStatus) {
+      if (!(this_present_processStatus && that_present_processStatus))
+        return false;
+      if (!this.processStatus.equals(that.processStatus))
+        return false;
+    }
+
+    boolean this_present_processDetail = true && this.isSetProcessDetail();
+    boolean that_present_processDetail = true && that.isSetProcessDetail();
+    if (this_present_processDetail || that_present_processDetail) {
+      if (!(this_present_processDetail && that_present_processDetail))
+        return false;
+      if (!this.processDetail.equals(that.processDetail))
+        return false;
+    }
+
+    boolean this_present_applicationInterfaceId = true && this.isSetApplicationInterfaceId();
+    boolean that_present_applicationInterfaceId = true && that.isSetApplicationInterfaceId();
+    if (this_present_applicationInterfaceId || that_present_applicationInterfaceId) {
+      if (!(this_present_applicationInterfaceId && that_present_applicationInterfaceId))
+        return false;
+      if (!this.applicationInterfaceId.equals(that.applicationInterfaceId))
+        return false;
+    }
+
+    boolean this_present_applicationDeploymentId = true && this.isSetApplicationDeploymentId();
+    boolean that_present_applicationDeploymentId = true && that.isSetApplicationDeploymentId();
+    if (this_present_applicationDeploymentId || that_present_applicationDeploymentId) {
+      if (!(this_present_applicationDeploymentId && that_present_applicationDeploymentId))
+        return false;
+      if (!this.applicationDeploymentId.equals(that.applicationDeploymentId))
+        return false;
+    }
+
+    boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
+    boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
+    if (this_present_computeResourceId || that_present_computeResourceId) {
+      if (!(this_present_computeResourceId && that_present_computeResourceId))
+        return false;
+      if (!this.computeResourceId.equals(that.computeResourceId))
+        return false;
+    }
+
+    boolean this_present_processInputs = true && this.isSetProcessInputs();
+    boolean that_present_processInputs = true && that.isSetProcessInputs();
+    if (this_present_processInputs || that_present_processInputs) {
+      if (!(this_present_processInputs && that_present_processInputs))
+        return false;
+      if (!this.processInputs.equals(that.processInputs))
+        return false;
+    }
+
+    boolean this_present_processOutputs = true && this.isSetProcessOutputs();
+    boolean that_present_processOutputs = true && that.isSetProcessOutputs();
+    if (this_present_processOutputs || that_present_processOutputs) {
+      if (!(this_present_processOutputs && that_present_processOutputs))
+        return false;
+      if (!this.processOutputs.equals(that.processOutputs))
+        return false;
+    }
+
+    boolean this_present_resourceSchedule = true && this.isSetResourceSchedule();
+    boolean that_present_resourceSchedule = true && that.isSetResourceSchedule();
+    if (this_present_resourceSchedule || that_present_resourceSchedule) {
+      if (!(this_present_resourceSchedule && that_present_resourceSchedule))
+        return false;
+      if (!this.resourceSchedule.equals(that.resourceSchedule))
+        return false;
+    }
+
+    boolean this_present_tasks = true && this.isSetTasks();
+    boolean that_present_tasks = true && that.isSetTasks();
+    if (this_present_tasks || that_present_tasks) {
+      if (!(this_present_tasks && that_present_tasks))
+        return false;
+      if (!this.tasks.equals(that.tasks))
+        return false;
+    }
+
+    boolean this_present_taskDag = true && this.isSetTaskDag();
+    boolean that_present_taskDag = true && that.isSetTaskDag();
+    if (this_present_taskDag || that_present_taskDag) {
+      if (!(this_present_taskDag && that_present_taskDag))
+        return false;
+      if (!this.taskDag.equals(that.taskDag))
+        return false;
+    }
+
+    boolean this_present_processError = true && this.isSetProcessError();
+    boolean that_present_processError = true && that.isSetProcessError();
+    if (this_present_processError || that_present_processError) {
+      if (!(this_present_processError && that_present_processError))
+        return false;
+      if (!this.processError.equals(that.processError))
+        return false;
+    }
+
+    boolean this_present_gatewayExecutionId = true && this.isSetGatewayExecutionId();
+    boolean that_present_gatewayExecutionId = true && that.isSetGatewayExecutionId();
+    if (this_present_gatewayExecutionId || that_present_gatewayExecutionId) {
+      if (!(this_present_gatewayExecutionId && that_present_gatewayExecutionId))
+        return false;
+      if (!this.gatewayExecutionId.equals(that.gatewayExecutionId))
+        return false;
+    }
+
+    boolean this_present_enableEmailNotification = true && this.isSetEnableEmailNotification();
+    boolean that_present_enableEmailNotification = true && that.isSetEnableEmailNotification();
+    if (this_present_enableEmailNotification || that_present_enableEmailNotification) {
+      if (!(this_present_enableEmailNotification && that_present_enableEmailNotification))
+        return false;
+      if (this.enableEmailNotification != that.enableEmailNotification)
+        return false;
+    }
+
+    boolean this_present_emailAddresses = true && this.isSetEmailAddresses();
+    boolean that_present_emailAddresses = true && that.isSetEmailAddresses();
+    if (this_present_emailAddresses || that_present_emailAddresses) {
+      if (!(this_present_emailAddresses && that_present_emailAddresses))
+        return false;
+      if (!this.emailAddresses.equals(that.emailAddresses))
+        return false;
+    }
+
+    boolean this_present_storageResourceId = true && this.isSetStorageResourceId();
+    boolean that_present_storageResourceId = true && that.isSetStorageResourceId();
+    if (this_present_storageResourceId || that_present_storageResourceId) {
+      if (!(this_present_storageResourceId && that_present_storageResourceId))
+        return false;
+      if (!this.storageResourceId.equals(that.storageResourceId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_processId = true && (isSetProcessId());
+    list.add(present_processId);
+    if (present_processId)
+      list.add(processId);
+
+    boolean present_experimentId = true && (isSetExperimentId());
+    list.add(present_experimentId);
+    if (present_experimentId)
+      list.add(experimentId);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_lastUpdateTime = true && (isSetLastUpdateTime());
+    list.add(present_lastUpdateTime);
+    if (present_lastUpdateTime)
+      list.add(lastUpdateTime);
+
+    boolean present_processStatus = true && (isSetProcessStatus());
+    list.add(present_processStatus);
+    if (present_processStatus)
+      list.add(processStatus);
+
+    boolean present_processDetail = true && (isSetProcessDetail());
+    list.add(present_processDetail);
+    if (present_processDetail)
+      list.add(processDetail);
+
+    boolean present_applicationInterfaceId = true && (isSetApplicationInterfaceId());
+    list.add(present_applicationInterfaceId);
+    if (present_applicationInterfaceId)
+      list.add(applicationInterfaceId);
+
+    boolean present_applicationDeploymentId = true && (isSetApplicationDeploymentId());
+    list.add(present_applicationDeploymentId);
+    if (present_applicationDeploymentId)
+      list.add(applicationDeploymentId);
+
+    boolean present_computeResourceId = true && (isSetComputeResourceId());
+    list.add(present_computeResourceId);
+    if (present_computeResourceId)
+      list.add(computeResourceId);
+
+    boolean present_processInputs = true && (isSetProcessInputs());
+    list.add(present_processInputs);
+    if (present_processInputs)
+      list.add(processInputs);
+
+    boolean present_processOutputs = true && (isSetProcessOutputs());
+    list.add(present_processOutputs);
+    if (present_processOutputs)
+      list.add(processOutputs);
+
+    boolean present_resourceSchedule = true && (isSetResourceSchedule());
+    list.add(present_resourceSchedule);
+    if (present_resourceSchedule)
+      list.add(resourceSchedule);
+
+    boolean present_tasks = true && (isSetTasks());
+    list.add(present_tasks);
+    if (present_tasks)
+      list.add(tasks);
+
+    boolean present_taskDag = true && (isSetTaskDag());
+    list.add(present_taskDag);
+    if (present_taskDag)
+      list.add(taskDag);
+
+    boolean present_processError = true && (isSetProcessError());
+    list.add(present_processError);
+    if (present_processError)
+      list.add(processError);
+
+    boolean present_gatewayExecutionId = true && (isSetGatewayExecutionId());
+    list.add(present_gatewayExecutionId);
+    if (present_gatewayExecutionId)
+      list.add(gatewayExecutionId);
+
+    boolean present_enableEmailNotification = true && (isSetEnableEmailNotification());
+    list.add(present_enableEmailNotification);
+    if (present_enableEmailNotification)
+      list.add(enableEmailNotification);
+
+    boolean present_emailAddresses = true && (isSetEmailAddresses());
+    list.add(present_emailAddresses);
+    if (present_emailAddresses)
+      list.add(emailAddresses);
+
+    boolean present_storageResourceId = true && (isSetStorageResourceId());
+    list.add(present_storageResourceId);
+    if (present_storageResourceId)
+      list.add(storageResourceId);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ProcessModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 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 = Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCreationTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creationTime, other.creationTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLastUpdateTime()).compareTo(other.isSetLastUpdateTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLastUpdateTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastUpdateTime, other.lastUpdateTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessStatus()).compareTo(other.isSetProcessStatus());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessStatus()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processStatus, other.processStatus);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessDetail()).compareTo(other.isSetProcessDetail());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessDetail()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processDetail, other.processDetail);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationInterfaceId()).compareTo(other.isSetApplicationInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationInterfaceId, other.applicationInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationDeploymentId()).compareTo(other.isSetApplicationDeploymentId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationDeploymentId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationDeploymentId, other.applicationDeploymentId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetComputeResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessInputs()).compareTo(other.isSetProcessInputs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessInputs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processInputs, other.processInputs);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessOutputs()).compareTo(other.isSetProcessOutputs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessOutputs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processOutputs, other.processOutputs);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceSchedule()).compareTo(other.isSetResourceSchedule());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceSchedule()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceSchedule, other.resourceSchedule);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTasks()).compareTo(other.isSetTasks());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTasks()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tasks, other.tasks);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTaskDag()).compareTo(other.isSetTaskDag());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskDag()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskDag, other.taskDag);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessError()).compareTo(other.isSetProcessError());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessError()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processError, other.processError);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayExecutionId()).compareTo(other.isSetGatewayExecutionId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayExecutionId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayExecutionId, other.gatewayExecutionId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetEnableEmailNotification()).compareTo(other.isSetEnableEmailNotification());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEnableEmailNotification()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enableEmailNotification, other.enableEmailNotification);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetEmailAddresses()).compareTo(other.isSetEmailAddresses());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEmailAddresses()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.emailAddresses, other.emailAddresses);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
+      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 {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("ProcessModel(");
+    boolean first = true;
+
+    sb.append("processId:");
+    if (this.processId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.processId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("experimentId:");
+    if (this.experimentId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentId);
+    }
+    first = false;
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetLastUpdateTime()) {
+      if (!first) sb.append(", ");
+      sb.append("lastUpdateTime:");
+      sb.append(this.lastUpdateTime);
+      first = false;
+    }
+    if (isSetProcessStatus()) {
+      if (!first) sb.append(", ");
+      sb.append("processStatus:");
+      if (this.processStatus == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processStatus);
+      }
+      first = false;
+    }
+    if (isSetProcessDetail()) {
+      if (!first) sb.append(", ");
+      sb.append("processDetail:");
+      if (this.processDetail == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processDetail);
+      }
+      first = false;
+    }
+    if (isSetApplicationInterfaceId()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationInterfaceId:");
+      if (this.applicationInterfaceId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationInterfaceId);
+      }
+      first = false;
+    }
+    if (isSetApplicationDeploymentId()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationDeploymentId:");
+      if (this.applicationDeploymentId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationDeploymentId);
+      }
+      first = false;
+    }
+    if (isSetComputeResourceId()) {
+      if (!first) sb.append(", ");
+      sb.append("computeResourceId:");
+      if (this.computeResourceId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.computeResourceId);
+      }
+      first = false;
+    }
+    if (isSetProcessInputs()) {
+      if (!first) sb.append(", ");
+      sb.append("processInputs:");
+      if (this.processInputs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processInputs);
+      }
+      first = false;
+    }
+    if (isSetProcessOutputs()) {
+      if (!first) sb.append(", ");
+      sb.append("processOutputs:");
+      if (this.processOutputs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processOutputs);
+      }
+      first = false;
+    }
+    if (isSetResourceSchedule()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceSchedule:");
+      if (this.resourceSchedule == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceSchedule);
+      }
+      first = false;
+    }
+    if (isSetTasks()) {
+      if (!first) sb.append(", ");
+      sb.append("tasks:");
+      if (this.tasks == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.tasks);
+      }
+      first = false;
+    }
+    if (isSetTaskDag()) {
+      if (!first) sb.append(", ");
+      sb.append("taskDag:");
+      if (this.taskDag == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.taskDag);
+      }
+      first = false;
+    }
+    if (isSetProcessError()) {
+      if (!first) sb.append(", ");
+      sb.append("processError:");
+      if (this.processError == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processError);
+      }
+      first = false;
+    }
+    if (isSetGatewayExecutionId()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayExecutionId:");
+      if (this.gatewayExecutionId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayExecutionId);
+      }
+      first = false;
+    }
+    if (isSetEnableEmailNotification()) {
+      if (!first) sb.append(", ");
+      sb.append("enableEmailNotification:");
+      sb.append(this.enableEmailNotification);
+      first = false;
+    }
+    if (isSetEmailAddresses()) {
+      if (!first) sb.append(", ");
+      sb.append("emailAddresses:");
+      if (this.emailAddresses == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.emailAddresses);
+      }
+      first = false;
+    }
+    if (isSetStorageResourceId()) {
+      if (!first) sb.append(", ");
+      sb.append("storageResourceId:");
+      if (this.storageResourceId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.storageResourceId);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (processId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
+    }
+    if (experimentId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (processStatus != null) {
+      processStatus.validate();
+    }
+    if (resourceSchedule != null) {
+      resourceSchedule.validate();
+    }
+    if (processError != null) {
+      processError.validate();
+    }
+  }
+
+  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, 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 ProcessModelStandardSchemeFactory implements SchemeFactory {
+    public ProcessModelStandardScheme getScheme() {
+      return new ProcessModelStandardScheme();
+    }
+  }
+
+  private static class ProcessModelStandardScheme extends StandardScheme<ProcessModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ProcessModel 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: // PROCESS_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.processId = iprot.readString();
+              struct.setProcessIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // 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 3: // CREATION_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.creationTime = iprot.readI64();
+              struct.setCreationTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // LAST_UPDATE_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.lastUpdateTime = iprot.readI64();
+              struct.setLastUpdateTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // PROCESS_STATUS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.processStatus = new org.apache.airavata.model.status.ProcessStatus();
+              struct.processStatus.read(iprot);
+              struct.setProcessStatusIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // PROCESS_DETAIL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.processDetail = iprot.readString();
+              struct.setProcessDetailIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // APPLICATION_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.applicationInterfaceId = iprot.readString();
+              struct.setApplicationInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // APPLICATION_DEPLOYMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.applicationDeploymentId = iprot.readString();
+              struct.setApplicationDeploymentIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // COMPUTE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.computeResourceId = iprot.readString();
+              struct.setComputeResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // PROCESS_INPUTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.processInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(_list0.size);
+                org.apache.airavata.model.application.io.InputDataObjectType _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new org.apache.airavata.model.application.io.InputDataObjectType();
+                  _elem1.read(iprot);
+                  struct.processInputs.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setProcessInputsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // PROCESS_OUTPUTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.processOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list3.size);
+                org.apache.airavata.model.application.io.OutputDataObjectType _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+                  _elem4.read(iprot);
+                  struct.processOutputs.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
+              struct.setProcessOutputsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // RESOURCE_SCHEDULE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.resourceSchedule = new org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel();
+              struct.resourceSchedule.read(iprot);
+              struct.setResourceScheduleIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 13: // TASKS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list6 = iprot.readListBegin();
+                struct.tasks = new ArrayList<org.apache.airavata.model.task.TaskModel>(_list6.size);
+                org.apache.airavata.model.task.TaskModel _elem7;
+                for (int _i8 = 0; _i8 < _list6.size; ++_i8)
+                {
+                  _elem7 = new org.apache.airavata.model.task.TaskModel();
+                  _elem7.read(iprot);
+                  struct.tasks.add(_elem7);
+                }
+                iprot.readListEnd();
+              }
+              struct.setTasksIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 14: // TASK_DAG
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.taskDag = iprot.readString();
+              struct.setTaskDagIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 15: // PROCESS_ERROR
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.processError = new org.apache.airavata.model.commons.ErrorModel();
+              struct.processError.read(iprot);
+              struct.setProcessErrorIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 16: // GATEWAY_EXECUTION_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayExecutionId = iprot.readString();
+              struct.setGatewayExecutionIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 17: // ENABLE_EMAIL_NOTIFICATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.enableEmailNotification = iprot.readBool();
+              struct.setEnableEmailNotificationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 18: // EMAIL_ADDRESSES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list9 = iprot.readListBegin();
+                struct.emailAddresses = new ArrayList<String>(_list9.size);
+                String _elem10;
+                for (int _i11 = 0; _i11 < _list9.size; ++_i11)
+                {
+                  _elem10 = iprot.readString();
+                  struct.emailAddresses.add(_elem10);
+                }
+                iprot.readListEnd();
+              }
+              struct.setEmailAddressesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 19: // STORAGE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageResourceId = iprot.readString();
+              struct.setStorageResourceIdIsSet(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();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ProcessModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.processId != null) {
+        oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+        oprot.writeString(struct.processId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentId != null) {
+        oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.experimentId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetLastUpdateTime()) {
+        oprot.writeFieldBegin(LAST_UPDATE_TIME_FIELD_DESC);
+        oprot.writeI64(struct.lastUpdateTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.processStatus != null) {
+        if (struct.isSetProcessStatus()) {
+          oprot.writeFieldBegin(PROCESS_STATUS_FIELD_DESC);
+          struct.processStatus.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.processDetail != null) {
+        if (struct.isSetProcessDetail()) {
+          oprot.writeFieldBegin(PROCESS_DETAIL_FIELD_DESC);
+          oprot.writeString(struct.processDetail);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.applicationInterfaceId != null) {
+        if (struct.isSetApplicationInterfaceId()) {
+          oprot.writeFieldBegin(APPLICATION_INTERFACE_ID_FIELD_DESC);
+          oprot.writeString(struct.applicationInterfaceId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.applicationDeploymentId != null) {
+        if (struct.isSetApplicationDeploymentId()) {
+          oprot.writeFieldBegin(APPLICATION_DEPLOYMENT_ID_FIELD_DESC);
+          oprot.writeString(struct.applicationDeploymentId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.computeResourceId != null) {
+        if (struct.isSetComputeResourceId()) {
+          oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
+          oprot.writeString(struct.computeResourceId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.processInputs != null) {
+        if (struct.isSetProcessInputs()) {
+          oprot.writeFieldBegin(PROCESS_INPUTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.processInputs.size()));
+            for (org.apache.airavata.model.application.io.InputDataObjectType _iter12 : struct.processInputs)
+            {
+              _iter12.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.processOutputs != null) {
+        if (struct.isSetProcessOutputs()) {
+          oprot.writeFieldBegin(PROCESS_OUTPUTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.processOutputs.size()));
+            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter13 : struct.processOutputs)
+            {
+              _iter13.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceSchedule != null) {
+        if (struct.isSetResourceSchedule()) {
+          oprot.writeFieldBegin(RESOURCE_SCHEDULE_FIELD_DESC);
+          struct.resourceSchedule.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.tasks != null) {
+        if (struct.isSetTasks()) {
+          oprot.writeFieldBegin(TASKS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.tasks.size()));
+            for (org.apache.airavata.model.task.TaskModel _iter14 : struct.tasks)
+            {
+              _iter14.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.taskDag != null) {
+        if (struct.isSetTaskDag()) {
+          oprot.writeFieldBegin(TASK_DAG_FIELD_DESC);
+          oprot.writeString(struct.taskDag);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.processError != null) {
+        if (struct.isSetProcessError()) {
+          oprot.writeFieldBegin(PROCESS_ERROR_FIELD_DESC);
+          struct.processError.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.gatewayExecutionId != null) {
+        if (struct.isSetGatewayExecutionId()) {
+          oprot.writeFieldBegin(GATEWAY_EXECUTION_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayExecutionId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetEnableEmailNotification()) {
+        oprot.writeFieldBegin(ENABLE_EMAIL_NOTIFICATION_FIELD_DESC);
+        oprot.writeBool(struct.enableEmailNotification);
+        oprot.writeFieldEnd();
+      }
+      if (struct.emailAddresses != null) {
+        if (struct.isSetEmailAddresses()) {
+          oprot.writeFieldBegin(EMAIL_ADDRESSES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.emailAddresses.size()));
+            for (String _iter15 : struct.emailAddresses)
+            {
+              oprot.writeString(_iter15);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.storageResourceId != null) {
+        if (struct.isSetStorageResourceId()) {
+          oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
+          oprot.writeString(struct.storageResourceId);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ProcessModelTupleSchemeFactory implements SchemeFactory {
+    public ProcessModelTupleScheme getScheme() {
+      return new ProcessModelTupleScheme();
+    }
+  }
+
+  private static class ProcessModelTupleScheme extends TupleScheme<ProcessModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ProcessModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.processId);
+      oprot.writeString(struct.experimentId);
+      BitSet optionals = new BitSet();
+      if (struct.isSetCreationTime()) {
+        optionals.set(0);
+      }
+      if (struc

<TRUNCATED>