http://git-wip-us.apache.org/repos/asf/airavata/blob/719cbf9e/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/DataObjectType.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/DataObjectType.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/DataObjectType.java
new file mode 100644
index 0000000..f35b231
--- /dev/null
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/DataObjectType.java
@@ -0,0 +1,706 @@
+    /*
+     * 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.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  hold experiment input output
+ * 
+ */
+@SuppressWarnings("all") public class DataObjectType implements 
org.apache.thrift.TBase<DataObjectType, DataObjectType._Fields>, 
java.io.Serializable, Cloneable, Comparable<DataObjectType> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("DataObjectType");
+
+  private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new 
org.apache.thrift.protocol.TField("key", 
org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = 
new org.apache.thrift.protocol.TField("value", 
org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new 
org.apache.thrift.protocol.TField("type", 
org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField META_DATA_FIELD_DESC 
= new org.apache.thrift.protocol.TField("metaData", 
org.apache.thrift.protocol.TType.STRING, (short)4);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new 
DataObjectTypeStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new DataObjectTypeTupleSchemeFactory());
+  }
+
+  private String key; // required
+  private String value; // optional
+  private String type; // optional
+  private String metaData; // 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 {
+    KEY((short)1, "key"),
+    VALUE((short)2, "value"),
+    TYPE((short)3, "type"),
+    META_DATA((short)4, "metaData");
+
+    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: // KEY
+          return KEY;
+        case 2: // VALUE
+          return VALUE;
+        case 3: // TYPE
+          return TYPE;
+        case 4: // META_DATA
+          return META_DATA;
+        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 _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.META_DATA};
+  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.KEY, new 
org.apache.thrift.meta_data.FieldMetaData("key", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.VALUE, new 
org.apache.thrift.meta_data.FieldMetaData("value", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TYPE, new 
org.apache.thrift.meta_data.FieldMetaData("type", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.META_DATA, new 
org.apache.thrift.meta_data.FieldMetaData("metaData", 
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(DataObjectType.class,
 metaDataMap);
+  }
+
+  public DataObjectType() {
+  }
+
+  public DataObjectType(
+    String key)
+  {
+    this();
+    this.key = key;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public DataObjectType(DataObjectType other) {
+    if (other.isSetKey()) {
+      this.key = other.key;
+    }
+    if (other.isSetValue()) {
+      this.value = other.value;
+    }
+    if (other.isSetType()) {
+      this.type = other.type;
+    }
+    if (other.isSetMetaData()) {
+      this.metaData = other.metaData;
+    }
+  }
+
+  public DataObjectType deepCopy() {
+    return new DataObjectType(this);
+  }
+
+  @Override
+  public void clear() {
+    this.key = null;
+    this.value = null;
+    this.type = null;
+    this.metaData = null;
+  }
+
+  public String getKey() {
+    return this.key;
+  }
+
+  public void setKey(String key) {
+    this.key = key;
+  }
+
+  public void unsetKey() {
+    this.key = null;
+  }
+
+  /** Returns true if field key is set (has been assigned a value) and false 
otherwise */
+  public boolean isSetKey() {
+    return this.key != null;
+  }
+
+  public void setKeyIsSet(boolean value) {
+    if (!value) {
+      this.key = null;
+    }
+  }
+
+  public String getValue() {
+    return this.value;
+  }
+
+  public void setValue(String value) {
+    this.value = value;
+  }
+
+  public void unsetValue() {
+    this.value = null;
+  }
+
+  /** Returns true if field value is set (has been assigned a value) and false 
otherwise */
+  public boolean isSetValue() {
+    return this.value != null;
+  }
+
+  public void setValueIsSet(boolean value) {
+    if (!value) {
+      this.value = null;
+    }
+  }
+
+  public String getType() {
+    return this.type;
+  }
+
+  public void setType(String type) {
+    this.type = type;
+  }
+
+  public void unsetType() {
+    this.type = null;
+  }
+
+  /** Returns true if field type is set (has been assigned a value) and false 
otherwise */
+  public boolean isSetType() {
+    return this.type != null;
+  }
+
+  public void setTypeIsSet(boolean value) {
+    if (!value) {
+      this.type = null;
+    }
+  }
+
+  public String getMetaData() {
+    return this.metaData;
+  }
+
+  public void setMetaData(String metaData) {
+    this.metaData = metaData;
+  }
+
+  public void unsetMetaData() {
+    this.metaData = null;
+  }
+
+  /** Returns true if field metaData is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetMetaData() {
+    return this.metaData != null;
+  }
+
+  public void setMetaDataIsSet(boolean value) {
+    if (!value) {
+      this.metaData = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case KEY:
+      if (value == null) {
+        unsetKey();
+      } else {
+        setKey((String)value);
+      }
+      break;
+
+    case VALUE:
+      if (value == null) {
+        unsetValue();
+      } else {
+        setValue((String)value);
+      }
+      break;
+
+    case TYPE:
+      if (value == null) {
+        unsetType();
+      } else {
+        setType((String)value);
+      }
+      break;
+
+    case META_DATA:
+      if (value == null) {
+        unsetMetaData();
+      } else {
+        setMetaData((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case KEY:
+      return getKey();
+
+    case VALUE:
+      return getValue();
+
+    case TYPE:
+      return getType();
+
+    case META_DATA:
+      return getMetaData();
+
+    }
+    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 KEY:
+      return isSetKey();
+    case VALUE:
+      return isSetValue();
+    case TYPE:
+      return isSetType();
+    case META_DATA:
+      return isSetMetaData();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof DataObjectType)
+      return this.equals((DataObjectType)that);
+    return false;
+  }
+
+  public boolean equals(DataObjectType that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_key = true && this.isSetKey();
+    boolean that_present_key = true && that.isSetKey();
+    if (this_present_key || that_present_key) {
+      if (!(this_present_key && that_present_key))
+        return false;
+      if (!this.key.equals(that.key))
+        return false;
+    }
+
+    boolean this_present_value = true && this.isSetValue();
+    boolean that_present_value = true && that.isSetValue();
+    if (this_present_value || that_present_value) {
+      if (!(this_present_value && that_present_value))
+        return false;
+      if (!this.value.equals(that.value))
+        return false;
+    }
+
+    boolean this_present_type = true && this.isSetType();
+    boolean that_present_type = true && that.isSetType();
+    if (this_present_type || that_present_type) {
+      if (!(this_present_type && that_present_type))
+        return false;
+      if (!this.type.equals(that.type))
+        return false;
+    }
+
+    boolean this_present_metaData = true && this.isSetMetaData();
+    boolean that_present_metaData = true && that.isSetMetaData();
+    if (this_present_metaData || that_present_metaData) {
+      if (!(this_present_metaData && that_present_metaData))
+        return false;
+      if (!this.metaData.equals(that.metaData))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(DataObjectType other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetKey()).compareTo(other.isSetKey());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetKey()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, 
other.key);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetValue()).compareTo(other.isSetValue());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValue()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.value, 
other.value);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetType()).compareTo(other.isSetType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, 
other.type);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetMetaData()).compareTo(other.isSetMetaData());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMetaData()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.metaData, 
other.metaData);
+      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("DataObjectType(");
+    boolean first = true;
+
+    sb.append("key:");
+    if (this.key == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.key);
+    }
+    first = false;
+    if (isSetValue()) {
+      if (!first) sb.append(", ");
+      sb.append("value:");
+      if (this.value == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.value);
+      }
+      first = false;
+    }
+    if (isSetType()) {
+      if (!first) sb.append(", ");
+      sb.append("type:");
+      if (this.type == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.type);
+      }
+      first = false;
+    }
+    if (isSetMetaData()) {
+      if (!first) sb.append(", ");
+      sb.append("metaData:");
+      if (this.metaData == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.metaData);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetKey()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'key' 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 {
+      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 DataObjectTypeStandardSchemeFactory implements 
SchemeFactory {
+    public DataObjectTypeStandardScheme getScheme() {
+      return new DataObjectTypeStandardScheme();
+    }
+  }
+
+  private static class DataObjectTypeStandardScheme extends 
StandardScheme<DataObjectType> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, 
DataObjectType 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: // KEY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.key = iprot.readString();
+              struct.setKeyIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // VALUE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.value = iprot.readString();
+              struct.setValueIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 3: // TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.type = iprot.readString();
+              struct.setTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 4: // META_DATA
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.metaData = iprot.readString();
+              struct.setMetaDataIsSet(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, 
DataObjectType struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.key != null) {
+        oprot.writeFieldBegin(KEY_FIELD_DESC);
+        oprot.writeString(struct.key);
+        oprot.writeFieldEnd();
+      }
+      if (struct.value != null) {
+        if (struct.isSetValue()) {
+          oprot.writeFieldBegin(VALUE_FIELD_DESC);
+          oprot.writeString(struct.value);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.type != null) {
+        if (struct.isSetType()) {
+          oprot.writeFieldBegin(TYPE_FIELD_DESC);
+          oprot.writeString(struct.type);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.metaData != null) {
+        if (struct.isSetMetaData()) {
+          oprot.writeFieldBegin(META_DATA_FIELD_DESC);
+          oprot.writeString(struct.metaData);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class DataObjectTypeTupleSchemeFactory implements 
SchemeFactory {
+    public DataObjectTypeTupleScheme getScheme() {
+      return new DataObjectTypeTupleScheme();
+    }
+  }
+
+  private static class DataObjectTypeTupleScheme extends 
TupleScheme<DataObjectType> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, 
DataObjectType struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.key);
+      BitSet optionals = new BitSet();
+      if (struct.isSetValue()) {
+        optionals.set(0);
+      }
+      if (struct.isSetType()) {
+        optionals.set(1);
+      }
+      if (struct.isSetMetaData()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetValue()) {
+        oprot.writeString(struct.value);
+      }
+      if (struct.isSetType()) {
+        oprot.writeString(struct.type);
+      }
+      if (struct.isSetMetaData()) {
+        oprot.writeString(struct.metaData);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, DataObjectType 
struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.key = iprot.readString();
+      struct.setKeyIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.value = iprot.readString();
+        struct.setValueIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.type = iprot.readString();
+        struct.setTypeIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.metaData = iprot.readString();
+        struct.setMetaDataIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/719cbf9e/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/DataTransferDetails.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/DataTransferDetails.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/DataTransferDetails.java
new file mode 100644
index 0000000..178ab19
--- /dev/null
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/DataTransferDetails.java
@@ -0,0 +1,699 @@
+    /*
+     * 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.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 DataTransferDetails implements 
org.apache.thrift.TBase<DataTransferDetails, DataTransferDetails._Fields>, 
java.io.Serializable, Cloneable, Comparable<DataTransferDetails> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("DataTransferDetails");
+
+  private static final org.apache.thrift.protocol.TField 
TRANSFER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("transferID", 
org.apache.thrift.protocol.TType.STRING, (short)1);
+  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)2);
+  private static final org.apache.thrift.protocol.TField 
TRANSFER_DESCRIPTION_FIELD_DESC = new 
org.apache.thrift.protocol.TField("transferDescription", 
org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField 
TRANSFER_STATUS_FIELD_DESC = new 
org.apache.thrift.protocol.TField("transferStatus", 
org.apache.thrift.protocol.TType.STRUCT, (short)4);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new 
DataTransferDetailsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new 
DataTransferDetailsTupleSchemeFactory());
+  }
+
+  private String transferID; // required
+  private long creationTime; // optional
+  private String transferDescription; // required
+  private TransferStatus transferStatus; // 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 {
+    TRANSFER_ID((short)1, "transferID"),
+    CREATION_TIME((short)2, "creationTime"),
+    TRANSFER_DESCRIPTION((short)3, "transferDescription"),
+    TRANSFER_STATUS((short)4, "transferStatus");
+
+    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_ID
+          return TRANSFER_ID;
+        case 2: // CREATION_TIME
+          return CREATION_TIME;
+        case 3: // TRANSFER_DESCRIPTION
+          return TRANSFER_DESCRIPTION;
+        case 4: // TRANSFER_STATUS
+          return TRANSFER_STATUS;
+        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 byte __isset_bitfield = 0;
+  private _Fields optionals[] = 
{_Fields.CREATION_TIME,_Fields.TRANSFER_STATUS};
+  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_ID, new 
org.apache.thrift.meta_data.FieldMetaData("transferID", 
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.TRANSFER_DESCRIPTION, new 
org.apache.thrift.meta_data.FieldMetaData("transferDescription", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TRANSFER_STATUS, new 
org.apache.thrift.meta_data.FieldMetaData("transferStatus", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 TransferStatus.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataTransferDetails.class,
 metaDataMap);
+  }
+
+  public DataTransferDetails() {
+  }
+
+  public DataTransferDetails(
+    String transferID,
+    String transferDescription)
+  {
+    this();
+    this.transferID = transferID;
+    this.transferDescription = transferDescription;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public DataTransferDetails(DataTransferDetails other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetTransferID()) {
+      this.transferID = other.transferID;
+    }
+    this.creationTime = other.creationTime;
+    if (other.isSetTransferDescription()) {
+      this.transferDescription = other.transferDescription;
+    }
+    if (other.isSetTransferStatus()) {
+      this.transferStatus = new TransferStatus(other.transferStatus);
+    }
+  }
+
+  public DataTransferDetails deepCopy() {
+    return new DataTransferDetails(this);
+  }
+
+  @Override
+  public void clear() {
+    this.transferID = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    this.transferDescription = null;
+    this.transferStatus = null;
+  }
+
+  public String getTransferID() {
+    return this.transferID;
+  }
+
+  public void setTransferID(String transferID) {
+    this.transferID = transferID;
+  }
+
+  public void unsetTransferID() {
+    this.transferID = null;
+  }
+
+  /** Returns true if field transferID is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetTransferID() {
+    return this.transferID != null;
+  }
+
+  public void setTransferIDIsSet(boolean value) {
+    if (!value) {
+      this.transferID = null;
+    }
+  }
+
+  public long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public void setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+  }
+
+  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 String getTransferDescription() {
+    return this.transferDescription;
+  }
+
+  public void setTransferDescription(String transferDescription) {
+    this.transferDescription = transferDescription;
+  }
+
+  public void unsetTransferDescription() {
+    this.transferDescription = null;
+  }
+
+  /** Returns true if field transferDescription is set (has been assigned a 
value) and false otherwise */
+  public boolean isSetTransferDescription() {
+    return this.transferDescription != null;
+  }
+
+  public void setTransferDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.transferDescription = null;
+    }
+  }
+
+  public TransferStatus getTransferStatus() {
+    return this.transferStatus;
+  }
+
+  public void setTransferStatus(TransferStatus transferStatus) {
+    this.transferStatus = transferStatus;
+  }
+
+  public void unsetTransferStatus() {
+    this.transferStatus = null;
+  }
+
+  /** Returns true if field transferStatus is set (has been assigned a value) 
and false otherwise */
+  public boolean isSetTransferStatus() {
+    return this.transferStatus != null;
+  }
+
+  public void setTransferStatusIsSet(boolean value) {
+    if (!value) {
+      this.transferStatus = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TRANSFER_ID:
+      if (value == null) {
+        unsetTransferID();
+      } else {
+        setTransferID((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case TRANSFER_DESCRIPTION:
+      if (value == null) {
+        unsetTransferDescription();
+      } else {
+        setTransferDescription((String)value);
+      }
+      break;
+
+    case TRANSFER_STATUS:
+      if (value == null) {
+        unsetTransferStatus();
+      } else {
+        setTransferStatus((TransferStatus)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TRANSFER_ID:
+      return getTransferID();
+
+    case CREATION_TIME:
+      return Long.valueOf(getCreationTime());
+
+    case TRANSFER_DESCRIPTION:
+      return getTransferDescription();
+
+    case TRANSFER_STATUS:
+      return getTransferStatus();
+
+    }
+    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_ID:
+      return isSetTransferID();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case TRANSFER_DESCRIPTION:
+      return isSetTransferDescription();
+    case TRANSFER_STATUS:
+      return isSetTransferStatus();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof DataTransferDetails)
+      return this.equals((DataTransferDetails)that);
+    return false;
+  }
+
+  public boolean equals(DataTransferDetails that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_transferID = true && this.isSetTransferID();
+    boolean that_present_transferID = true && that.isSetTransferID();
+    if (this_present_transferID || that_present_transferID) {
+      if (!(this_present_transferID && that_present_transferID))
+        return false;
+      if (!this.transferID.equals(that.transferID))
+        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_transferDescription = true && 
this.isSetTransferDescription();
+    boolean that_present_transferDescription = true && 
that.isSetTransferDescription();
+    if (this_present_transferDescription || that_present_transferDescription) {
+      if (!(this_present_transferDescription && 
that_present_transferDescription))
+        return false;
+      if (!this.transferDescription.equals(that.transferDescription))
+        return false;
+    }
+
+    boolean this_present_transferStatus = true && this.isSetTransferStatus();
+    boolean that_present_transferStatus = true && that.isSetTransferStatus();
+    if (this_present_transferStatus || that_present_transferStatus) {
+      if (!(this_present_transferStatus && that_present_transferStatus))
+        return false;
+      if (!this.transferStatus.equals(that.transferStatus))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(DataTransferDetails other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = 
Boolean.valueOf(isSetTransferID()).compareTo(other.isSetTransferID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTransferID()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.transferID, other.transferID);
+      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(isSetTransferDescription()).compareTo(other.isSetTransferDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTransferDescription()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.transferDescription, 
other.transferDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetTransferStatus()).compareTo(other.isSetTransferStatus());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTransferStatus()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.transferStatus, 
other.transferStatus);
+      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("DataTransferDetails(");
+    boolean first = true;
+
+    sb.append("transferID:");
+    if (this.transferID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.transferID);
+    }
+    first = false;
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (!first) sb.append(", ");
+    sb.append("transferDescription:");
+    if (this.transferDescription == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.transferDescription);
+    }
+    first = false;
+    if (isSetTransferStatus()) {
+      if (!first) sb.append(", ");
+      sb.append("transferStatus:");
+      if (this.transferStatus == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.transferStatus);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetTransferID()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'transferID' is unset! Struct:" + toString());
+    }
+
+    if (!isSetTransferDescription()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 
'transferDescription' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+    if (transferStatus != null) {
+      transferStatus.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 DataTransferDetailsStandardSchemeFactory implements 
SchemeFactory {
+    public DataTransferDetailsStandardScheme getScheme() {
+      return new DataTransferDetailsStandardScheme();
+    }
+  }
+
+  private static class DataTransferDetailsStandardScheme extends 
StandardScheme<DataTransferDetails> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, 
DataTransferDetails 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_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.transferID = iprot.readString();
+              struct.setTransferIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // 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 3: // TRANSFER_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.transferDescription = iprot.readString();
+              struct.setTransferDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 4: // TRANSFER_STATUS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.transferStatus = new TransferStatus();
+              struct.transferStatus.read(iprot);
+              struct.setTransferStatusIsSet(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, 
DataTransferDetails struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.transferID != null) {
+        oprot.writeFieldBegin(TRANSFER_ID_FIELD_DESC);
+        oprot.writeString(struct.transferID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.transferDescription != null) {
+        oprot.writeFieldBegin(TRANSFER_DESCRIPTION_FIELD_DESC);
+        oprot.writeString(struct.transferDescription);
+        oprot.writeFieldEnd();
+      }
+      if (struct.transferStatus != null) {
+        if (struct.isSetTransferStatus()) {
+          oprot.writeFieldBegin(TRANSFER_STATUS_FIELD_DESC);
+          struct.transferStatus.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class DataTransferDetailsTupleSchemeFactory implements 
SchemeFactory {
+    public DataTransferDetailsTupleScheme getScheme() {
+      return new DataTransferDetailsTupleScheme();
+    }
+  }
+
+  private static class DataTransferDetailsTupleScheme extends 
TupleScheme<DataTransferDetails> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, 
DataTransferDetails struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.transferID);
+      oprot.writeString(struct.transferDescription);
+      BitSet optionals = new BitSet();
+      if (struct.isSetCreationTime()) {
+        optionals.set(0);
+      }
+      if (struct.isSetTransferStatus()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetTransferStatus()) {
+        struct.transferStatus.write(oprot);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, 
DataTransferDetails struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.transferID = iprot.readString();
+      struct.setTransferIDIsSet(true);
+      struct.transferDescription = iprot.readString();
+      struct.setTransferDescriptionIsSet(true);
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.transferStatus = new TransferStatus();
+        struct.transferStatus.read(iprot);
+        struct.setTransferStatusIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/719cbf9e/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ErrorCategory.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ErrorCategory.java
 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ErrorCategory.java
new file mode 100644
index 0000000..800926e
--- /dev/null
+++ 
b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ErrorCategory.java
@@ -0,0 +1,79 @@
+    /*
+     * 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.experiment;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+@SuppressWarnings("all") public enum ErrorCategory implements 
org.apache.thrift.TEnum {
+  FILE_SYSTEM_FAILURE(0),
+  APPLICATION_FAILURE(1),
+  RESOURCE_NODE_FAILURE(2),
+  DISK_FULL(3),
+  INSUFFICIENT_ALLOCATION(4),
+  SYSTEM_MAINTENANCE(5),
+  AIRAVATA_INTERNAL_ERROR(6),
+  CANNOT_BE_DETERMINED(7);
+
+  private final int value;
+
+  private ErrorCategory(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 ErrorCategory findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return FILE_SYSTEM_FAILURE;
+      case 1:
+        return APPLICATION_FAILURE;
+      case 2:
+        return RESOURCE_NODE_FAILURE;
+      case 3:
+        return DISK_FULL;
+      case 4:
+        return INSUFFICIENT_ALLOCATION;
+      case 5:
+        return SYSTEM_MAINTENANCE;
+      case 6:
+        return AIRAVATA_INTERNAL_ERROR;
+      case 7:
+        return CANNOT_BE_DETERMINED;
+      default:
+        return null;
+    }
+  }
+}

Reply via email to