You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2014/02/18 04:40:52 UTC

[02/23] Commiting the generated data from modified models - AIRAVATA-1017

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46488d5/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskStatus.java
new file mode 100644
index 0000000..36cb631
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskStatus.java
@@ -0,0 +1,509 @@
+    /*
+     * 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.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.workspace.experiment;
+
+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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class TaskStatus implements org.apache.thrift.TBase<TaskStatus, TaskStatus._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatus> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatus");
+
+  private static final org.apache.thrift.protocol.TField EXECUTION_STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("executionState", 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 Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TaskStatusStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TaskStatusTupleSchemeFactory());
+  }
+
+  private TaskState executionState; // required
+  private long timeOfStateChange; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see TaskState
+     */
+    EXECUTION_STATE((short)1, "executionState"),
+    TIME_OF_STATE_CHANGE((short)2, "timeOfStateChange");
+
+    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: // EXECUTION_STATE
+          return EXECUTION_STATE;
+        case 2: // TIME_OF_STATE_CHANGE
+          return TIME_OF_STATE_CHANGE;
+        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 __TIMEOFSTATECHANGE_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.TIME_OF_STATE_CHANGE};
+  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.EXECUTION_STATE, new org.apache.thrift.meta_data.FieldMetaData("executionState", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TaskState.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)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TaskStatus.class, metaDataMap);
+  }
+
+  public TaskStatus() {
+  }
+
+  public TaskStatus(
+    TaskState executionState)
+  {
+    this();
+    this.executionState = executionState;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TaskStatus(TaskStatus other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetExecutionState()) {
+      this.executionState = other.executionState;
+    }
+    this.timeOfStateChange = other.timeOfStateChange;
+  }
+
+  public TaskStatus deepCopy() {
+    return new TaskStatus(this);
+  }
+
+  @Override
+  public void clear() {
+    this.executionState = null;
+    setTimeOfStateChangeIsSet(false);
+    this.timeOfStateChange = 0;
+  }
+
+  /**
+   * 
+   * @see TaskState
+   */
+  public TaskState getExecutionState() {
+    return this.executionState;
+  }
+
+  /**
+   * 
+   * @see TaskState
+   */
+  public void setExecutionState(TaskState executionState) {
+    this.executionState = executionState;
+  }
+
+  public void unsetExecutionState() {
+    this.executionState = null;
+  }
+
+  /** Returns true if field executionState is set (has been assigned a value) and false otherwise */
+  public boolean isSetExecutionState() {
+    return this.executionState != null;
+  }
+
+  public void setExecutionStateIsSet(boolean value) {
+    if (!value) {
+      this.executionState = null;
+    }
+  }
+
+  public long getTimeOfStateChange() {
+    return this.timeOfStateChange;
+  }
+
+  public void setTimeOfStateChange(long timeOfStateChange) {
+    this.timeOfStateChange = timeOfStateChange;
+    setTimeOfStateChangeIsSet(true);
+  }
+
+  public void unsetTimeOfStateChange() {
+    __isset_bitfield = 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 EncodingUtils.testBit(__isset_bitfield, __TIMEOFSTATECHANGE_ISSET_ID);
+  }
+
+  public void setTimeOfStateChangeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TIMEOFSTATECHANGE_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case EXECUTION_STATE:
+      if (value == null) {
+        unsetExecutionState();
+      } else {
+        setExecutionState((TaskState)value);
+      }
+      break;
+
+    case TIME_OF_STATE_CHANGE:
+      if (value == null) {
+        unsetTimeOfStateChange();
+      } else {
+        setTimeOfStateChange((Long)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case EXECUTION_STATE:
+      return getExecutionState();
+
+    case TIME_OF_STATE_CHANGE:
+      return Long.valueOf(getTimeOfStateChange());
+
+    }
+    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 EXECUTION_STATE:
+      return isSetExecutionState();
+    case TIME_OF_STATE_CHANGE:
+      return isSetTimeOfStateChange();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TaskStatus)
+      return this.equals((TaskStatus)that);
+    return false;
+  }
+
+  public boolean equals(TaskStatus that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_executionState = true && this.isSetExecutionState();
+    boolean that_present_executionState = true && that.isSetExecutionState();
+    if (this_present_executionState || that_present_executionState) {
+      if (!(this_present_executionState && that_present_executionState))
+        return false;
+      if (!this.executionState.equals(that.executionState))
+        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;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(TaskStatus other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetExecutionState()).compareTo(other.isSetExecutionState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExecutionState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executionState, other.executionState);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 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;
+      }
+    }
+    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("TaskStatus(");
+    boolean first = true;
+
+    sb.append("executionState:");
+    if (this.executionState == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.executionState);
+    }
+    first = false;
+    if (isSetTimeOfStateChange()) {
+      if (!first) sb.append(", ");
+      sb.append("timeOfStateChange:");
+      sb.append(this.timeOfStateChange);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetExecutionState()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'executionState' 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, 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 TaskStatusStandardSchemeFactory implements SchemeFactory {
+    public TaskStatusStandardScheme getScheme() {
+      return new TaskStatusStandardScheme();
+    }
+  }
+
+  private static class TaskStatusStandardScheme extends StandardScheme<TaskStatus> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TaskStatus 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: // EXECUTION_STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.executionState = TaskState.findByValue(iprot.readI32());
+              struct.setExecutionStateIsSet(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;
+          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, TaskStatus struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.executionState != null) {
+        oprot.writeFieldBegin(EXECUTION_STATE_FIELD_DESC);
+        oprot.writeI32(struct.executionState.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeFieldBegin(TIME_OF_STATE_CHANGE_FIELD_DESC);
+        oprot.writeI64(struct.timeOfStateChange);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TaskStatusTupleSchemeFactory implements SchemeFactory {
+    public TaskStatusTupleScheme getScheme() {
+      return new TaskStatusTupleScheme();
+    }
+  }
+
+  private static class TaskStatusTupleScheme extends TupleScheme<TaskStatus> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TaskStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.executionState.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetTimeOfStateChange()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeI64(struct.timeOfStateChange);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TaskStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.executionState = TaskState.findByValue(iprot.readI32());
+      struct.setExecutionStateIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.timeOfStateChange = iprot.readI64();
+        struct.setTimeOfStateChangeIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46488d5/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TransferState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TransferState.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TransferState.java
new file mode 100644
index 0000000..63d750f
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TransferState.java
@@ -0,0 +1,82 @@
+    /*
+     * 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.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.workspace.experiment;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+@SuppressWarnings("all") public enum TransferState implements org.apache.thrift.TEnum {
+  SUBMITTED(0),
+  QUEUED(1),
+  ACTIVE(2),
+  COMPLETE(3),
+  CANCELED(4),
+  FAILED(5),
+  HELD(6),
+  SUSPENDED(7),
+  UNKNOWN(8);
+
+  private final int value;
+
+  private TransferState(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static TransferState findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return SUBMITTED;
+      case 1:
+        return QUEUED;
+      case 2:
+        return ACTIVE;
+      case 3:
+        return COMPLETE;
+      case 4:
+        return CANCELED;
+      case 5:
+        return FAILED;
+      case 6:
+        return HELD;
+      case 7:
+        return SUSPENDED;
+      case 8:
+        return UNKNOWN;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46488d5/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TransferStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TransferStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TransferStatus.java
new file mode 100644
index 0000000..d0399a4
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TransferStatus.java
@@ -0,0 +1,509 @@
+    /*
+     * 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.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.workspace.experiment;
+
+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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") public class TransferStatus implements org.apache.thrift.TBase<TransferStatus, TransferStatus._Fields>, java.io.Serializable, Cloneable, Comparable<TransferStatus> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TransferStatus");
+
+  private static final org.apache.thrift.protocol.TField TRANSFER_STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("transferState", 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 Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TransferStatusStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TransferStatusTupleSchemeFactory());
+  }
+
+  private TransferState transferState; // required
+  private long timeOfStateChange; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see TransferState
+     */
+    TRANSFER_STATE((short)1, "transferState"),
+    TIME_OF_STATE_CHANGE((short)2, "timeOfStateChange");
+
+    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: // TRANSFER_STATE
+          return TRANSFER_STATE;
+        case 2: // TIME_OF_STATE_CHANGE
+          return TIME_OF_STATE_CHANGE;
+        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 __TIMEOFSTATECHANGE_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.TIME_OF_STATE_CHANGE};
+  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.TRANSFER_STATE, new org.apache.thrift.meta_data.FieldMetaData("transferState", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TransferState.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)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TransferStatus.class, metaDataMap);
+  }
+
+  public TransferStatus() {
+  }
+
+  public TransferStatus(
+    TransferState transferState)
+  {
+    this();
+    this.transferState = transferState;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TransferStatus(TransferStatus other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetTransferState()) {
+      this.transferState = other.transferState;
+    }
+    this.timeOfStateChange = other.timeOfStateChange;
+  }
+
+  public TransferStatus deepCopy() {
+    return new TransferStatus(this);
+  }
+
+  @Override
+  public void clear() {
+    this.transferState = null;
+    setTimeOfStateChangeIsSet(false);
+    this.timeOfStateChange = 0;
+  }
+
+  /**
+   * 
+   * @see TransferState
+   */
+  public TransferState getTransferState() {
+    return this.transferState;
+  }
+
+  /**
+   * 
+   * @see TransferState
+   */
+  public void setTransferState(TransferState transferState) {
+    this.transferState = transferState;
+  }
+
+  public void unsetTransferState() {
+    this.transferState = null;
+  }
+
+  /** Returns true if field transferState is set (has been assigned a value) and false otherwise */
+  public boolean isSetTransferState() {
+    return this.transferState != null;
+  }
+
+  public void setTransferStateIsSet(boolean value) {
+    if (!value) {
+      this.transferState = null;
+    }
+  }
+
+  public long getTimeOfStateChange() {
+    return this.timeOfStateChange;
+  }
+
+  public void setTimeOfStateChange(long timeOfStateChange) {
+    this.timeOfStateChange = timeOfStateChange;
+    setTimeOfStateChangeIsSet(true);
+  }
+
+  public void unsetTimeOfStateChange() {
+    __isset_bitfield = 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 EncodingUtils.testBit(__isset_bitfield, __TIMEOFSTATECHANGE_ISSET_ID);
+  }
+
+  public void setTimeOfStateChangeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TIMEOFSTATECHANGE_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TRANSFER_STATE:
+      if (value == null) {
+        unsetTransferState();
+      } else {
+        setTransferState((TransferState)value);
+      }
+      break;
+
+    case TIME_OF_STATE_CHANGE:
+      if (value == null) {
+        unsetTimeOfStateChange();
+      } else {
+        setTimeOfStateChange((Long)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TRANSFER_STATE:
+      return getTransferState();
+
+    case TIME_OF_STATE_CHANGE:
+      return Long.valueOf(getTimeOfStateChange());
+
+    }
+    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 TRANSFER_STATE:
+      return isSetTransferState();
+    case TIME_OF_STATE_CHANGE:
+      return isSetTimeOfStateChange();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TransferStatus)
+      return this.equals((TransferStatus)that);
+    return false;
+  }
+
+  public boolean equals(TransferStatus that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_transferState = true && this.isSetTransferState();
+    boolean that_present_transferState = true && that.isSetTransferState();
+    if (this_present_transferState || that_present_transferState) {
+      if (!(this_present_transferState && that_present_transferState))
+        return false;
+      if (!this.transferState.equals(that.transferState))
+        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;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(TransferStatus other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetTransferState()).compareTo(other.isSetTransferState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTransferState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transferState, other.transferState);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 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;
+      }
+    }
+    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("TransferStatus(");
+    boolean first = true;
+
+    sb.append("transferState:");
+    if (this.transferState == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.transferState);
+    }
+    first = false;
+    if (isSetTimeOfStateChange()) {
+      if (!first) sb.append(", ");
+      sb.append("timeOfStateChange:");
+      sb.append(this.timeOfStateChange);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetTransferState()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'transferState' 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, 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 TransferStatusStandardSchemeFactory implements SchemeFactory {
+    public TransferStatusStandardScheme getScheme() {
+      return new TransferStatusStandardScheme();
+    }
+  }
+
+  private static class TransferStatusStandardScheme extends StandardScheme<TransferStatus> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TransferStatus 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: // TRANSFER_STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.transferState = TransferState.findByValue(iprot.readI32());
+              struct.setTransferStateIsSet(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;
+          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, TransferStatus struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.transferState != null) {
+        oprot.writeFieldBegin(TRANSFER_STATE_FIELD_DESC);
+        oprot.writeI32(struct.transferState.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeFieldBegin(TIME_OF_STATE_CHANGE_FIELD_DESC);
+        oprot.writeI64(struct.timeOfStateChange);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TransferStatusTupleSchemeFactory implements SchemeFactory {
+    public TransferStatusTupleScheme getScheme() {
+      return new TransferStatusTupleScheme();
+    }
+  }
+
+  private static class TransferStatusTupleScheme extends TupleScheme<TransferStatus> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TransferStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.transferState.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetTimeOfStateChange()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeI64(struct.timeOfStateChange);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TransferStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.transferState = TransferState.findByValue(iprot.readI32());
+      struct.setTransferStateIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.timeOfStateChange = iprot.readI64();
+        struct.setTimeOfStateChangeIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/b46488d5/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/UserConfigurationData.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/UserConfigurationData.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/UserConfigurationData.java
new file mode 100644
index 0000000..7e8b8c8
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/UserConfigurationData.java
@@ -0,0 +1,1016 @@
+    /*
+     * 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.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.workspace.experiment;
+
+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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A structure holding the experiment configuration.
+ * 
+ * 
+ */
+@SuppressWarnings("all") public class UserConfigurationData implements org.apache.thrift.TBase<UserConfigurationData, UserConfigurationData._Fields>, java.io.Serializable, Cloneable, Comparable<UserConfigurationData> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserConfigurationData");
+
+  private static final org.apache.thrift.protocol.TField AIRAVATA_AUTO_SCHEDULE_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataAutoSchedule", org.apache.thrift.protocol.TType.BOOL, (short)1);
+  private static final org.apache.thrift.protocol.TField OVERRIDE_MANUAL_SCHEDULED_PARAMS_FIELD_DESC = new org.apache.thrift.protocol.TField("overrideManualScheduledParams", org.apache.thrift.protocol.TType.BOOL, (short)2);
+  private static final org.apache.thrift.protocol.TField SHARE_EXPERIMENT_PUBLICLY_FIELD_DESC = new org.apache.thrift.protocol.TField("shareExperimentPublicly", org.apache.thrift.protocol.TType.BOOL, (short)3);
+  private static final org.apache.thrift.protocol.TField COMPUTATIONAL_RESOURCE_SCHEDULING_FIELD_DESC = new org.apache.thrift.protocol.TField("computationalResourceScheduling", org.apache.thrift.protocol.TType.STRUCT, (short)4);
+  private static final org.apache.thrift.protocol.TField ADVANCE_INPUT_DATA_HANDLING_FIELD_DESC = new org.apache.thrift.protocol.TField("advanceInputDataHandling", org.apache.thrift.protocol.TType.STRUCT, (short)5);
+  private static final org.apache.thrift.protocol.TField ADVANCE_OUTPUT_DATA_HANDLING_FIELD_DESC = new org.apache.thrift.protocol.TField("advanceOutputDataHandling", org.apache.thrift.protocol.TType.STRUCT, (short)6);
+  private static final org.apache.thrift.protocol.TField QOS_PARAMS_FIELD_DESC = new org.apache.thrift.protocol.TField("qosParams", org.apache.thrift.protocol.TType.STRUCT, (short)7);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UserConfigurationDataStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UserConfigurationDataTupleSchemeFactory());
+  }
+
+  private boolean airavataAutoSchedule; // required
+  private boolean overrideManualScheduledParams; // required
+  private boolean shareExperimentPublicly; // optional
+  private ComputationalResourceScheduling computationalResourceScheduling; // optional
+  private AdvancedInputDataHandling advanceInputDataHandling; // optional
+  private AdvancedOutputDataHandling advanceOutputDataHandling; // optional
+  private QualityOfServiceParams qosParams; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    AIRAVATA_AUTO_SCHEDULE((short)1, "airavataAutoSchedule"),
+    OVERRIDE_MANUAL_SCHEDULED_PARAMS((short)2, "overrideManualScheduledParams"),
+    SHARE_EXPERIMENT_PUBLICLY((short)3, "shareExperimentPublicly"),
+    COMPUTATIONAL_RESOURCE_SCHEDULING((short)4, "computationalResourceScheduling"),
+    ADVANCE_INPUT_DATA_HANDLING((short)5, "advanceInputDataHandling"),
+    ADVANCE_OUTPUT_DATA_HANDLING((short)6, "advanceOutputDataHandling"),
+    QOS_PARAMS((short)7, "qosParams");
+
+    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: // AIRAVATA_AUTO_SCHEDULE
+          return AIRAVATA_AUTO_SCHEDULE;
+        case 2: // OVERRIDE_MANUAL_SCHEDULED_PARAMS
+          return OVERRIDE_MANUAL_SCHEDULED_PARAMS;
+        case 3: // SHARE_EXPERIMENT_PUBLICLY
+          return SHARE_EXPERIMENT_PUBLICLY;
+        case 4: // COMPUTATIONAL_RESOURCE_SCHEDULING
+          return COMPUTATIONAL_RESOURCE_SCHEDULING;
+        case 5: // ADVANCE_INPUT_DATA_HANDLING
+          return ADVANCE_INPUT_DATA_HANDLING;
+        case 6: // ADVANCE_OUTPUT_DATA_HANDLING
+          return ADVANCE_OUTPUT_DATA_HANDLING;
+        case 7: // QOS_PARAMS
+          return QOS_PARAMS;
+        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 __AIRAVATAAUTOSCHEDULE_ISSET_ID = 0;
+  private static final int __OVERRIDEMANUALSCHEDULEDPARAMS_ISSET_ID = 1;
+  private static final int __SHAREEXPERIMENTPUBLICLY_ISSET_ID = 2;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.SHARE_EXPERIMENT_PUBLICLY,_Fields.COMPUTATIONAL_RESOURCE_SCHEDULING,_Fields.ADVANCE_INPUT_DATA_HANDLING,_Fields.ADVANCE_OUTPUT_DATA_HANDLING,_Fields.QOS_PARAMS};
+  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.AIRAVATA_AUTO_SCHEDULE, new org.apache.thrift.meta_data.FieldMetaData("airavataAutoSchedule", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.OVERRIDE_MANUAL_SCHEDULED_PARAMS, new org.apache.thrift.meta_data.FieldMetaData("overrideManualScheduledParams", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.SHARE_EXPERIMENT_PUBLICLY, new org.apache.thrift.meta_data.FieldMetaData("shareExperimentPublicly", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.COMPUTATIONAL_RESOURCE_SCHEDULING, new org.apache.thrift.meta_data.FieldMetaData("computationalResourceScheduling", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComputationalResourceScheduling.class)));
+    tmpMap.put(_Fields.ADVANCE_INPUT_DATA_HANDLING, new org.apache.thrift.meta_data.FieldMetaData("advanceInputDataHandling", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdvancedInputDataHandling.class)));
+    tmpMap.put(_Fields.ADVANCE_OUTPUT_DATA_HANDLING, new org.apache.thrift.meta_data.FieldMetaData("advanceOutputDataHandling", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AdvancedOutputDataHandling.class)));
+    tmpMap.put(_Fields.QOS_PARAMS, new org.apache.thrift.meta_data.FieldMetaData("qosParams", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, QualityOfServiceParams.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UserConfigurationData.class, metaDataMap);
+  }
+
+  public UserConfigurationData() {
+    this.airavataAutoSchedule = false;
+
+    this.overrideManualScheduledParams = false;
+
+    this.shareExperimentPublicly = false;
+
+  }
+
+  public UserConfigurationData(
+    boolean airavataAutoSchedule,
+    boolean overrideManualScheduledParams)
+  {
+    this();
+    this.airavataAutoSchedule = airavataAutoSchedule;
+    setAiravataAutoScheduleIsSet(true);
+    this.overrideManualScheduledParams = overrideManualScheduledParams;
+    setOverrideManualScheduledParamsIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public UserConfigurationData(UserConfigurationData other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.airavataAutoSchedule = other.airavataAutoSchedule;
+    this.overrideManualScheduledParams = other.overrideManualScheduledParams;
+    this.shareExperimentPublicly = other.shareExperimentPublicly;
+    if (other.isSetComputationalResourceScheduling()) {
+      this.computationalResourceScheduling = new ComputationalResourceScheduling(other.computationalResourceScheduling);
+    }
+    if (other.isSetAdvanceInputDataHandling()) {
+      this.advanceInputDataHandling = new AdvancedInputDataHandling(other.advanceInputDataHandling);
+    }
+    if (other.isSetAdvanceOutputDataHandling()) {
+      this.advanceOutputDataHandling = new AdvancedOutputDataHandling(other.advanceOutputDataHandling);
+    }
+    if (other.isSetQosParams()) {
+      this.qosParams = new QualityOfServiceParams(other.qosParams);
+    }
+  }
+
+  public UserConfigurationData deepCopy() {
+    return new UserConfigurationData(this);
+  }
+
+  @Override
+  public void clear() {
+    this.airavataAutoSchedule = false;
+
+    this.overrideManualScheduledParams = false;
+
+    this.shareExperimentPublicly = false;
+
+    this.computationalResourceScheduling = null;
+    this.advanceInputDataHandling = null;
+    this.advanceOutputDataHandling = null;
+    this.qosParams = null;
+  }
+
+  public boolean isAiravataAutoSchedule() {
+    return this.airavataAutoSchedule;
+  }
+
+  public void setAiravataAutoSchedule(boolean airavataAutoSchedule) {
+    this.airavataAutoSchedule = airavataAutoSchedule;
+    setAiravataAutoScheduleIsSet(true);
+  }
+
+  public void unsetAiravataAutoSchedule() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __AIRAVATAAUTOSCHEDULE_ISSET_ID);
+  }
+
+  /** Returns true if field airavataAutoSchedule is set (has been assigned a value) and false otherwise */
+  public boolean isSetAiravataAutoSchedule() {
+    return EncodingUtils.testBit(__isset_bitfield, __AIRAVATAAUTOSCHEDULE_ISSET_ID);
+  }
+
+  public void setAiravataAutoScheduleIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __AIRAVATAAUTOSCHEDULE_ISSET_ID, value);
+  }
+
+  public boolean isOverrideManualScheduledParams() {
+    return this.overrideManualScheduledParams;
+  }
+
+  public void setOverrideManualScheduledParams(boolean overrideManualScheduledParams) {
+    this.overrideManualScheduledParams = overrideManualScheduledParams;
+    setOverrideManualScheduledParamsIsSet(true);
+  }
+
+  public void unsetOverrideManualScheduledParams() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __OVERRIDEMANUALSCHEDULEDPARAMS_ISSET_ID);
+  }
+
+  /** Returns true if field overrideManualScheduledParams is set (has been assigned a value) and false otherwise */
+  public boolean isSetOverrideManualScheduledParams() {
+    return EncodingUtils.testBit(__isset_bitfield, __OVERRIDEMANUALSCHEDULEDPARAMS_ISSET_ID);
+  }
+
+  public void setOverrideManualScheduledParamsIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __OVERRIDEMANUALSCHEDULEDPARAMS_ISSET_ID, value);
+  }
+
+  public boolean isShareExperimentPublicly() {
+    return this.shareExperimentPublicly;
+  }
+
+  public void setShareExperimentPublicly(boolean shareExperimentPublicly) {
+    this.shareExperimentPublicly = shareExperimentPublicly;
+    setShareExperimentPubliclyIsSet(true);
+  }
+
+  public void unsetShareExperimentPublicly() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SHAREEXPERIMENTPUBLICLY_ISSET_ID);
+  }
+
+  /** Returns true if field shareExperimentPublicly is set (has been assigned a value) and false otherwise */
+  public boolean isSetShareExperimentPublicly() {
+    return EncodingUtils.testBit(__isset_bitfield, __SHAREEXPERIMENTPUBLICLY_ISSET_ID);
+  }
+
+  public void setShareExperimentPubliclyIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SHAREEXPERIMENTPUBLICLY_ISSET_ID, value);
+  }
+
+  public ComputationalResourceScheduling getComputationalResourceScheduling() {
+    return this.computationalResourceScheduling;
+  }
+
+  public void setComputationalResourceScheduling(ComputationalResourceScheduling computationalResourceScheduling) {
+    this.computationalResourceScheduling = computationalResourceScheduling;
+  }
+
+  public void unsetComputationalResourceScheduling() {
+    this.computationalResourceScheduling = null;
+  }
+
+  /** Returns true if field computationalResourceScheduling is set (has been assigned a value) and false otherwise */
+  public boolean isSetComputationalResourceScheduling() {
+    return this.computationalResourceScheduling != null;
+  }
+
+  public void setComputationalResourceSchedulingIsSet(boolean value) {
+    if (!value) {
+      this.computationalResourceScheduling = null;
+    }
+  }
+
+  public AdvancedInputDataHandling getAdvanceInputDataHandling() {
+    return this.advanceInputDataHandling;
+  }
+
+  public void setAdvanceInputDataHandling(AdvancedInputDataHandling advanceInputDataHandling) {
+    this.advanceInputDataHandling = advanceInputDataHandling;
+  }
+
+  public void unsetAdvanceInputDataHandling() {
+    this.advanceInputDataHandling = null;
+  }
+
+  /** Returns true if field advanceInputDataHandling is set (has been assigned a value) and false otherwise */
+  public boolean isSetAdvanceInputDataHandling() {
+    return this.advanceInputDataHandling != null;
+  }
+
+  public void setAdvanceInputDataHandlingIsSet(boolean value) {
+    if (!value) {
+      this.advanceInputDataHandling = null;
+    }
+  }
+
+  public AdvancedOutputDataHandling getAdvanceOutputDataHandling() {
+    return this.advanceOutputDataHandling;
+  }
+
+  public void setAdvanceOutputDataHandling(AdvancedOutputDataHandling advanceOutputDataHandling) {
+    this.advanceOutputDataHandling = advanceOutputDataHandling;
+  }
+
+  public void unsetAdvanceOutputDataHandling() {
+    this.advanceOutputDataHandling = null;
+  }
+
+  /** Returns true if field advanceOutputDataHandling is set (has been assigned a value) and false otherwise */
+  public boolean isSetAdvanceOutputDataHandling() {
+    return this.advanceOutputDataHandling != null;
+  }
+
+  public void setAdvanceOutputDataHandlingIsSet(boolean value) {
+    if (!value) {
+      this.advanceOutputDataHandling = null;
+    }
+  }
+
+  public QualityOfServiceParams getQosParams() {
+    return this.qosParams;
+  }
+
+  public void setQosParams(QualityOfServiceParams qosParams) {
+    this.qosParams = qosParams;
+  }
+
+  public void unsetQosParams() {
+    this.qosParams = null;
+  }
+
+  /** Returns true if field qosParams is set (has been assigned a value) and false otherwise */
+  public boolean isSetQosParams() {
+    return this.qosParams != null;
+  }
+
+  public void setQosParamsIsSet(boolean value) {
+    if (!value) {
+      this.qosParams = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case AIRAVATA_AUTO_SCHEDULE:
+      if (value == null) {
+        unsetAiravataAutoSchedule();
+      } else {
+        setAiravataAutoSchedule((Boolean)value);
+      }
+      break;
+
+    case OVERRIDE_MANUAL_SCHEDULED_PARAMS:
+      if (value == null) {
+        unsetOverrideManualScheduledParams();
+      } else {
+        setOverrideManualScheduledParams((Boolean)value);
+      }
+      break;
+
+    case SHARE_EXPERIMENT_PUBLICLY:
+      if (value == null) {
+        unsetShareExperimentPublicly();
+      } else {
+        setShareExperimentPublicly((Boolean)value);
+      }
+      break;
+
+    case COMPUTATIONAL_RESOURCE_SCHEDULING:
+      if (value == null) {
+        unsetComputationalResourceScheduling();
+      } else {
+        setComputationalResourceScheduling((ComputationalResourceScheduling)value);
+      }
+      break;
+
+    case ADVANCE_INPUT_DATA_HANDLING:
+      if (value == null) {
+        unsetAdvanceInputDataHandling();
+      } else {
+        setAdvanceInputDataHandling((AdvancedInputDataHandling)value);
+      }
+      break;
+
+    case ADVANCE_OUTPUT_DATA_HANDLING:
+      if (value == null) {
+        unsetAdvanceOutputDataHandling();
+      } else {
+        setAdvanceOutputDataHandling((AdvancedOutputDataHandling)value);
+      }
+      break;
+
+    case QOS_PARAMS:
+      if (value == null) {
+        unsetQosParams();
+      } else {
+        setQosParams((QualityOfServiceParams)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case AIRAVATA_AUTO_SCHEDULE:
+      return Boolean.valueOf(isAiravataAutoSchedule());
+
+    case OVERRIDE_MANUAL_SCHEDULED_PARAMS:
+      return Boolean.valueOf(isOverrideManualScheduledParams());
+
+    case SHARE_EXPERIMENT_PUBLICLY:
+      return Boolean.valueOf(isShareExperimentPublicly());
+
+    case COMPUTATIONAL_RESOURCE_SCHEDULING:
+      return getComputationalResourceScheduling();
+
+    case ADVANCE_INPUT_DATA_HANDLING:
+      return getAdvanceInputDataHandling();
+
+    case ADVANCE_OUTPUT_DATA_HANDLING:
+      return getAdvanceOutputDataHandling();
+
+    case QOS_PARAMS:
+      return getQosParams();
+
+    }
+    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 AIRAVATA_AUTO_SCHEDULE:
+      return isSetAiravataAutoSchedule();
+    case OVERRIDE_MANUAL_SCHEDULED_PARAMS:
+      return isSetOverrideManualScheduledParams();
+    case SHARE_EXPERIMENT_PUBLICLY:
+      return isSetShareExperimentPublicly();
+    case COMPUTATIONAL_RESOURCE_SCHEDULING:
+      return isSetComputationalResourceScheduling();
+    case ADVANCE_INPUT_DATA_HANDLING:
+      return isSetAdvanceInputDataHandling();
+    case ADVANCE_OUTPUT_DATA_HANDLING:
+      return isSetAdvanceOutputDataHandling();
+    case QOS_PARAMS:
+      return isSetQosParams();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof UserConfigurationData)
+      return this.equals((UserConfigurationData)that);
+    return false;
+  }
+
+  public boolean equals(UserConfigurationData that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_airavataAutoSchedule = true;
+    boolean that_present_airavataAutoSchedule = true;
+    if (this_present_airavataAutoSchedule || that_present_airavataAutoSchedule) {
+      if (!(this_present_airavataAutoSchedule && that_present_airavataAutoSchedule))
+        return false;
+      if (this.airavataAutoSchedule != that.airavataAutoSchedule)
+        return false;
+    }
+
+    boolean this_present_overrideManualScheduledParams = true;
+    boolean that_present_overrideManualScheduledParams = true;
+    if (this_present_overrideManualScheduledParams || that_present_overrideManualScheduledParams) {
+      if (!(this_present_overrideManualScheduledParams && that_present_overrideManualScheduledParams))
+        return false;
+      if (this.overrideManualScheduledParams != that.overrideManualScheduledParams)
+        return false;
+    }
+
+    boolean this_present_shareExperimentPublicly = true && this.isSetShareExperimentPublicly();
+    boolean that_present_shareExperimentPublicly = true && that.isSetShareExperimentPublicly();
+    if (this_present_shareExperimentPublicly || that_present_shareExperimentPublicly) {
+      if (!(this_present_shareExperimentPublicly && that_present_shareExperimentPublicly))
+        return false;
+      if (this.shareExperimentPublicly != that.shareExperimentPublicly)
+        return false;
+    }
+
+    boolean this_present_computationalResourceScheduling = true && this.isSetComputationalResourceScheduling();
+    boolean that_present_computationalResourceScheduling = true && that.isSetComputationalResourceScheduling();
+    if (this_present_computationalResourceScheduling || that_present_computationalResourceScheduling) {
+      if (!(this_present_computationalResourceScheduling && that_present_computationalResourceScheduling))
+        return false;
+      if (!this.computationalResourceScheduling.equals(that.computationalResourceScheduling))
+        return false;
+    }
+
+    boolean this_present_advanceInputDataHandling = true && this.isSetAdvanceInputDataHandling();
+    boolean that_present_advanceInputDataHandling = true && that.isSetAdvanceInputDataHandling();
+    if (this_present_advanceInputDataHandling || that_present_advanceInputDataHandling) {
+      if (!(this_present_advanceInputDataHandling && that_present_advanceInputDataHandling))
+        return false;
+      if (!this.advanceInputDataHandling.equals(that.advanceInputDataHandling))
+        return false;
+    }
+
+    boolean this_present_advanceOutputDataHandling = true && this.isSetAdvanceOutputDataHandling();
+    boolean that_present_advanceOutputDataHandling = true && that.isSetAdvanceOutputDataHandling();
+    if (this_present_advanceOutputDataHandling || that_present_advanceOutputDataHandling) {
+      if (!(this_present_advanceOutputDataHandling && that_present_advanceOutputDataHandling))
+        return false;
+      if (!this.advanceOutputDataHandling.equals(that.advanceOutputDataHandling))
+        return false;
+    }
+
+    boolean this_present_qosParams = true && this.isSetQosParams();
+    boolean that_present_qosParams = true && that.isSetQosParams();
+    if (this_present_qosParams || that_present_qosParams) {
+      if (!(this_present_qosParams && that_present_qosParams))
+        return false;
+      if (!this.qosParams.equals(that.qosParams))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(UserConfigurationData other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetAiravataAutoSchedule()).compareTo(other.isSetAiravataAutoSchedule());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAiravataAutoSchedule()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataAutoSchedule, other.airavataAutoSchedule);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOverrideManualScheduledParams()).compareTo(other.isSetOverrideManualScheduledParams());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOverrideManualScheduledParams()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.overrideManualScheduledParams, other.overrideManualScheduledParams);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetShareExperimentPublicly()).compareTo(other.isSetShareExperimentPublicly());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetShareExperimentPublicly()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.shareExperimentPublicly, other.shareExperimentPublicly);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetComputationalResourceScheduling()).compareTo(other.isSetComputationalResourceScheduling());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetComputationalResourceScheduling()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computationalResourceScheduling, other.computationalResourceScheduling);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAdvanceInputDataHandling()).compareTo(other.isSetAdvanceInputDataHandling());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAdvanceInputDataHandling()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.advanceInputDataHandling, other.advanceInputDataHandling);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAdvanceOutputDataHandling()).compareTo(other.isSetAdvanceOutputDataHandling());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAdvanceOutputDataHandling()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.advanceOutputDataHandling, other.advanceOutputDataHandling);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetQosParams()).compareTo(other.isSetQosParams());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetQosParams()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.qosParams, other.qosParams);
+      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("UserConfigurationData(");
+    boolean first = true;
+
+    sb.append("airavataAutoSchedule:");
+    sb.append(this.airavataAutoSchedule);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("overrideManualScheduledParams:");
+    sb.append(this.overrideManualScheduledParams);
+    first = false;
+    if (isSetShareExperimentPublicly()) {
+      if (!first) sb.append(", ");
+      sb.append("shareExperimentPublicly:");
+      sb.append(this.shareExperimentPublicly);
+      first = false;
+    }
+    if (isSetComputationalResourceScheduling()) {
+      if (!first) sb.append(", ");
+      sb.append("computationalResourceScheduling:");
+      if (this.computationalResourceScheduling == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.computationalResourceScheduling);
+      }
+      first = false;
+    }
+    if (isSetAdvanceInputDataHandling()) {
+      if (!first) sb.append(", ");
+      sb.append("advanceInputDataHandling:");
+      if (this.advanceInputDataHandling == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.advanceInputDataHandling);
+      }
+      first = false;
+    }
+    if (isSetAdvanceOutputDataHandling()) {
+      if (!first) sb.append(", ");
+      sb.append("advanceOutputDataHandling:");
+      if (this.advanceOutputDataHandling == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.advanceOutputDataHandling);
+      }
+      first = false;
+    }
+    if (isSetQosParams()) {
+      if (!first) sb.append(", ");
+      sb.append("qosParams:");
+      if (this.qosParams == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.qosParams);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetAiravataAutoSchedule()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataAutoSchedule' is unset! Struct:" + toString());
+    }
+
+    if (!isSetOverrideManualScheduledParams()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'overrideManualScheduledParams' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+    if (computationalResourceScheduling != null) {
+      computationalResourceScheduling.validate();
+    }
+    if (advanceInputDataHandling != null) {
+      advanceInputDataHandling.validate();
+    }
+    if (advanceOutputDataHandling != null) {
+      advanceOutputDataHandling.validate();
+    }
+    if (qosParams != null) {
+      qosParams.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 UserConfigurationDataStandardSchemeFactory implements SchemeFactory {
+    public UserConfigurationDataStandardScheme getScheme() {
+      return new UserConfigurationDataStandardScheme();
+    }
+  }
+
+  private static class UserConfigurationDataStandardScheme extends StandardScheme<UserConfigurationData> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, UserConfigurationData 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: // AIRAVATA_AUTO_SCHEDULE
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.airavataAutoSchedule = iprot.readBool();
+              struct.setAiravataAutoScheduleIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // OVERRIDE_MANUAL_SCHEDULED_PARAMS
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.overrideManualScheduledParams = iprot.readBool();
+              struct.setOverrideManualScheduledParamsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // SHARE_EXPERIMENT_PUBLICLY
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.shareExperimentPublicly = iprot.readBool();
+              struct.setShareExperimentPubliclyIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // COMPUTATIONAL_RESOURCE_SCHEDULING
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.computationalResourceScheduling = new ComputationalResourceScheduling();
+              struct.computationalResourceScheduling.read(iprot);
+              struct.setComputationalResourceSchedulingIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // ADVANCE_INPUT_DATA_HANDLING
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.advanceInputDataHandling = new AdvancedInputDataHandling();
+              struct.advanceInputDataHandling.read(iprot);
+              struct.setAdvanceInputDataHandlingIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // ADVANCE_OUTPUT_DATA_HANDLING
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.advanceOutputDataHandling = new AdvancedOutputDataHandling();
+              struct.advanceOutputDataHandling.read(iprot);
+              struct.setAdvanceOutputDataHandlingIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // QOS_PARAMS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.qosParams = new QualityOfServiceParams();
+              struct.qosParams.read(iprot);
+              struct.setQosParamsIsSet(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, UserConfigurationData struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(AIRAVATA_AUTO_SCHEDULE_FIELD_DESC);
+      oprot.writeBool(struct.airavataAutoSchedule);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(OVERRIDE_MANUAL_SCHEDULED_PARAMS_FIELD_DESC);
+      oprot.writeBool(struct.overrideManualScheduledParams);
+      oprot.writeFieldEnd();
+      if (struct.isSetShareExperimentPublicly()) {
+        oprot.writeFieldBegin(SHARE_EXPERIMENT_PUBLICLY_FIELD_DESC);
+        oprot.writeBool(struct.shareExperimentPublicly);
+        oprot.writeFieldEnd();
+      }
+      if (struct.computationalResourceScheduling != null) {
+        if (struct.isSetComputationalResourceScheduling()) {
+          oprot.writeFieldBegin(COMPUTATIONAL_RESOURCE_SCHEDULING_FIELD_DESC);
+          struct.computationalResourceScheduling.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.advanceInputDataHandling != null) {
+        if (struct.isSetAdvanceInputDataHandling()) {
+          oprot.writeFieldBegin(ADVANCE_INPUT_DATA_HANDLING_FIELD_DESC);
+          struct.advanceInputDataHandling.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.advanceOutputDataHandling != null) {
+        if (struct.isSetAdvanceOutputDataHandling()) {
+          oprot.writeFieldBegin(ADVANCE_OUTPUT_DATA_HANDLING_FIELD_DESC);
+          struct.advanceOutputDataHandling.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.qosParams != null) {
+        if (struct.isSetQosParams()) {
+          oprot.writeFieldBegin(QOS_PARAMS_FIELD_DESC);
+          struct.qosParams.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UserConfigurationDataTupleSchemeFactory implements SchemeFactory {
+    public UserConfigurationDataTupleScheme getScheme() {
+      return new UserConfigurationDataTupleScheme();
+    }
+  }
+
+  private static class UserConfigurationDataTupleScheme extends TupleScheme<UserConfigurationData> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, UserConfigurationData struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeBool(struct.airavataAutoSchedule);
+      oprot.writeBool(struct.overrideManualScheduledParams);
+      BitSet optionals = new BitSet();
+      if (struct.isSetShareExperimentPublicly()) {
+        optionals.set(0);
+      }
+      if (struct.isSetComputationalResourceScheduling()) {
+        optionals.set(1);
+      }
+      if (struct.isSetAdvanceInputDataHandling()) {
+        optionals.set(2);
+      }
+      if (struct.isSetAdvanceOutputDataHandling()) {
+        optionals.set(3);
+      }
+      if (struct.isSetQosParams()) {
+        optionals.set(4);
+      }
+      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetShareExperimentPublicly()) {
+        oprot.writeBool(struct.shareExperimentPublicly);
+      }
+      if (struct.isSetComputationalResourceScheduling()) {
+        struct.computationalResourceScheduling.write(oprot);
+      }
+      if (struct.isSetAdvanceInputDataHandling()) {
+        struct.advanceInputDataHandling.write(oprot);
+      }
+      if (struct.isSetAdvanceOutputDataHandling()) {
+        struct.advanceOutputDataHandling.write(oprot);
+      }
+      if (struct.isSetQosParams()) {
+        struct.qosParams.write(oprot);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, UserConfigurationData struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.airavataAutoSchedule = iprot.readBool();
+      struct.setAiravataAutoScheduleIsSet(true);
+      struct.overrideManualScheduledParams = iprot.readBool();
+      struct.setOverrideManualScheduledParamsIsSet(true);
+      BitSet incoming = iprot.readBitSet(5);
+      if (incoming.get(0)) {
+        struct.shareExperimentPublicly = iprot.readBool();
+        struct.setShareExperimentPubliclyIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.computationalResourceScheduling = new ComputationalResourceScheduling();
+        struct.computationalResourceScheduling.read(iprot);
+        struct.setComputationalResourceSchedulingIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.advanceInputDataHandling = new AdvancedInputDataHandling();
+        struct.advanceInputDataHandling.read(iprot);
+        struct.setAdvanceInputDataHandlingIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.advanceOutputDataHandling = new AdvancedOutputDataHandling();
+        struct.advanceOutputDataHandling.read(iprot);
+        struct.setAdvanceOutputDataHandlingIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.qosParams = new QualityOfServiceParams();
+        struct.qosParams.read(iprot);
+        struct.setQosParamsIsSet(true);
+      }
+    }
+  }
+
+}
+