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

[01/65] [abbrv] airavata git commit: renaming the module [Forced Update!]

Repository: airavata
Updated Branches:
  refs/heads/data-manager 5e0f5033e -> e89f3ea63 (forced update)


http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/thrift-interface-descriptions/data-models/file-manager-models/file__transfer_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/file-manager-models/file__transfer_models.thrift b/thrift-interface-descriptions/data-models/file-manager-models/file__transfer_models.thrift
deleted file mode 100644
index 580959d..0000000
--- a/thrift-interface-descriptions/data-models/file-manager-models/file__transfer_models.thrift
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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.
- *
- */
-
-  namespace java org.apache.airavata.model.file.transfer
-  namespace php Airavata.Model.File.Transfer
-  namespace cpp apache.airavata.model.file.transfer
-  namespace py apache.airavata.model.file.transfer
-
-  enum StorageResourceProtocol{
-        SCP,SFTP,HTTP,HTTPS,GridFTP,LOCAL
-  }
-
-  enum LSEntryType{
-    DIRECTORY,
-    FILE
-  }
-
-  enum FileTransferMode{
-      SYNC,ASYNC
-  }
-
-  enum FileTransferStatus{
-      CREATED, QUEUED, RUNNING, COMPLETED, FAILED
-  }
-
-  struct FileTransferRequestModel{
-      1: optional string transferId,
-      2: optional string gatewayId,
-      3: optional string username,
-      4: optional string srcHostname,
-      5: optional string srcLoginName,
-      6: optional i64 srcPort,
-      7: optional StorageResourceProtocol srcProtocol,
-      8: optional string srcFilePath,
-      9: optional string srcHostCredToken,
-     10: optional string destHostname,
-     11: optional string destLoginName,
-     12: optional i64 destPort,
-     13: optional StorageResourceProtocol destProtocol,
-     14: optional string destFilePath,
-     15: optional string destHostCredToken,
-     16: optional FileTransferMode fileTransferMode,
-     17: optional FileTransferStatus transferStatus,
-     18: optional i64 fileSize,
-     19: optional i64 transferTime,
-     20: optional i64 createdTime,
-     21: optional i64 lastModifiedType,
-     22: optional list<string> callbackEmails
-  }
-
-  struct LSEntryModel {
-      1: optional LSEntryType type,
-      2: optional i64 size,
-      3: optional string nativeType,
-      4: optional string name,
-      5: optional string path,
-      6: optional string storageHostName,
-      7: optional i64 lastModifiedType,
-      8: optional i64 createdTime
-  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/thrift-interface-descriptions/data-models/file-manager-models/metadata_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/file-manager-models/metadata_models.thrift b/thrift-interface-descriptions/data-models/file-manager-models/metadata_models.thrift
deleted file mode 100644
index 7ce6e88..0000000
--- a/thrift-interface-descriptions/data-models/file-manager-models/metadata_models.thrift
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.
- *
- */
-
-  namespace java org.apache.airavata.model.file.metadata
-  namespace php Airavata.Model.file.metadata
-  namespace cpp apache.airavata.model.file.metadata
-  namespace py apache.airavata.model.file.metadata
-
-  enum MetadataType{
-    FILE, COLLECTION
-  }
-
-  struct MetadataModel{
-    1: optional string metadataId,
-    2: optional string gatewayId,
-    3: optional string username,
-    4: optional list<string> sharedUsers,
-    5: optional bool sharedPublic,
-    6: optional string userFriendlyName,
-    7: optional string userFriendlyDescription,
-    8: optional MetadataType metadataType,
-    9: optional string associatedEntityId,
-   10: optional map<string,string> customInformation
-  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/thrift-interface-descriptions/data-models/file-manager-models/replica_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/file-manager-models/replica_models.thrift b/thrift-interface-descriptions/data-models/file-manager-models/replica_models.thrift
deleted file mode 100644
index 4e2ea00..0000000
--- a/thrift-interface-descriptions/data-models/file-manager-models/replica_models.thrift
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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.
- *
- */
-
-include "../resource-catalog-models/data_movement_models.thrift"
-
-namespace java org.apache.airavata.model.file.replica
-namespace php Airavata.Model.File.Replica
-namespace cpp apache.airavata.model.file.replica
-namespace py apache.airavata.model.file.replica
-
-enum FileModelType{
-    FILE, DIRECTORY
-}
-
-enum StorageResourceType {
-    GATEWAY_DATA_STORE,
-    BACKUP_GATEWAY_DATA_STORE,
-    COMPUTE_RESOURCE,
-    LONG_TERM_STORAGE_RESOURCE,
-    OTHER
-}
-
-enum ReplicaPersistentType {
-    TRANSIENT,
-    PERSISTENT
-}
-
-struct FileCollectionModel{
-    1: optional string collectionId,
-    2: optional string gatewayId,
-    3: optional string username,
-    4: optional list<string> sharedUsers,
-    5: optional bool sharedPublic,
-    6: optional string collectionName,
-    7: optional string collectionDescription,
-    8: optional list<string> fileIdList
-}
-
-struct FileModel {
-    1: optional string fileId,
-    2: optional string gatewayId,
-    3: optional string username,
-    4: optional list<string> sharedUsers,
-    5: optional bool sharedPublic,
-    6: optional string fileName,
-    7: optional string fileDescription,
-    8: optional string sha256Checksum,
-    9: optional FileModelType fileType,
-   10: optional i32 fileSize,
-   11: optional string dataType,
-   12: optional i64 creationTime,
-   13: optional i64 lastModifiedTime,
-   14: optional list<FileReplicaModel> fileReplicas
-}
-
-struct FileReplicaModel{
-    1: optional string replicaName,
-    2: optional string replicaDescription,
-    3: optional string storageHostname,
-    4: optional string storageResourceId,
-    5: optional string filePath,
-    6: optional i64 creationTime,
-    7: optional i64 validUntilTime,
-    8: optional StorageResourceType storageResourceType,
-    9: optional ReplicaPersistentType replicaPersistentType
-}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileModel.java
new file mode 100644
index 0000000..4a4fc0f
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileModel.java
@@ -0,0 +1,1879 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
+public class FileModel implements org.apache.thrift.TBase<FileModel, FileModel._Fields>, java.io.Serializable, Cloneable, Comparable<FileModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("FileModel");
+
+  private static final org.apache.thrift.protocol.TField FILE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("fileId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField SHARED_USERS_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedUsers", org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField SHARED_PUBLIC_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedPublic", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField FILE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("fileName", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField FILE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("fileDescription", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField SHA256_CHECKSUM_FIELD_DESC = new org.apache.thrift.protocol.TField("sha256Checksum", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField FILE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("fileType", org.apache.thrift.protocol.TType.I32, (short)9);
+  private static final org.apache.thrift.protocol.TField FILE_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("fileSize", org.apache.thrift.protocol.TType.I32, (short)10);
+  private static final org.apache.thrift.protocol.TField DATA_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("dataType", org.apache.thrift.protocol.TType.STRING, (short)11);
+  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)12);
+  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedTime", org.apache.thrift.protocol.TType.I64, (short)13);
+  private static final org.apache.thrift.protocol.TField FILE_REPLICAS_FIELD_DESC = new org.apache.thrift.protocol.TField("fileReplicas", org.apache.thrift.protocol.TType.LIST, (short)14);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new FileModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new FileModelTupleSchemeFactory());
+  }
+
+  private String fileId; // optional
+  private String gatewayId; // optional
+  private String username; // optional
+  private List<String> sharedUsers; // optional
+  private boolean sharedPublic; // optional
+  private String fileName; // optional
+  private String fileDescription; // optional
+  private String sha256Checksum; // optional
+  private FileModelType fileType; // optional
+  private int fileSize; // optional
+  private String dataType; // optional
+  private long creationTime; // optional
+  private long lastModifiedTime; // optional
+  private List<FileReplicaModel> fileReplicas; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    FILE_ID((short)1, "fileId"),
+    GATEWAY_ID((short)2, "gatewayId"),
+    USERNAME((short)3, "username"),
+    SHARED_USERS((short)4, "sharedUsers"),
+    SHARED_PUBLIC((short)5, "sharedPublic"),
+    FILE_NAME((short)6, "fileName"),
+    FILE_DESCRIPTION((short)7, "fileDescription"),
+    SHA256_CHECKSUM((short)8, "sha256Checksum"),
+    /**
+     * 
+     * @see FileModelType
+     */
+    FILE_TYPE((short)9, "fileType"),
+    FILE_SIZE((short)10, "fileSize"),
+    DATA_TYPE((short)11, "dataType"),
+    CREATION_TIME((short)12, "creationTime"),
+    LAST_MODIFIED_TIME((short)13, "lastModifiedTime"),
+    FILE_REPLICAS((short)14, "fileReplicas");
+
+    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: // FILE_ID
+          return FILE_ID;
+        case 2: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 3: // USERNAME
+          return USERNAME;
+        case 4: // SHARED_USERS
+          return SHARED_USERS;
+        case 5: // SHARED_PUBLIC
+          return SHARED_PUBLIC;
+        case 6: // FILE_NAME
+          return FILE_NAME;
+        case 7: // FILE_DESCRIPTION
+          return FILE_DESCRIPTION;
+        case 8: // SHA256_CHECKSUM
+          return SHA256_CHECKSUM;
+        case 9: // FILE_TYPE
+          return FILE_TYPE;
+        case 10: // FILE_SIZE
+          return FILE_SIZE;
+        case 11: // DATA_TYPE
+          return DATA_TYPE;
+        case 12: // CREATION_TIME
+          return CREATION_TIME;
+        case 13: // LAST_MODIFIED_TIME
+          return LAST_MODIFIED_TIME;
+        case 14: // FILE_REPLICAS
+          return FILE_REPLICAS;
+        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 __SHAREDPUBLIC_ISSET_ID = 0;
+  private static final int __FILESIZE_ISSET_ID = 1;
+  private static final int __CREATIONTIME_ISSET_ID = 2;
+  private static final int __LASTMODIFIEDTIME_ISSET_ID = 3;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.FILE_ID,_Fields.GATEWAY_ID,_Fields.USERNAME,_Fields.SHARED_USERS,_Fields.SHARED_PUBLIC,_Fields.FILE_NAME,_Fields.FILE_DESCRIPTION,_Fields.SHA256_CHECKSUM,_Fields.FILE_TYPE,_Fields.FILE_SIZE,_Fields.DATA_TYPE,_Fields.CREATION_TIME,_Fields.LAST_MODIFIED_TIME,_Fields.FILE_REPLICAS};
+  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.FILE_ID, new org.apache.thrift.meta_data.FieldMetaData("fileId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SHARED_USERS, new org.apache.thrift.meta_data.FieldMetaData("sharedUsers", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.SHARED_PUBLIC, new org.apache.thrift.meta_data.FieldMetaData("sharedPublic", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.FILE_NAME, new org.apache.thrift.meta_data.FieldMetaData("fileName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("fileDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SHA256_CHECKSUM, new org.apache.thrift.meta_data.FieldMetaData("sha256Checksum", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("fileType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, FileModelType.class)));
+    tmpMap.put(_Fields.FILE_SIZE, new org.apache.thrift.meta_data.FieldMetaData("fileSize", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.DATA_TYPE, new org.apache.thrift.meta_data.FieldMetaData("dataType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.LAST_MODIFIED_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.FILE_REPLICAS, new org.apache.thrift.meta_data.FieldMetaData("fileReplicas", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT            , "FileReplicaModel"))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(FileModel.class, metaDataMap);
+  }
+
+  public FileModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public FileModel(FileModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetFileId()) {
+      this.fileId = other.fileId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetUsername()) {
+      this.username = other.username;
+    }
+    if (other.isSetSharedUsers()) {
+      List<String> __this__sharedUsers = new ArrayList<String>(other.sharedUsers);
+      this.sharedUsers = __this__sharedUsers;
+    }
+    this.sharedPublic = other.sharedPublic;
+    if (other.isSetFileName()) {
+      this.fileName = other.fileName;
+    }
+    if (other.isSetFileDescription()) {
+      this.fileDescription = other.fileDescription;
+    }
+    if (other.isSetSha256Checksum()) {
+      this.sha256Checksum = other.sha256Checksum;
+    }
+    if (other.isSetFileType()) {
+      this.fileType = other.fileType;
+    }
+    this.fileSize = other.fileSize;
+    if (other.isSetDataType()) {
+      this.dataType = other.dataType;
+    }
+    this.creationTime = other.creationTime;
+    this.lastModifiedTime = other.lastModifiedTime;
+    if (other.isSetFileReplicas()) {
+      List<FileReplicaModel> __this__fileReplicas = new ArrayList<FileReplicaModel>(other.fileReplicas.size());
+      for (FileReplicaModel other_element : other.fileReplicas) {
+        __this__fileReplicas.add(other_element);
+      }
+      this.fileReplicas = __this__fileReplicas;
+    }
+  }
+
+  public FileModel deepCopy() {
+    return new FileModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.fileId = null;
+    this.gatewayId = null;
+    this.username = null;
+    this.sharedUsers = null;
+    setSharedPublicIsSet(false);
+    this.sharedPublic = false;
+    this.fileName = null;
+    this.fileDescription = null;
+    this.sha256Checksum = null;
+    this.fileType = null;
+    setFileSizeIsSet(false);
+    this.fileSize = 0;
+    this.dataType = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    setLastModifiedTimeIsSet(false);
+    this.lastModifiedTime = 0;
+    this.fileReplicas = null;
+  }
+
+  public String getFileId() {
+    return this.fileId;
+  }
+
+  public void setFileId(String fileId) {
+    this.fileId = fileId;
+  }
+
+  public void unsetFileId() {
+    this.fileId = null;
+  }
+
+  /** Returns true if field fileId is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileId() {
+    return this.fileId != null;
+  }
+
+  public void setFileIdIsSet(boolean value) {
+    if (!value) {
+      this.fileId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public void setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public String getUsername() {
+    return this.username;
+  }
+
+  public void setUsername(String username) {
+    this.username = username;
+  }
+
+  public void unsetUsername() {
+    this.username = null;
+  }
+
+  /** Returns true if field username is set (has been assigned a value) and false otherwise */
+  public boolean isSetUsername() {
+    return this.username != null;
+  }
+
+  public void setUsernameIsSet(boolean value) {
+    if (!value) {
+      this.username = null;
+    }
+  }
+
+  public int getSharedUsersSize() {
+    return (this.sharedUsers == null) ? 0 : this.sharedUsers.size();
+  }
+
+  public java.util.Iterator<String> getSharedUsersIterator() {
+    return (this.sharedUsers == null) ? null : this.sharedUsers.iterator();
+  }
+
+  public void addToSharedUsers(String elem) {
+    if (this.sharedUsers == null) {
+      this.sharedUsers = new ArrayList<String>();
+    }
+    this.sharedUsers.add(elem);
+  }
+
+  public List<String> getSharedUsers() {
+    return this.sharedUsers;
+  }
+
+  public void setSharedUsers(List<String> sharedUsers) {
+    this.sharedUsers = sharedUsers;
+  }
+
+  public void unsetSharedUsers() {
+    this.sharedUsers = null;
+  }
+
+  /** Returns true if field sharedUsers is set (has been assigned a value) and false otherwise */
+  public boolean isSetSharedUsers() {
+    return this.sharedUsers != null;
+  }
+
+  public void setSharedUsersIsSet(boolean value) {
+    if (!value) {
+      this.sharedUsers = null;
+    }
+  }
+
+  public boolean isSharedPublic() {
+    return this.sharedPublic;
+  }
+
+  public void setSharedPublic(boolean sharedPublic) {
+    this.sharedPublic = sharedPublic;
+    setSharedPublicIsSet(true);
+  }
+
+  public void unsetSharedPublic() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
+  }
+
+  /** Returns true if field sharedPublic is set (has been assigned a value) and false otherwise */
+  public boolean isSetSharedPublic() {
+    return EncodingUtils.testBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
+  }
+
+  public void setSharedPublicIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID, value);
+  }
+
+  public String getFileName() {
+    return this.fileName;
+  }
+
+  public void setFileName(String fileName) {
+    this.fileName = fileName;
+  }
+
+  public void unsetFileName() {
+    this.fileName = null;
+  }
+
+  /** Returns true if field fileName is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileName() {
+    return this.fileName != null;
+  }
+
+  public void setFileNameIsSet(boolean value) {
+    if (!value) {
+      this.fileName = null;
+    }
+  }
+
+  public String getFileDescription() {
+    return this.fileDescription;
+  }
+
+  public void setFileDescription(String fileDescription) {
+    this.fileDescription = fileDescription;
+  }
+
+  public void unsetFileDescription() {
+    this.fileDescription = null;
+  }
+
+  /** Returns true if field fileDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileDescription() {
+    return this.fileDescription != null;
+  }
+
+  public void setFileDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.fileDescription = null;
+    }
+  }
+
+  public String getSha256Checksum() {
+    return this.sha256Checksum;
+  }
+
+  public void setSha256Checksum(String sha256Checksum) {
+    this.sha256Checksum = sha256Checksum;
+  }
+
+  public void unsetSha256Checksum() {
+    this.sha256Checksum = null;
+  }
+
+  /** Returns true if field sha256Checksum is set (has been assigned a value) and false otherwise */
+  public boolean isSetSha256Checksum() {
+    return this.sha256Checksum != null;
+  }
+
+  public void setSha256ChecksumIsSet(boolean value) {
+    if (!value) {
+      this.sha256Checksum = null;
+    }
+  }
+
+  /**
+   * 
+   * @see FileModelType
+   */
+  public FileModelType getFileType() {
+    return this.fileType;
+  }
+
+  /**
+   * 
+   * @see FileModelType
+   */
+  public void setFileType(FileModelType fileType) {
+    this.fileType = fileType;
+  }
+
+  public void unsetFileType() {
+    this.fileType = null;
+  }
+
+  /** Returns true if field fileType is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileType() {
+    return this.fileType != null;
+  }
+
+  public void setFileTypeIsSet(boolean value) {
+    if (!value) {
+      this.fileType = null;
+    }
+  }
+
+  public int getFileSize() {
+    return this.fileSize;
+  }
+
+  public void setFileSize(int fileSize) {
+    this.fileSize = fileSize;
+    setFileSizeIsSet(true);
+  }
+
+  public void unsetFileSize() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __FILESIZE_ISSET_ID);
+  }
+
+  /** Returns true if field fileSize is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileSize() {
+    return EncodingUtils.testBit(__isset_bitfield, __FILESIZE_ISSET_ID);
+  }
+
+  public void setFileSizeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __FILESIZE_ISSET_ID, value);
+  }
+
+  public String getDataType() {
+    return this.dataType;
+  }
+
+  public void setDataType(String dataType) {
+    this.dataType = dataType;
+  }
+
+  public void unsetDataType() {
+    this.dataType = null;
+  }
+
+  /** Returns true if field dataType is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataType() {
+    return this.dataType != null;
+  }
+
+  public void setDataTypeIsSet(boolean value) {
+    if (!value) {
+      this.dataType = 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 long getLastModifiedTime() {
+    return this.lastModifiedTime;
+  }
+
+  public void setLastModifiedTime(long lastModifiedTime) {
+    this.lastModifiedTime = lastModifiedTime;
+    setLastModifiedTimeIsSet(true);
+  }
+
+  public void unsetLastModifiedTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
+  }
+
+  /** Returns true if field lastModifiedTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetLastModifiedTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
+  }
+
+  public void setLastModifiedTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID, value);
+  }
+
+  public int getFileReplicasSize() {
+    return (this.fileReplicas == null) ? 0 : this.fileReplicas.size();
+  }
+
+  public java.util.Iterator<FileReplicaModel> getFileReplicasIterator() {
+    return (this.fileReplicas == null) ? null : this.fileReplicas.iterator();
+  }
+
+  public void addToFileReplicas(FileReplicaModel elem) {
+    if (this.fileReplicas == null) {
+      this.fileReplicas = new ArrayList<FileReplicaModel>();
+    }
+    this.fileReplicas.add(elem);
+  }
+
+  public List<FileReplicaModel> getFileReplicas() {
+    return this.fileReplicas;
+  }
+
+  public void setFileReplicas(List<FileReplicaModel> fileReplicas) {
+    this.fileReplicas = fileReplicas;
+  }
+
+  public void unsetFileReplicas() {
+    this.fileReplicas = null;
+  }
+
+  /** Returns true if field fileReplicas is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileReplicas() {
+    return this.fileReplicas != null;
+  }
+
+  public void setFileReplicasIsSet(boolean value) {
+    if (!value) {
+      this.fileReplicas = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case FILE_ID:
+      if (value == null) {
+        unsetFileId();
+      } else {
+        setFileId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case USERNAME:
+      if (value == null) {
+        unsetUsername();
+      } else {
+        setUsername((String)value);
+      }
+      break;
+
+    case SHARED_USERS:
+      if (value == null) {
+        unsetSharedUsers();
+      } else {
+        setSharedUsers((List<String>)value);
+      }
+      break;
+
+    case SHARED_PUBLIC:
+      if (value == null) {
+        unsetSharedPublic();
+      } else {
+        setSharedPublic((Boolean)value);
+      }
+      break;
+
+    case FILE_NAME:
+      if (value == null) {
+        unsetFileName();
+      } else {
+        setFileName((String)value);
+      }
+      break;
+
+    case FILE_DESCRIPTION:
+      if (value == null) {
+        unsetFileDescription();
+      } else {
+        setFileDescription((String)value);
+      }
+      break;
+
+    case SHA256_CHECKSUM:
+      if (value == null) {
+        unsetSha256Checksum();
+      } else {
+        setSha256Checksum((String)value);
+      }
+      break;
+
+    case FILE_TYPE:
+      if (value == null) {
+        unsetFileType();
+      } else {
+        setFileType((FileModelType)value);
+      }
+      break;
+
+    case FILE_SIZE:
+      if (value == null) {
+        unsetFileSize();
+      } else {
+        setFileSize((Integer)value);
+      }
+      break;
+
+    case DATA_TYPE:
+      if (value == null) {
+        unsetDataType();
+      } else {
+        setDataType((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case LAST_MODIFIED_TIME:
+      if (value == null) {
+        unsetLastModifiedTime();
+      } else {
+        setLastModifiedTime((Long)value);
+      }
+      break;
+
+    case FILE_REPLICAS:
+      if (value == null) {
+        unsetFileReplicas();
+      } else {
+        setFileReplicas((List<FileReplicaModel>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case FILE_ID:
+      return getFileId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case USERNAME:
+      return getUsername();
+
+    case SHARED_USERS:
+      return getSharedUsers();
+
+    case SHARED_PUBLIC:
+      return isSharedPublic();
+
+    case FILE_NAME:
+      return getFileName();
+
+    case FILE_DESCRIPTION:
+      return getFileDescription();
+
+    case SHA256_CHECKSUM:
+      return getSha256Checksum();
+
+    case FILE_TYPE:
+      return getFileType();
+
+    case FILE_SIZE:
+      return getFileSize();
+
+    case DATA_TYPE:
+      return getDataType();
+
+    case CREATION_TIME:
+      return getCreationTime();
+
+    case LAST_MODIFIED_TIME:
+      return getLastModifiedTime();
+
+    case FILE_REPLICAS:
+      return getFileReplicas();
+
+    }
+    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 FILE_ID:
+      return isSetFileId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    case USERNAME:
+      return isSetUsername();
+    case SHARED_USERS:
+      return isSetSharedUsers();
+    case SHARED_PUBLIC:
+      return isSetSharedPublic();
+    case FILE_NAME:
+      return isSetFileName();
+    case FILE_DESCRIPTION:
+      return isSetFileDescription();
+    case SHA256_CHECKSUM:
+      return isSetSha256Checksum();
+    case FILE_TYPE:
+      return isSetFileType();
+    case FILE_SIZE:
+      return isSetFileSize();
+    case DATA_TYPE:
+      return isSetDataType();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case LAST_MODIFIED_TIME:
+      return isSetLastModifiedTime();
+    case FILE_REPLICAS:
+      return isSetFileReplicas();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof FileModel)
+      return this.equals((FileModel)that);
+    return false;
+  }
+
+  public boolean equals(FileModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_fileId = true && this.isSetFileId();
+    boolean that_present_fileId = true && that.isSetFileId();
+    if (this_present_fileId || that_present_fileId) {
+      if (!(this_present_fileId && that_present_fileId))
+        return false;
+      if (!this.fileId.equals(that.fileId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_username = true && this.isSetUsername();
+    boolean that_present_username = true && that.isSetUsername();
+    if (this_present_username || that_present_username) {
+      if (!(this_present_username && that_present_username))
+        return false;
+      if (!this.username.equals(that.username))
+        return false;
+    }
+
+    boolean this_present_sharedUsers = true && this.isSetSharedUsers();
+    boolean that_present_sharedUsers = true && that.isSetSharedUsers();
+    if (this_present_sharedUsers || that_present_sharedUsers) {
+      if (!(this_present_sharedUsers && that_present_sharedUsers))
+        return false;
+      if (!this.sharedUsers.equals(that.sharedUsers))
+        return false;
+    }
+
+    boolean this_present_sharedPublic = true && this.isSetSharedPublic();
+    boolean that_present_sharedPublic = true && that.isSetSharedPublic();
+    if (this_present_sharedPublic || that_present_sharedPublic) {
+      if (!(this_present_sharedPublic && that_present_sharedPublic))
+        return false;
+      if (this.sharedPublic != that.sharedPublic)
+        return false;
+    }
+
+    boolean this_present_fileName = true && this.isSetFileName();
+    boolean that_present_fileName = true && that.isSetFileName();
+    if (this_present_fileName || that_present_fileName) {
+      if (!(this_present_fileName && that_present_fileName))
+        return false;
+      if (!this.fileName.equals(that.fileName))
+        return false;
+    }
+
+    boolean this_present_fileDescription = true && this.isSetFileDescription();
+    boolean that_present_fileDescription = true && that.isSetFileDescription();
+    if (this_present_fileDescription || that_present_fileDescription) {
+      if (!(this_present_fileDescription && that_present_fileDescription))
+        return false;
+      if (!this.fileDescription.equals(that.fileDescription))
+        return false;
+    }
+
+    boolean this_present_sha256Checksum = true && this.isSetSha256Checksum();
+    boolean that_present_sha256Checksum = true && that.isSetSha256Checksum();
+    if (this_present_sha256Checksum || that_present_sha256Checksum) {
+      if (!(this_present_sha256Checksum && that_present_sha256Checksum))
+        return false;
+      if (!this.sha256Checksum.equals(that.sha256Checksum))
+        return false;
+    }
+
+    boolean this_present_fileType = true && this.isSetFileType();
+    boolean that_present_fileType = true && that.isSetFileType();
+    if (this_present_fileType || that_present_fileType) {
+      if (!(this_present_fileType && that_present_fileType))
+        return false;
+      if (!this.fileType.equals(that.fileType))
+        return false;
+    }
+
+    boolean this_present_fileSize = true && this.isSetFileSize();
+    boolean that_present_fileSize = true && that.isSetFileSize();
+    if (this_present_fileSize || that_present_fileSize) {
+      if (!(this_present_fileSize && that_present_fileSize))
+        return false;
+      if (this.fileSize != that.fileSize)
+        return false;
+    }
+
+    boolean this_present_dataType = true && this.isSetDataType();
+    boolean that_present_dataType = true && that.isSetDataType();
+    if (this_present_dataType || that_present_dataType) {
+      if (!(this_present_dataType && that_present_dataType))
+        return false;
+      if (!this.dataType.equals(that.dataType))
+        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_lastModifiedTime = true && this.isSetLastModifiedTime();
+    boolean that_present_lastModifiedTime = true && that.isSetLastModifiedTime();
+    if (this_present_lastModifiedTime || that_present_lastModifiedTime) {
+      if (!(this_present_lastModifiedTime && that_present_lastModifiedTime))
+        return false;
+      if (this.lastModifiedTime != that.lastModifiedTime)
+        return false;
+    }
+
+    boolean this_present_fileReplicas = true && this.isSetFileReplicas();
+    boolean that_present_fileReplicas = true && that.isSetFileReplicas();
+    if (this_present_fileReplicas || that_present_fileReplicas) {
+      if (!(this_present_fileReplicas && that_present_fileReplicas))
+        return false;
+      if (!this.fileReplicas.equals(that.fileReplicas))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_fileId = true && (isSetFileId());
+    list.add(present_fileId);
+    if (present_fileId)
+      list.add(fileId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_username = true && (isSetUsername());
+    list.add(present_username);
+    if (present_username)
+      list.add(username);
+
+    boolean present_sharedUsers = true && (isSetSharedUsers());
+    list.add(present_sharedUsers);
+    if (present_sharedUsers)
+      list.add(sharedUsers);
+
+    boolean present_sharedPublic = true && (isSetSharedPublic());
+    list.add(present_sharedPublic);
+    if (present_sharedPublic)
+      list.add(sharedPublic);
+
+    boolean present_fileName = true && (isSetFileName());
+    list.add(present_fileName);
+    if (present_fileName)
+      list.add(fileName);
+
+    boolean present_fileDescription = true && (isSetFileDescription());
+    list.add(present_fileDescription);
+    if (present_fileDescription)
+      list.add(fileDescription);
+
+    boolean present_sha256Checksum = true && (isSetSha256Checksum());
+    list.add(present_sha256Checksum);
+    if (present_sha256Checksum)
+      list.add(sha256Checksum);
+
+    boolean present_fileType = true && (isSetFileType());
+    list.add(present_fileType);
+    if (present_fileType)
+      list.add(fileType.getValue());
+
+    boolean present_fileSize = true && (isSetFileSize());
+    list.add(present_fileSize);
+    if (present_fileSize)
+      list.add(fileSize);
+
+    boolean present_dataType = true && (isSetDataType());
+    list.add(present_dataType);
+    if (present_dataType)
+      list.add(dataType);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_lastModifiedTime = true && (isSetLastModifiedTime());
+    list.add(present_lastModifiedTime);
+    if (present_lastModifiedTime)
+      list.add(lastModifiedTime);
+
+    boolean present_fileReplicas = true && (isSetFileReplicas());
+    list.add(present_fileReplicas);
+    if (present_fileReplicas)
+      list.add(fileReplicas);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(FileModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetFileId()).compareTo(other.isSetFileId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileId, other.fileId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUsername()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSharedUsers()).compareTo(other.isSetSharedUsers());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSharedUsers()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedUsers, other.sharedUsers);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSharedPublic()).compareTo(other.isSetSharedPublic());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSharedPublic()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedPublic, other.sharedPublic);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileName()).compareTo(other.isSetFileName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileName, other.fileName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileDescription()).compareTo(other.isSetFileDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileDescription, other.fileDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSha256Checksum()).compareTo(other.isSetSha256Checksum());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSha256Checksum()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sha256Checksum, other.sha256Checksum);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileType()).compareTo(other.isSetFileType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileType, other.fileType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileSize()).compareTo(other.isSetFileSize());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileSize()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileSize, other.fileSize);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataType()).compareTo(other.isSetDataType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataType, other.dataType);
+      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(isSetLastModifiedTime()).compareTo(other.isSetLastModifiedTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLastModifiedTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedTime, other.lastModifiedTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileReplicas()).compareTo(other.isSetFileReplicas());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileReplicas()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileReplicas, other.fileReplicas);
+      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("FileModel(");
+    boolean first = true;
+
+    if (isSetFileId()) {
+      sb.append("fileId:");
+      if (this.fileId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileId);
+      }
+      first = false;
+    }
+    if (isSetGatewayId()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
+    }
+    if (isSetUsername()) {
+      if (!first) sb.append(", ");
+      sb.append("username:");
+      if (this.username == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.username);
+      }
+      first = false;
+    }
+    if (isSetSharedUsers()) {
+      if (!first) sb.append(", ");
+      sb.append("sharedUsers:");
+      if (this.sharedUsers == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.sharedUsers);
+      }
+      first = false;
+    }
+    if (isSetSharedPublic()) {
+      if (!first) sb.append(", ");
+      sb.append("sharedPublic:");
+      sb.append(this.sharedPublic);
+      first = false;
+    }
+    if (isSetFileName()) {
+      if (!first) sb.append(", ");
+      sb.append("fileName:");
+      if (this.fileName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileName);
+      }
+      first = false;
+    }
+    if (isSetFileDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("fileDescription:");
+      if (this.fileDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileDescription);
+      }
+      first = false;
+    }
+    if (isSetSha256Checksum()) {
+      if (!first) sb.append(", ");
+      sb.append("sha256Checksum:");
+      if (this.sha256Checksum == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.sha256Checksum);
+      }
+      first = false;
+    }
+    if (isSetFileType()) {
+      if (!first) sb.append(", ");
+      sb.append("fileType:");
+      if (this.fileType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileType);
+      }
+      first = false;
+    }
+    if (isSetFileSize()) {
+      if (!first) sb.append(", ");
+      sb.append("fileSize:");
+      sb.append(this.fileSize);
+      first = false;
+    }
+    if (isSetDataType()) {
+      if (!first) sb.append(", ");
+      sb.append("dataType:");
+      if (this.dataType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.dataType);
+      }
+      first = false;
+    }
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetLastModifiedTime()) {
+      if (!first) sb.append(", ");
+      sb.append("lastModifiedTime:");
+      sb.append(this.lastModifiedTime);
+      first = false;
+    }
+    if (isSetFileReplicas()) {
+      if (!first) sb.append(", ");
+      sb.append("fileReplicas:");
+      if (this.fileReplicas == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileReplicas);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 FileModelStandardSchemeFactory implements SchemeFactory {
+    public FileModelStandardScheme getScheme() {
+      return new FileModelStandardScheme();
+    }
+  }
+
+  private static class FileModelStandardScheme extends StandardScheme<FileModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, FileModel 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: // FILE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.fileId = iprot.readString();
+              struct.setFileIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // USERNAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.username = iprot.readString();
+              struct.setUsernameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // SHARED_USERS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list16 = iprot.readListBegin();
+                struct.sharedUsers = new ArrayList<String>(_list16.size);
+                String _elem17;
+                for (int _i18 = 0; _i18 < _list16.size; ++_i18)
+                {
+                  _elem17 = iprot.readString();
+                  struct.sharedUsers.add(_elem17);
+                }
+                iprot.readListEnd();
+              }
+              struct.setSharedUsersIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // SHARED_PUBLIC
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.sharedPublic = iprot.readBool();
+              struct.setSharedPublicIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // FILE_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.fileName = iprot.readString();
+              struct.setFileNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // FILE_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.fileDescription = iprot.readString();
+              struct.setFileDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // SHA256_CHECKSUM
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.sha256Checksum = iprot.readString();
+              struct.setSha256ChecksumIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // FILE_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.fileType = org.apache.airavata.model.data.replica.FileModelType.findByValue(iprot.readI32());
+              struct.setFileTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // FILE_SIZE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.fileSize = iprot.readI32();
+              struct.setFileSizeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // DATA_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataType = iprot.readString();
+              struct.setDataTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // 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 13: // LAST_MODIFIED_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.lastModifiedTime = iprot.readI64();
+              struct.setLastModifiedTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 14: // FILE_REPLICAS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list19 = iprot.readListBegin();
+                struct.fileReplicas = new ArrayList<FileReplicaModel>(_list19.size);
+                FileReplicaModel _elem20;
+                for (int _i21 = 0; _i21 < _list19.size; ++_i21)
+                {
+                  _elem20 = new FileReplicaModel();
+                  _elem20.read(iprot);
+                  struct.fileReplicas.add(_elem20);
+                }
+                iprot.readListEnd();
+              }
+              struct.setFileReplicasIsSet(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, FileModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.fileId != null) {
+        if (struct.isSetFileId()) {
+          oprot.writeFieldBegin(FILE_ID_FIELD_DESC);
+          oprot.writeString(struct.fileId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.gatewayId != null) {
+        if (struct.isSetGatewayId()) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.username != null) {
+        if (struct.isSetUsername()) {
+          oprot.writeFieldBegin(USERNAME_FIELD_DESC);
+          oprot.writeString(struct.username);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.sharedUsers != null) {
+        if (struct.isSetSharedUsers()) {
+          oprot.writeFieldBegin(SHARED_USERS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.sharedUsers.size()));
+            for (String _iter22 : struct.sharedUsers)
+            {
+              oprot.writeString(_iter22);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetSharedPublic()) {
+        oprot.writeFieldBegin(SHARED_PUBLIC_FIELD_DESC);
+        oprot.writeBool(struct.sharedPublic);
+        oprot.writeFieldEnd();
+      }
+      if (struct.fileName != null) {
+        if (struct.isSetFileName()) {
+          oprot.writeFieldBegin(FILE_NAME_FIELD_DESC);
+          oprot.writeString(struct.fileName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.fileDescription != null) {
+        if (struct.isSetFileDescription()) {
+          oprot.writeFieldBegin(FILE_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.fileDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.sha256Checksum != null) {
+        if (struct.isSetSha256Checksum()) {
+          oprot.writeFieldBegin(SHA256_CHECKSUM_FIELD_DESC);
+          oprot.writeString(struct.sha256Checksum);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.fileType != null) {
+        if (struct.isSetFileType()) {
+          oprot.writeFieldBegin(FILE_TYPE_FIELD_DESC);
+          oprot.writeI32(struct.fileType.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetFileSize()) {
+        oprot.writeFieldBegin(FILE_SIZE_FIELD_DESC);
+        oprot.writeI32(struct.fileSize);
+        oprot.writeFieldEnd();
+      }
+      if (struct.dataType != null) {
+        if (struct.isSetDataType()) {
+          oprot.writeFieldBegin(DATA_TYPE_FIELD_DESC);
+          oprot.writeString(struct.dataType);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetLastModifiedTime()) {
+        oprot.writeFieldBegin(LAST_MODIFIED_TIME_FIELD_DESC);
+        oprot.writeI64(struct.lastModifiedTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.fileReplicas != null) {
+        if (struct.isSetFileReplicas()) {
+          oprot.writeFieldBegin(FILE_REPLICAS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.fileReplicas.size()));
+            for (FileReplicaModel _iter23 : struct.fileReplicas)
+            {
+              _iter23.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class FileModelTupleSchemeFactory implements SchemeFactory {
+    public FileModelTupleScheme getScheme() {
+      return new FileModelTupleScheme();
+    }
+  }
+
+  private static class FileModelTupleScheme extends TupleScheme<FileModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, FileModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetFileId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetGatewayId()) {
+        optionals.set(1);
+      }
+      if (struct.isSetUsername()) {
+        optionals.set(2);
+      }
+      if (struct.isSetSharedUsers()) {
+        optionals.set(3);
+      }
+      if (struct.isSetSharedPublic()) {
+        optionals.set(4);
+      }
+      if (struct.isSetFileName()) {
+        optionals.set(5);
+      }
+      if (struct.isSetFileDescription()) {
+        optionals.set(6);
+      }
+      if (struct.isSetSha256Checksum()) {
+        optionals.set(7);
+      }
+      if (struct.isSetFileType()) {
+        optionals.set(8);
+      }
+      if (struct.isSetFileSize()) {
+        optionals.set(9);
+      }
+      if (struct.isSetDataType()) {
+        optionals.set(10);
+      }
+      if (struct.isSetCreationTime()) {
+        optionals.set(11);
+      }
+      if (struct.isSetLastModifiedTime()) {
+        optionals.set(12);
+      }
+      if (struct.isSetFileReplicas()) {
+        optionals.set(13);
+      }
+      oprot.writeBitSet(optionals, 14);
+      if (struct.isSetFileId()) {
+        oprot.writeString(struct.fileId);
+      }
+      if (struct.isSetGatewayId()) {
+        oprot.writeString(struct.gatewayId);
+      }
+      if (struct.isSetUsername()) {
+        oprot.writeString(struct.username);
+      }
+      if (struct.isSetSharedUsers()) {
+        {
+          oprot.writeI32(struct.sharedUsers.size());
+          for (String _iter24 : struct.sharedUsers)
+          {
+            oprot.writeString(_iter24);
+          }
+        }
+      }
+      if (struct.isSetSharedPublic()) {
+        oprot.writeBool(struct.sharedPublic);
+      }
+      if (struct.isSetFileName()) {
+        oprot.writeString(struct.fileName);
+      }
+      if (struct.isSetFileDescription()) {
+        oprot.writeString(struct.fileDescription);
+      }
+      if (struct.isSetSha256Checksum()) {
+        oprot.writeString(struct.sha256Checksum);
+      }
+      if (struct.isSetFileType()) {
+        oprot.writeI32(struct.fileType.getValue());
+      }
+      if (struct.isSetFileSize()) {
+        oprot.writeI32(struct.fileSize);
+      }
+      if (struct.isSetDataType()) {
+        oprot.writeString(struct.dataType);
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetLastModifiedTime()) {
+        oprot.writeI64(struct.lastModifiedTime);
+      }
+      if (struct.isSetFileReplicas()) {
+        {
+          oprot.writeI32(struct.fileReplicas.size());
+          for (FileReplicaModel _iter25 : struct.fileReplicas)
+          {
+            _iter25.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, FileModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(14);
+      if (incoming.get(0)) {
+        struct.fileId = iprot.readString();
+        struct.setFileIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.username = iprot.readString();
+        struct.setUsernameIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list26 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.sharedUsers = new ArrayList<String>(_list26.size);
+          String _elem27;
+          for (int _i28 = 0; _i28 < _list26.size; ++_i28)
+          {
+            _elem27 = iprot.readString();
+            struct.sharedUsers.add(_elem27);
+          }
+        }
+        struct.setSharedUsersIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.sharedPublic = iprot.readBool();
+        struct.setSharedPublicIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.fileName = iprot.readString();
+        struct.setFileNameIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.fileDescription = iprot.readString();
+        struct.setFileDescriptionIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.sha256Checksum = iprot.readString();
+        struct.setSha256ChecksumIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.fileType = org.apache.airavata.model.data.replica.FileModelType.findByValue(iprot.readI32());
+        struct.setFileTypeIsSet(true);
+      }
+      if (incoming.get(9)) {
+        struct.fileSize = iprot.readI32();
+        struct.setFileSizeIsSet(true);
+      }
+      if (incoming.get(10)) {
+        struct.dataType = iprot.readString();
+        struct.setDataTypeIsSet(true);
+      }
+      if (incoming.get(11)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(12)) {
+        struct.lastModifiedTime = iprot.readI64();
+        struct.setLastModifiedTimeIsSet(true);
+      }
+      if (incoming.get(13)) {
+        {
+          org.apache.thrift.protocol.TList _list29 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.fileReplicas = new ArrayList<FileReplicaModel>(_list29.size);
+          FileReplicaModel _elem30;
+          for (int _i31 = 0; _i31 < _list29.size; ++_i31)
+          {
+            _elem30 = new FileReplicaModel();
+            _elem30.read(iprot);
+            struct.fileReplicas.add(_elem30);
+          }
+        }
+        struct.setFileReplicasIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileModelType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileModelType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileModelType.java
new file mode 100644
index 0000000..ad0bc91
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileModelType.java
@@ -0,0 +1,62 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum FileModelType implements org.apache.thrift.TEnum {
+  FILE(0),
+  DIRECTORY(1);
+
+  private final int value;
+
+  private FileModelType(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 FileModelType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return FILE;
+      case 1:
+        return DIRECTORY;
+      default:
+        return null;
+    }
+  }
+}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
new file mode 100644
index 0000000..008e133
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
@@ -0,0 +1,905 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.storageresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Storage Resource Description
+ * 
+ * storageResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.
+ * 
+ * hostName:
+ *   Fully Qualified Host Name.
+ * 
+ * storageResourceDescription:
+ *  A user friendly description of the resource.
+ * 
+ * 
+ * DataMovementProtocol:
+ *  Option to specify a prefered data movement mechanism of the available options.
+ * 
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class StorageResourceDescription implements org.apache.thrift.TBase<StorageResourceDescription, StorageResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<StorageResourceDescription> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StorageResourceDescription");
+
+  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField HOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("hostName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceDescription", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField ENABLED_FIELD_DESC = new org.apache.thrift.protocol.TField("enabled", org.apache.thrift.protocol.TType.BOOL, (short)4);
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_INTERFACES_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementInterfaces", org.apache.thrift.protocol.TType.LIST, (short)5);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new StorageResourceDescriptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new StorageResourceDescriptionTupleSchemeFactory());
+  }
+
+  public String storageResourceId; // required
+  public String hostName; // required
+  public String storageResourceDescription; // optional
+  public boolean enabled; // optional
+  public List<org.apache.airavata.model.data.movement.DataMovementInterface> dataMovementInterfaces; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    STORAGE_RESOURCE_ID((short)1, "storageResourceId"),
+    HOST_NAME((short)2, "hostName"),
+    STORAGE_RESOURCE_DESCRIPTION((short)3, "storageResourceDescription"),
+    ENABLED((short)4, "enabled"),
+    DATA_MOVEMENT_INTERFACES((short)5, "dataMovementInterfaces");
+
+    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: // STORAGE_RESOURCE_ID
+          return STORAGE_RESOURCE_ID;
+        case 2: // HOST_NAME
+          return HOST_NAME;
+        case 3: // STORAGE_RESOURCE_DESCRIPTION
+          return STORAGE_RESOURCE_DESCRIPTION;
+        case 4: // ENABLED
+          return ENABLED;
+        case 5: // DATA_MOVEMENT_INTERFACES
+          return DATA_MOVEMENT_INTERFACES;
+        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 __ENABLED_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.STORAGE_RESOURCE_DESCRIPTION,_Fields.ENABLED,_Fields.DATA_MOVEMENT_INTERFACES};
+  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.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.HOST_NAME, new org.apache.thrift.meta_data.FieldMetaData("hostName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STORAGE_RESOURCE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("storageResourceDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.ENABLED, new org.apache.thrift.meta_data.FieldMetaData("enabled", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.DATA_MOVEMENT_INTERFACES, new org.apache.thrift.meta_data.FieldMetaData("dataMovementInterfaces", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.data.movement.DataMovementInterface.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(StorageResourceDescription.class, metaDataMap);
+  }
+
+  public StorageResourceDescription() {
+    this.storageResourceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public StorageResourceDescription(
+    String storageResourceId,
+    String hostName)
+  {
+    this();
+    this.storageResourceId = storageResourceId;
+    this.hostName = hostName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public StorageResourceDescription(StorageResourceDescription other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetStorageResourceId()) {
+      this.storageResourceId = other.storageResourceId;
+    }
+    if (other.isSetHostName()) {
+      this.hostName = other.hostName;
+    }
+    if (other.isSetStorageResourceDescription()) {
+      this.storageResourceDescription = other.storageResourceDescription;
+    }
+    this.enabled = other.enabled;
+    if (other.isSetDataMovementInterfaces()) {
+      List<org.apache.airavata.model.data.movement.DataMovementInterface> __this__dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>(other.dataMovementInterfaces.size());
+      for (org.apache.airavata.model.data.movement.DataMovementInterface other_element : other.dataMovementInterfaces) {
+        __this__dataMovementInterfaces.add(new org.apache.airavata.model.data.movement.DataMovementInterface(other_element));
+      }
+      this.dataMovementInterfaces = __this__dataMovementInterfaces;
+    }
+  }
+
+  public StorageResourceDescription deepCopy() {
+    return new StorageResourceDescription(this);
+  }
+
+  @Override
+  public void clear() {
+    this.storageResourceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.hostName = null;
+    this.storageResourceDescription = null;
+    setEnabledIsSet(false);
+    this.enabled = false;
+    this.dataMovementInterfaces = null;
+  }
+
+  public String getStorageResourceId() {
+    return this.storageResourceId;
+  }
+
+  public StorageResourceDescription setStorageResourceId(String storageResourceId) {
+    this.storageResourceId = storageResourceId;
+    return this;
+  }
+
+  public void unsetStorageResourceId() {
+    this.storageResourceId = null;
+  }
+
+  /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageResourceId() {
+    return this.storageResourceId != null;
+  }
+
+  public void setStorageResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.storageResourceId = null;
+    }
+  }
+
+  public String getHostName() {
+    return this.hostName;
+  }
+
+  public StorageResourceDescription setHostName(String hostName) {
+    this.hostName = hostName;
+    return this;
+  }
+
+  public void unsetHostName() {
+    this.hostName = null;
+  }
+
+  /** Returns true if field hostName is set (has been assigned a value) and false otherwise */
+  public boolean isSetHostName() {
+    return this.hostName != null;
+  }
+
+  public void setHostNameIsSet(boolean value) {
+    if (!value) {
+      this.hostName = null;
+    }
+  }
+
+  public String getStorageResourceDescription() {
+    return this.storageResourceDescription;
+  }
+
+  public StorageResourceDescription setStorageResourceDescription(String storageResourceDescription) {
+    this.storageResourceDescription = storageResourceDescription;
+    return this;
+  }
+
+  public void unsetStorageResourceDescription() {
+    this.storageResourceDescription = null;
+  }
+
+  /** Returns true if field storageResourceDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageResourceDescription() {
+    return this.storageResourceDescription != null;
+  }
+
+  public void setStorageResourceDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.storageResourceDescription = null;
+    }
+  }
+
+  public boolean isEnabled() {
+    return this.enabled;
+  }
+
+  public StorageResourceDescription setEnabled(boolean enabled) {
+    this.enabled = enabled;
+    setEnabledIsSet(true);
+    return this;
+  }
+
+  public void unsetEnabled() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ENABLED_ISSET_ID);
+  }
+
+  /** Returns true if field enabled is set (has been assigned a value) and false otherwise */
+  public boolean isSetEnabled() {
+    return EncodingUtils.testBit(__isset_bitfield, __ENABLED_ISSET_ID);
+  }
+
+  public void setEnabledIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ENABLED_ISSET_ID, value);
+  }
+
+  public int getDataMovementInterfacesSize() {
+    return (this.dataMovementInterfaces == null) ? 0 : this.dataMovementInterfaces.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.data.movement.DataMovementInterface> getDataMovementInterfacesIterator() {
+    return (this.dataMovementInterfaces == null) ? null : this.dataMovementInterfaces.iterator();
+  }
+
+  public void addToDataMovementInterfaces(org.apache.airavata.model.data.movement.DataMovementInterface elem) {
+    if (this.dataMovementInterfaces == null) {
+      this.dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>();
+    }
+    this.dataMovementInterfaces.add(elem);
+  }
+
+  public List<org.apache.airavata.model.data.movement.DataMovementInterface> getDataMovementInterfaces() {
+    return this.dataMovementInterfaces;
+  }
+
+  public StorageResourceDescription setDataMovementInterfaces(List<org.apache.airavata.model.data.movement.DataMovementInterface> dataMovementInterfaces) {
+    this.dataMovementInterfaces = dataMovementInterfaces;
+    return this;
+  }
+
+  public void unsetDataMovementInterfaces() {
+    this.dataMovementInterfaces = null;
+  }
+
+  /** Returns true if field dataMovementInterfaces is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementInterfaces() {
+    return this.dataMovementInterfaces != null;
+  }
+
+  public void setDataMovementInterfacesIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementInterfaces = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STORAGE_RESOURCE_ID:
+      if (value == null) {
+        unsetStorageResourceId();
+      } else {
+        setStorageResourceId((String)value);
+      }
+      break;
+
+    case HOST_NAME:
+      if (value == null) {
+        unsetHostName();
+      } else {
+        setHostName((String)value);
+      }
+      break;
+
+    case STORAGE_RESOURCE_DESCRIPTION:
+      if (value == null) {
+        unsetStorageResourceDescription();
+      } else {
+        setStorageResourceDescription((String)value);
+      }
+      break;
+
+    case ENABLED:
+      if (value == null) {
+        unsetEnabled();
+      } else {
+        setEnabled((Boolean)value);
+      }
+      break;
+
+    case DATA_MOVEMENT_INTERFACES:
+      if (value == null) {
+        unsetDataMovementInterfaces();
+      } else {
+        setDataMovementInterfaces((List<org.apache.airavata.model.data.movement.DataMovementInterface>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STORAGE_RESOURCE_ID:
+      return getStorageResourceId();
+
+    case HOST_NAME:
+      return getHostName();
+
+    case STORAGE_RESOURCE_DESCRIPTION:
+      return getStorageResourceDescription();
+
+    case ENABLED:
+      return Boolean.valueOf(isEnabled());
+
+    case DATA_MOVEMENT_INTERFACES:
+      return getDataMovementInterfaces();
+
+    }
+    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 STORAGE_RESOURCE_ID:
+      return isSetStorageResourceId();
+    case HOST_NAME:
+      return isSetHostName();
+    case STORAGE_RESOURCE_DESCRIPTION:
+      return isSetStorageResourceDescription();
+    case ENABLED:
+      return isSetEnabled();
+    case DATA_MOVEMENT_INTERFACES:
+      return isSetDataMovementInterfaces();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof StorageResourceDescription)
+      return this.equals((StorageResourceDescription)that);
+    return false;
+  }
+
+  public boolean equals(StorageResourceDescription that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_storageResourceId = true && this.isSetStorageResourceId();
+    boolean that_present_storageResourceId = true && that.isSetStorageResourceId();
+    if (this_present_storageResourceId || that_present_storageResourceId) {
+      if (!(this_present_storageResourceId && that_present_storageResourceId))
+        return false;
+      if (!this.storageResourceId.equals(that.storageResourceId))
+        return false;
+    }
+
+    boolean this_present_hostName = true && this.isSetHostName();
+    boolean that_present_hostName = true && that.isSetHostName();
+    if (this_present_hostName || that_present_hostName) {
+      if (!(this_present_hostName && that_present_hostName))
+        return false;
+      if (!this.hostName.equals(that.hostName))
+        return false;
+    }
+
+    boolean this_present_storageResourceDescription = true && this.isSetStorageResourceDescription();
+    boolean that_present_storageResourceDescription = true && that.isSetStorageResourceDescription();
+    if (this_present_storageResourceDescription || that_present_storageResourceDescription) {
+      if (!(this_present_storageResourceDescription && that_present_storageResourceDescription))
+        return false;
+      if (!this.storageResourceDescription.equals(that.storageResourceDescription))
+        return false;
+    }
+
+    boolean this_present_enabled = true && this.isSetEnabled();
+    boolean that_present_enabled = true && that.isSetEnabled();
+    if (this_present_enabled || that_present_enabled) {
+      if (!(this_present_enabled && that_present_enabled))
+        return false;
+      if (this.enabled != that.enabled)
+        return false;
+    }
+
+    boolean this_present_dataMovementInterfaces = true && this.isSetDataMovementInterfaces();
+    boolean that_present_dataMovementInterfaces = true && that.isSetDataMovementInterfaces();
+    if (this_present_dataMovementInterfaces || that_present_dataMovementInterfaces) {
+      if (!(this_present_dataMovementInterfaces && that_present_dataMovementInterfaces))
+        return false;
+      if (!this.dataMovementInterfaces.equals(that.dataMovementInterfaces))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_storageResourceId = true && (isSetStorageResourceId());
+    list.add(present_storageResourceId);
+    if (present_storageResourceId)
+      list.add(storageResourceId);
+
+    boolean present_hostName = true && (isSetHostName());
+    list.add(present_hostName);
+    if (present_hostName)
+      list.add(hostName);
+
+    boolean present_storageResourceDescription = true && (isSetStorageResourceDescription());
+    list.add(present_storageResourceDescription);
+    if (present_storageResourceDescription)
+      list.add(storageResourceDescription);
+
+    boolean present_enabled = true && (isSetEnabled());
+    list.add(present_enabled);
+    if (present_enabled)
+      list.add(enabled);
+
+    boolean present_dataMovementInterfaces = true && (isSetDataMovementInterfaces());
+    list.add(present_dataMovementInterfaces);
+    if (present_dataMovementInterfaces)
+      list.add(dataMovementInterfaces);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(StorageResourceDescription other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetHostName()).compareTo(other.isSetHostName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetHostName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hostName, other.hostName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStorageResourceDescription()).compareTo(other.isSetStorageResourceDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageResourceDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceDescription, other.storageResourceDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetEnabled()).compareTo(other.isSetEnabled());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEnabled()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enabled, other.enabled);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataMovementInterfaces()).compareTo(other.isSetDataMovementInterfaces());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementInterfaces()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementInterfaces, other.dataMovementInterfaces);
+      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("StorageResourceDescription(");
+    boolean first = true;
+
+    sb.append("storageResourceId:");
+    if (this.storageResourceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.storageResourceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("hostName:");
+    if (this.hostName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.hostName);
+    }
+    first = false;
+    if (isSetStorageResourceDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("storageResourceDescription:");
+      if (this.storageResourceDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.storageResourceDescription);
+      }
+      first = false;
+    }
+    if (isSetEnabled()) {
+      if (!first) sb.append(", ");
+      sb.append("enabled:");
+      sb.append(this.enabled);
+      first = false;
+    }
+    if (isSetDataMovementInterfaces()) {
+      if (!first) sb.append(", ");
+      sb.append("dataMovementInterfaces:");
+      if (this.dataMovementInterfaces == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.dataMovementInterfaces);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (storageResourceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'storageResourceId' was not present! Struct: " + toString());
+    }
+    if (hostName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'hostName' was not present! 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 StorageResourceDescriptionStandardSchemeFactory implements SchemeFactory {
+    public StorageResourceDescriptionStandardScheme getScheme() {
+      return new StorageResourceDescriptionStandardScheme();
+    }
+  }
+
+  private static class StorageResourceDescriptionStandardScheme extends StandardScheme<StorageResourceDescription> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, StorageResourceDescription 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: // STORAGE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageResourceId = iprot.readString();
+              struct.setStorageResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // HOST_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.hostName = iprot.readString();
+              struct.setHostNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // STORAGE_RESOURCE_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageResourceDescription = iprot.readString();
+              struct.setStorageResourceDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // ENABLED
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.enabled = iprot.readBool();
+              struct.setEnabledIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // DATA_MOVEMENT_INTERFACES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>(_list0.size);
+                org.apache.airavata.model.data.movement.DataMovementInterface _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new org.apache.airavata.model.data.movement.DataMovementInterface();
+                  _elem1.read(iprot);
+                  struct.dataMovementInterfaces.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setDataMovementInterfacesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, StorageResourceDescription struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.storageResourceId != null) {
+        oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
+        oprot.writeString(struct.storageResourceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.hostName != null) {
+        oprot.writeFieldBegin(HOST_NAME_FIELD_DESC);
+        oprot.writeString(struct.hostName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.storageResourceDescription != null) {
+        if (struct.isSetStorageResourceDescription()) {
+          oprot.writeFieldBegin(STORAGE_RESOURCE_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.storageResourceDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetEnabled()) {
+        oprot.writeFieldBegin(ENABLED_FIELD_DESC);
+        oprot.writeBool(struct.enabled);
+        oprot.writeFieldEnd();
+      }
+      if (struct.dataMovementInterfaces != null) {
+        if (struct.isSetDataMovementInterfaces()) {
+          oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.dataMovementInterfaces.size()));
+            for (org.apache.airavata.model.data.movement.DataMovementInterface _iter3 : struct.dataMovementInterfaces)
+            {
+              _iter3.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class StorageResourceDescriptionTupleSchemeFactory implements SchemeFactory {
+    public StorageResourceDescriptionTupleScheme getScheme() {
+      return new StorageResourceDescriptionTupleScheme();
+    }
+  }
+
+  private static class StorageResourceDescriptionTupleScheme extends TupleScheme<StorageResourceDescription> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, StorageResourceDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.storageResourceId);
+      oprot.writeString(struct.hostName);
+      BitSet optionals = new BitSet();
+      if (struct.isSetStorageResourceDescription()) {
+        optionals.set(0);
+      }
+      if (struct.isSetEnabled()) {
+        optionals.set(1);
+      }
+      if (struct.isSetDataMovementInterfaces()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetStorageResourceDescription()) {
+        oprot.writeString(struct.storageResourceDescription);
+      }
+      if (struct.isSetEnabled()) {
+        oprot.writeBool(struct.enabled);
+      }
+      if (struct.isSetDataMovementInterfaces()) {
+        {
+          oprot.writeI32(struct.dataMovementInterfaces.size());
+          for (org.apache.airavata.model.data.movement.DataMovementInterface _iter4 : struct.dataMovementInterfaces)
+          {
+            _iter4.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, StorageResourceDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.storageResourceId = iprot.readString();
+      struct.setStorageResourceIdIsSet(true);
+      struct.hostName = iprot.readString();
+      struct.setHostNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.storageResourceDescription = iprot.readString();
+        struct.setStorageResourceDescriptionIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.enabled = iprot.readBool();
+        struct.setEnabledIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>(_list5.size);
+          org.apache.airavata.model.data.movement.DataMovementInterface _elem6;
+          for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+          {
+            _elem6 = new org.apache.airavata.model.data.movement.DataMovementInterface();
+            _elem6.read(iprot);
+            struct.dataMovementInterfaces.add(_elem6);
+          }
+        }
+        struct.setDataMovementInterfacesIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/DataType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/DataType.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/DataType.java
new file mode 100644
index 0000000..78ef9a1
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/DataType.java
@@ -0,0 +1,78 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.application.io;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Data Types supported in Airavata. The primitive data types
+ * 
+ */
+public enum DataType implements org.apache.thrift.TEnum {
+  STRING(0),
+  INTEGER(1),
+  FLOAT(2),
+  URI(3),
+  STDOUT(4),
+  STDERR(5);
+
+  private final int value;
+
+  private DataType(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 DataType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return STRING;
+      case 1:
+        return INTEGER;
+      case 2:
+        return FLOAT;
+      case 3:
+        return URI;
+      case 4:
+        return STDOUT;
+      case 5:
+        return STDERR;
+      default:
+        return null;
+    }
+  }
+}


[25/65] [abbrv] airavata git commit: .DS_Store banished!

Posted by sc...@apache.org.
.DS_Store banished!


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/09209ea5
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/09209ea5
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/09209ea5

Branch: refs/heads/data-manager
Commit: 09209ea563ec6cbc9b9e1dfbaa3a293e08daeffc
Parents: a14d717
Author: scnakandala <su...@gmail.com>
Authored: Wed Dec 2 11:36:19 2015 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Tue Jan 12 10:56:03 2016 -0500

----------------------------------------------------------------------
 .../airavata/data/manager/DataManager.java      |  7 ++++
 .../data/manager/DataManagerFactory.java        | 28 ++++++++++++++++
 .../airavata/data/manager/DataManagerImpl.java  | 28 ++++++++++++++++
 .../data/manager/DataManagerFactoryTest.java    | 28 ++++++++++++++++
 .../airavata-api/data_resource_models.thrift    | 35 ++++++++++++++++++++
 5 files changed, 126 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/09209ea5/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManager.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManager.java b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManager.java
new file mode 100644
index 0000000..ed79edb
--- /dev/null
+++ b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManager.java
@@ -0,0 +1,7 @@
+package org.apache.airavata.data.manager;
+
+/**
+ * Created by supun on 12/1/15.
+ */
+public interface DataManager {
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/09209ea5/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerFactory.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerFactory.java b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerFactory.java
new file mode 100644
index 0000000..74fd68f
--- /dev/null
+++ b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerFactory.java
@@ -0,0 +1,28 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DataManagerFactory {
+    private final static Logger logger = LoggerFactory.getLogger(DataManagerFactory.class);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/09209ea5/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerImpl.java b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerImpl.java
new file mode 100644
index 0000000..379418f
--- /dev/null
+++ b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerImpl.java
@@ -0,0 +1,28 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DataManagerImpl {
+    private final static Logger logger = LoggerFactory.getLogger(DataManagerImpl.class);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/09209ea5/modules/data-manager/src/test/java/org/apache/airavata/data/manager/DataManagerFactoryTest.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/src/test/java/org/apache/airavata/data/manager/DataManagerFactoryTest.java b/modules/data-manager/src/test/java/org/apache/airavata/data/manager/DataManagerFactoryTest.java
new file mode 100644
index 0000000..4bfa570
--- /dev/null
+++ b/modules/data-manager/src/test/java/org/apache/airavata/data/manager/DataManagerFactoryTest.java
@@ -0,0 +1,28 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DataManagerFactoryTest {
+    private final static Logger logger = LoggerFactory.getLogger(DataManagerFactoryTest.class);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/09209ea5/thrift-interface-descriptions/airavata-api/data_resource_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-api/data_resource_models.thrift b/thrift-interface-descriptions/airavata-api/data_resource_models.thrift
new file mode 100644
index 0000000..85a8044
--- /dev/null
+++ b/thrift-interface-descriptions/airavata-api/data_resource_models.thrift
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ *
+ */
+
+  namespace java org.apache.airavata.model.data.resource
+  namespace php Airavata.Model.Data.Resource
+  namespace cpp apache.airavata.model.data.resource
+  namespace py apache.airavata.model.data.resource
+
+struct ResourceModel {
+    1: optional string resourceId,
+    2: optional string resourceName,
+    3: list<ReplicaLocationModel> replicaLocations
+}
+
+struct ReplicaLocationModel {
+    1: optional list<string> physicalLocations
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
new file mode 100644
index 0000000..c4183c3
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
@@ -0,0 +1,1393 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.application.io;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Application Outputs. The paramters describe how outputs generated by the application.
+ * 
+ * name:
+ *   Name of the parameter.
+ * 
+ * value:
+ *   Value of the parameter.
+ * 
+ * type:
+ *   Data type of the parameter
+ * 
+ * applicationArguement:
+ *   The argument flag sent to the application. Such as -p pressure.
+ * 
+ * standardInput:
+ *   When this value is set, the parameter is sent as standard input rather than a parameter.
+ *   Typically this is passed using redirection operator ">".
+ * 
+ * userFriendlyDescription:
+ *   Description to be displayed at the user interface.
+ * 
+ * metaData:
+ *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataObjectType, OutputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<OutputDataObjectType> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OutputDataObjectType");
+
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", 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.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField APPLICATION_ARGUMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationArgument", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField IS_REQUIRED_FIELD_DESC = new org.apache.thrift.protocol.TField("isRequired", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField REQUIRED_TO_ADDED_TO_COMMAND_LINE_FIELD_DESC = new org.apache.thrift.protocol.TField("requiredToAddedToCommandLine", org.apache.thrift.protocol.TType.BOOL, (short)6);
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovement", org.apache.thrift.protocol.TType.BOOL, (short)7);
+  private static final org.apache.thrift.protocol.TField LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("location", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField SEARCH_QUERY_FIELD_DESC = new org.apache.thrift.protocol.TField("searchQuery", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField OUTPUT_STREAMING_FIELD_DESC = new org.apache.thrift.protocol.TField("outputStreaming", org.apache.thrift.protocol.TType.BOOL, (short)10);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new OutputDataObjectTypeStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new OutputDataObjectTypeTupleSchemeFactory());
+  }
+
+  public String name; // required
+  public String value; // optional
+  /**
+   * 
+   * @see DataType
+   */
+  public DataType type; // optional
+  public String applicationArgument; // optional
+  public boolean isRequired; // optional
+  public boolean requiredToAddedToCommandLine; // optional
+  public boolean dataMovement; // optional
+  public String location; // optional
+  public String searchQuery; // optional
+  public boolean outputStreaming; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    NAME((short)1, "name"),
+    VALUE((short)2, "value"),
+    /**
+     * 
+     * @see DataType
+     */
+    TYPE((short)3, "type"),
+    APPLICATION_ARGUMENT((short)4, "applicationArgument"),
+    IS_REQUIRED((short)5, "isRequired"),
+    REQUIRED_TO_ADDED_TO_COMMAND_LINE((short)6, "requiredToAddedToCommandLine"),
+    DATA_MOVEMENT((short)7, "dataMovement"),
+    LOCATION((short)8, "location"),
+    SEARCH_QUERY((short)9, "searchQuery"),
+    OUTPUT_STREAMING((short)10, "outputStreaming");
+
+    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: // NAME
+          return NAME;
+        case 2: // VALUE
+          return VALUE;
+        case 3: // TYPE
+          return TYPE;
+        case 4: // APPLICATION_ARGUMENT
+          return APPLICATION_ARGUMENT;
+        case 5: // IS_REQUIRED
+          return IS_REQUIRED;
+        case 6: // REQUIRED_TO_ADDED_TO_COMMAND_LINE
+          return REQUIRED_TO_ADDED_TO_COMMAND_LINE;
+        case 7: // DATA_MOVEMENT
+          return DATA_MOVEMENT;
+        case 8: // LOCATION
+          return LOCATION;
+        case 9: // SEARCH_QUERY
+          return SEARCH_QUERY;
+        case 10: // OUTPUT_STREAMING
+          return OUTPUT_STREAMING;
+        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 __ISREQUIRED_ISSET_ID = 0;
+  private static final int __REQUIREDTOADDEDTOCOMMANDLINE_ISSET_ID = 1;
+  private static final int __DATAMOVEMENT_ISSET_ID = 2;
+  private static final int __OUTPUTSTREAMING_ISSET_ID = 3;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.APPLICATION_ARGUMENT,_Fields.IS_REQUIRED,_Fields.REQUIRED_TO_ADDED_TO_COMMAND_LINE,_Fields.DATA_MOVEMENT,_Fields.LOCATION,_Fields.SEARCH_QUERY,_Fields.OUTPUT_STREAMING};
+  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.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", 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.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DataType.class)));
+    tmpMap.put(_Fields.APPLICATION_ARGUMENT, new org.apache.thrift.meta_data.FieldMetaData("applicationArgument", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.IS_REQUIRED, new org.apache.thrift.meta_data.FieldMetaData("isRequired", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.REQUIRED_TO_ADDED_TO_COMMAND_LINE, new org.apache.thrift.meta_data.FieldMetaData("requiredToAddedToCommandLine", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.DATA_MOVEMENT, new org.apache.thrift.meta_data.FieldMetaData("dataMovement", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.LOCATION, new org.apache.thrift.meta_data.FieldMetaData("location", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SEARCH_QUERY, new org.apache.thrift.meta_data.FieldMetaData("searchQuery", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OUTPUT_STREAMING, new org.apache.thrift.meta_data.FieldMetaData("outputStreaming", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(OutputDataObjectType.class, metaDataMap);
+  }
+
+  public OutputDataObjectType() {
+  }
+
+  public OutputDataObjectType(
+    String name)
+  {
+    this();
+    this.name = name;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public OutputDataObjectType(OutputDataObjectType other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetName()) {
+      this.name = other.name;
+    }
+    if (other.isSetValue()) {
+      this.value = other.value;
+    }
+    if (other.isSetType()) {
+      this.type = other.type;
+    }
+    if (other.isSetApplicationArgument()) {
+      this.applicationArgument = other.applicationArgument;
+    }
+    this.isRequired = other.isRequired;
+    this.requiredToAddedToCommandLine = other.requiredToAddedToCommandLine;
+    this.dataMovement = other.dataMovement;
+    if (other.isSetLocation()) {
+      this.location = other.location;
+    }
+    if (other.isSetSearchQuery()) {
+      this.searchQuery = other.searchQuery;
+    }
+    this.outputStreaming = other.outputStreaming;
+  }
+
+  public OutputDataObjectType deepCopy() {
+    return new OutputDataObjectType(this);
+  }
+
+  @Override
+  public void clear() {
+    this.name = null;
+    this.value = null;
+    this.type = null;
+    this.applicationArgument = null;
+    setIsRequiredIsSet(false);
+    this.isRequired = false;
+    setRequiredToAddedToCommandLineIsSet(false);
+    this.requiredToAddedToCommandLine = false;
+    setDataMovementIsSet(false);
+    this.dataMovement = false;
+    this.location = null;
+    this.searchQuery = null;
+    setOutputStreamingIsSet(false);
+    this.outputStreaming = false;
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public OutputDataObjectType setName(String name) {
+    this.name = name;
+    return this;
+  }
+
+  public void unsetName() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false otherwise */
+  public boolean isSetName() {
+    return this.name != null;
+  }
+
+  public void setNameIsSet(boolean value) {
+    if (!value) {
+      this.name = null;
+    }
+  }
+
+  public String getValue() {
+    return this.value;
+  }
+
+  public OutputDataObjectType setValue(String value) {
+    this.value = value;
+    return this;
+  }
+
+  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;
+    }
+  }
+
+  /**
+   * 
+   * @see DataType
+   */
+  public DataType getType() {
+    return this.type;
+  }
+
+  /**
+   * 
+   * @see DataType
+   */
+  public OutputDataObjectType setType(DataType type) {
+    this.type = type;
+    return this;
+  }
+
+  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 getApplicationArgument() {
+    return this.applicationArgument;
+  }
+
+  public OutputDataObjectType setApplicationArgument(String applicationArgument) {
+    this.applicationArgument = applicationArgument;
+    return this;
+  }
+
+  public void unsetApplicationArgument() {
+    this.applicationArgument = null;
+  }
+
+  /** Returns true if field applicationArgument is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationArgument() {
+    return this.applicationArgument != null;
+  }
+
+  public void setApplicationArgumentIsSet(boolean value) {
+    if (!value) {
+      this.applicationArgument = null;
+    }
+  }
+
+  public boolean isIsRequired() {
+    return this.isRequired;
+  }
+
+  public OutputDataObjectType setIsRequired(boolean isRequired) {
+    this.isRequired = isRequired;
+    setIsRequiredIsSet(true);
+    return this;
+  }
+
+  public void unsetIsRequired() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ISREQUIRED_ISSET_ID);
+  }
+
+  /** Returns true if field isRequired is set (has been assigned a value) and false otherwise */
+  public boolean isSetIsRequired() {
+    return EncodingUtils.testBit(__isset_bitfield, __ISREQUIRED_ISSET_ID);
+  }
+
+  public void setIsRequiredIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ISREQUIRED_ISSET_ID, value);
+  }
+
+  public boolean isRequiredToAddedToCommandLine() {
+    return this.requiredToAddedToCommandLine;
+  }
+
+  public OutputDataObjectType setRequiredToAddedToCommandLine(boolean requiredToAddedToCommandLine) {
+    this.requiredToAddedToCommandLine = requiredToAddedToCommandLine;
+    setRequiredToAddedToCommandLineIsSet(true);
+    return this;
+  }
+
+  public void unsetRequiredToAddedToCommandLine() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __REQUIREDTOADDEDTOCOMMANDLINE_ISSET_ID);
+  }
+
+  /** Returns true if field requiredToAddedToCommandLine is set (has been assigned a value) and false otherwise */
+  public boolean isSetRequiredToAddedToCommandLine() {
+    return EncodingUtils.testBit(__isset_bitfield, __REQUIREDTOADDEDTOCOMMANDLINE_ISSET_ID);
+  }
+
+  public void setRequiredToAddedToCommandLineIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __REQUIREDTOADDEDTOCOMMANDLINE_ISSET_ID, value);
+  }
+
+  public boolean isDataMovement() {
+    return this.dataMovement;
+  }
+
+  public OutputDataObjectType setDataMovement(boolean dataMovement) {
+    this.dataMovement = dataMovement;
+    setDataMovementIsSet(true);
+    return this;
+  }
+
+  public void unsetDataMovement() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DATAMOVEMENT_ISSET_ID);
+  }
+
+  /** Returns true if field dataMovement is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovement() {
+    return EncodingUtils.testBit(__isset_bitfield, __DATAMOVEMENT_ISSET_ID);
+  }
+
+  public void setDataMovementIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DATAMOVEMENT_ISSET_ID, value);
+  }
+
+  public String getLocation() {
+    return this.location;
+  }
+
+  public OutputDataObjectType setLocation(String location) {
+    this.location = location;
+    return this;
+  }
+
+  public void unsetLocation() {
+    this.location = null;
+  }
+
+  /** Returns true if field location is set (has been assigned a value) and false otherwise */
+  public boolean isSetLocation() {
+    return this.location != null;
+  }
+
+  public void setLocationIsSet(boolean value) {
+    if (!value) {
+      this.location = null;
+    }
+  }
+
+  public String getSearchQuery() {
+    return this.searchQuery;
+  }
+
+  public OutputDataObjectType setSearchQuery(String searchQuery) {
+    this.searchQuery = searchQuery;
+    return this;
+  }
+
+  public void unsetSearchQuery() {
+    this.searchQuery = null;
+  }
+
+  /** Returns true if field searchQuery is set (has been assigned a value) and false otherwise */
+  public boolean isSetSearchQuery() {
+    return this.searchQuery != null;
+  }
+
+  public void setSearchQueryIsSet(boolean value) {
+    if (!value) {
+      this.searchQuery = null;
+    }
+  }
+
+  public boolean isOutputStreaming() {
+    return this.outputStreaming;
+  }
+
+  public OutputDataObjectType setOutputStreaming(boolean outputStreaming) {
+    this.outputStreaming = outputStreaming;
+    setOutputStreamingIsSet(true);
+    return this;
+  }
+
+  public void unsetOutputStreaming() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __OUTPUTSTREAMING_ISSET_ID);
+  }
+
+  /** Returns true if field outputStreaming is set (has been assigned a value) and false otherwise */
+  public boolean isSetOutputStreaming() {
+    return EncodingUtils.testBit(__isset_bitfield, __OUTPUTSTREAMING_ISSET_ID);
+  }
+
+  public void setOutputStreamingIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __OUTPUTSTREAMING_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case NAME:
+      if (value == null) {
+        unsetName();
+      } else {
+        setName((String)value);
+      }
+      break;
+
+    case VALUE:
+      if (value == null) {
+        unsetValue();
+      } else {
+        setValue((String)value);
+      }
+      break;
+
+    case TYPE:
+      if (value == null) {
+        unsetType();
+      } else {
+        setType((DataType)value);
+      }
+      break;
+
+    case APPLICATION_ARGUMENT:
+      if (value == null) {
+        unsetApplicationArgument();
+      } else {
+        setApplicationArgument((String)value);
+      }
+      break;
+
+    case IS_REQUIRED:
+      if (value == null) {
+        unsetIsRequired();
+      } else {
+        setIsRequired((Boolean)value);
+      }
+      break;
+
+    case REQUIRED_TO_ADDED_TO_COMMAND_LINE:
+      if (value == null) {
+        unsetRequiredToAddedToCommandLine();
+      } else {
+        setRequiredToAddedToCommandLine((Boolean)value);
+      }
+      break;
+
+    case DATA_MOVEMENT:
+      if (value == null) {
+        unsetDataMovement();
+      } else {
+        setDataMovement((Boolean)value);
+      }
+      break;
+
+    case LOCATION:
+      if (value == null) {
+        unsetLocation();
+      } else {
+        setLocation((String)value);
+      }
+      break;
+
+    case SEARCH_QUERY:
+      if (value == null) {
+        unsetSearchQuery();
+      } else {
+        setSearchQuery((String)value);
+      }
+      break;
+
+    case OUTPUT_STREAMING:
+      if (value == null) {
+        unsetOutputStreaming();
+      } else {
+        setOutputStreaming((Boolean)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case NAME:
+      return getName();
+
+    case VALUE:
+      return getValue();
+
+    case TYPE:
+      return getType();
+
+    case APPLICATION_ARGUMENT:
+      return getApplicationArgument();
+
+    case IS_REQUIRED:
+      return Boolean.valueOf(isIsRequired());
+
+    case REQUIRED_TO_ADDED_TO_COMMAND_LINE:
+      return Boolean.valueOf(isRequiredToAddedToCommandLine());
+
+    case DATA_MOVEMENT:
+      return Boolean.valueOf(isDataMovement());
+
+    case LOCATION:
+      return getLocation();
+
+    case SEARCH_QUERY:
+      return getSearchQuery();
+
+    case OUTPUT_STREAMING:
+      return Boolean.valueOf(isOutputStreaming());
+
+    }
+    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 NAME:
+      return isSetName();
+    case VALUE:
+      return isSetValue();
+    case TYPE:
+      return isSetType();
+    case APPLICATION_ARGUMENT:
+      return isSetApplicationArgument();
+    case IS_REQUIRED:
+      return isSetIsRequired();
+    case REQUIRED_TO_ADDED_TO_COMMAND_LINE:
+      return isSetRequiredToAddedToCommandLine();
+    case DATA_MOVEMENT:
+      return isSetDataMovement();
+    case LOCATION:
+      return isSetLocation();
+    case SEARCH_QUERY:
+      return isSetSearchQuery();
+    case OUTPUT_STREAMING:
+      return isSetOutputStreaming();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof OutputDataObjectType)
+      return this.equals((OutputDataObjectType)that);
+    return false;
+  }
+
+  public boolean equals(OutputDataObjectType that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
+        return false;
+      if (!this.name.equals(that.name))
+        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_applicationArgument = true && this.isSetApplicationArgument();
+    boolean that_present_applicationArgument = true && that.isSetApplicationArgument();
+    if (this_present_applicationArgument || that_present_applicationArgument) {
+      if (!(this_present_applicationArgument && that_present_applicationArgument))
+        return false;
+      if (!this.applicationArgument.equals(that.applicationArgument))
+        return false;
+    }
+
+    boolean this_present_isRequired = true && this.isSetIsRequired();
+    boolean that_present_isRequired = true && that.isSetIsRequired();
+    if (this_present_isRequired || that_present_isRequired) {
+      if (!(this_present_isRequired && that_present_isRequired))
+        return false;
+      if (this.isRequired != that.isRequired)
+        return false;
+    }
+
+    boolean this_present_requiredToAddedToCommandLine = true && this.isSetRequiredToAddedToCommandLine();
+    boolean that_present_requiredToAddedToCommandLine = true && that.isSetRequiredToAddedToCommandLine();
+    if (this_present_requiredToAddedToCommandLine || that_present_requiredToAddedToCommandLine) {
+      if (!(this_present_requiredToAddedToCommandLine && that_present_requiredToAddedToCommandLine))
+        return false;
+      if (this.requiredToAddedToCommandLine != that.requiredToAddedToCommandLine)
+        return false;
+    }
+
+    boolean this_present_dataMovement = true && this.isSetDataMovement();
+    boolean that_present_dataMovement = true && that.isSetDataMovement();
+    if (this_present_dataMovement || that_present_dataMovement) {
+      if (!(this_present_dataMovement && that_present_dataMovement))
+        return false;
+      if (this.dataMovement != that.dataMovement)
+        return false;
+    }
+
+    boolean this_present_location = true && this.isSetLocation();
+    boolean that_present_location = true && that.isSetLocation();
+    if (this_present_location || that_present_location) {
+      if (!(this_present_location && that_present_location))
+        return false;
+      if (!this.location.equals(that.location))
+        return false;
+    }
+
+    boolean this_present_searchQuery = true && this.isSetSearchQuery();
+    boolean that_present_searchQuery = true && that.isSetSearchQuery();
+    if (this_present_searchQuery || that_present_searchQuery) {
+      if (!(this_present_searchQuery && that_present_searchQuery))
+        return false;
+      if (!this.searchQuery.equals(that.searchQuery))
+        return false;
+    }
+
+    boolean this_present_outputStreaming = true && this.isSetOutputStreaming();
+    boolean that_present_outputStreaming = true && that.isSetOutputStreaming();
+    if (this_present_outputStreaming || that_present_outputStreaming) {
+      if (!(this_present_outputStreaming && that_present_outputStreaming))
+        return false;
+      if (this.outputStreaming != that.outputStreaming)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_name = true && (isSetName());
+    list.add(present_name);
+    if (present_name)
+      list.add(name);
+
+    boolean present_value = true && (isSetValue());
+    list.add(present_value);
+    if (present_value)
+      list.add(value);
+
+    boolean present_type = true && (isSetType());
+    list.add(present_type);
+    if (present_type)
+      list.add(type.getValue());
+
+    boolean present_applicationArgument = true && (isSetApplicationArgument());
+    list.add(present_applicationArgument);
+    if (present_applicationArgument)
+      list.add(applicationArgument);
+
+    boolean present_isRequired = true && (isSetIsRequired());
+    list.add(present_isRequired);
+    if (present_isRequired)
+      list.add(isRequired);
+
+    boolean present_requiredToAddedToCommandLine = true && (isSetRequiredToAddedToCommandLine());
+    list.add(present_requiredToAddedToCommandLine);
+    if (present_requiredToAddedToCommandLine)
+      list.add(requiredToAddedToCommandLine);
+
+    boolean present_dataMovement = true && (isSetDataMovement());
+    list.add(present_dataMovement);
+    if (present_dataMovement)
+      list.add(dataMovement);
+
+    boolean present_location = true && (isSetLocation());
+    list.add(present_location);
+    if (present_location)
+      list.add(location);
+
+    boolean present_searchQuery = true && (isSetSearchQuery());
+    list.add(present_searchQuery);
+    if (present_searchQuery)
+      list.add(searchQuery);
+
+    boolean present_outputStreaming = true && (isSetOutputStreaming());
+    list.add(present_outputStreaming);
+    if (present_outputStreaming)
+      list.add(outputStreaming);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(OutputDataObjectType other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+      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(isSetApplicationArgument()).compareTo(other.isSetApplicationArgument());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationArgument()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationArgument, other.applicationArgument);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetIsRequired()).compareTo(other.isSetIsRequired());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIsRequired()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isRequired, other.isRequired);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetRequiredToAddedToCommandLine()).compareTo(other.isSetRequiredToAddedToCommandLine());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRequiredToAddedToCommandLine()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.requiredToAddedToCommandLine, other.requiredToAddedToCommandLine);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataMovement()).compareTo(other.isSetDataMovement());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovement()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovement, other.dataMovement);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLocation()).compareTo(other.isSetLocation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLocation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.location, other.location);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSearchQuery()).compareTo(other.isSetSearchQuery());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSearchQuery()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.searchQuery, other.searchQuery);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOutputStreaming()).compareTo(other.isSetOutputStreaming());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOutputStreaming()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.outputStreaming, other.outputStreaming);
+      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("OutputDataObjectType(");
+    boolean first = true;
+
+    sb.append("name:");
+    if (this.name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.name);
+    }
+    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 (isSetApplicationArgument()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationArgument:");
+      if (this.applicationArgument == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationArgument);
+      }
+      first = false;
+    }
+    if (isSetIsRequired()) {
+      if (!first) sb.append(", ");
+      sb.append("isRequired:");
+      sb.append(this.isRequired);
+      first = false;
+    }
+    if (isSetRequiredToAddedToCommandLine()) {
+      if (!first) sb.append(", ");
+      sb.append("requiredToAddedToCommandLine:");
+      sb.append(this.requiredToAddedToCommandLine);
+      first = false;
+    }
+    if (isSetDataMovement()) {
+      if (!first) sb.append(", ");
+      sb.append("dataMovement:");
+      sb.append(this.dataMovement);
+      first = false;
+    }
+    if (isSetLocation()) {
+      if (!first) sb.append(", ");
+      sb.append("location:");
+      if (this.location == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.location);
+      }
+      first = false;
+    }
+    if (isSetSearchQuery()) {
+      if (!first) sb.append(", ");
+      sb.append("searchQuery:");
+      if (this.searchQuery == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.searchQuery);
+      }
+      first = false;
+    }
+    if (isSetOutputStreaming()) {
+      if (!first) sb.append(", ");
+      sb.append("outputStreaming:");
+      sb.append(this.outputStreaming);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (name == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! 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 OutputDataObjectTypeStandardSchemeFactory implements SchemeFactory {
+    public OutputDataObjectTypeStandardScheme getScheme() {
+      return new OutputDataObjectTypeStandardScheme();
+    }
+  }
+
+  private static class OutputDataObjectTypeStandardScheme extends StandardScheme<OutputDataObjectType> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, OutputDataObjectType 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: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(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.I32) {
+              struct.type = org.apache.airavata.model.application.io.DataType.findByValue(iprot.readI32());
+              struct.setTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // APPLICATION_ARGUMENT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.applicationArgument = iprot.readString();
+              struct.setApplicationArgumentIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // IS_REQUIRED
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.isRequired = iprot.readBool();
+              struct.setIsRequiredIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // REQUIRED_TO_ADDED_TO_COMMAND_LINE
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.requiredToAddedToCommandLine = iprot.readBool();
+              struct.setRequiredToAddedToCommandLineIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // DATA_MOVEMENT
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.dataMovement = iprot.readBool();
+              struct.setDataMovementIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // LOCATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.location = iprot.readString();
+              struct.setLocationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // SEARCH_QUERY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.searchQuery = iprot.readString();
+              struct.setSearchQueryIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // OUTPUT_STREAMING
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.outputStreaming = iprot.readBool();
+              struct.setOutputStreamingIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, OutputDataObjectType struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        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.writeI32(struct.type.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.applicationArgument != null) {
+        if (struct.isSetApplicationArgument()) {
+          oprot.writeFieldBegin(APPLICATION_ARGUMENT_FIELD_DESC);
+          oprot.writeString(struct.applicationArgument);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetIsRequired()) {
+        oprot.writeFieldBegin(IS_REQUIRED_FIELD_DESC);
+        oprot.writeBool(struct.isRequired);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetRequiredToAddedToCommandLine()) {
+        oprot.writeFieldBegin(REQUIRED_TO_ADDED_TO_COMMAND_LINE_FIELD_DESC);
+        oprot.writeBool(struct.requiredToAddedToCommandLine);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetDataMovement()) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_FIELD_DESC);
+        oprot.writeBool(struct.dataMovement);
+        oprot.writeFieldEnd();
+      }
+      if (struct.location != null) {
+        if (struct.isSetLocation()) {
+          oprot.writeFieldBegin(LOCATION_FIELD_DESC);
+          oprot.writeString(struct.location);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.searchQuery != null) {
+        if (struct.isSetSearchQuery()) {
+          oprot.writeFieldBegin(SEARCH_QUERY_FIELD_DESC);
+          oprot.writeString(struct.searchQuery);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetOutputStreaming()) {
+        oprot.writeFieldBegin(OUTPUT_STREAMING_FIELD_DESC);
+        oprot.writeBool(struct.outputStreaming);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class OutputDataObjectTypeTupleSchemeFactory implements SchemeFactory {
+    public OutputDataObjectTypeTupleScheme getScheme() {
+      return new OutputDataObjectTypeTupleScheme();
+    }
+  }
+
+  private static class OutputDataObjectTypeTupleScheme extends TupleScheme<OutputDataObjectType> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, OutputDataObjectType struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.name);
+      BitSet optionals = new BitSet();
+      if (struct.isSetValue()) {
+        optionals.set(0);
+      }
+      if (struct.isSetType()) {
+        optionals.set(1);
+      }
+      if (struct.isSetApplicationArgument()) {
+        optionals.set(2);
+      }
+      if (struct.isSetIsRequired()) {
+        optionals.set(3);
+      }
+      if (struct.isSetRequiredToAddedToCommandLine()) {
+        optionals.set(4);
+      }
+      if (struct.isSetDataMovement()) {
+        optionals.set(5);
+      }
+      if (struct.isSetLocation()) {
+        optionals.set(6);
+      }
+      if (struct.isSetSearchQuery()) {
+        optionals.set(7);
+      }
+      if (struct.isSetOutputStreaming()) {
+        optionals.set(8);
+      }
+      oprot.writeBitSet(optionals, 9);
+      if (struct.isSetValue()) {
+        oprot.writeString(struct.value);
+      }
+      if (struct.isSetType()) {
+        oprot.writeI32(struct.type.getValue());
+      }
+      if (struct.isSetApplicationArgument()) {
+        oprot.writeString(struct.applicationArgument);
+      }
+      if (struct.isSetIsRequired()) {
+        oprot.writeBool(struct.isRequired);
+      }
+      if (struct.isSetRequiredToAddedToCommandLine()) {
+        oprot.writeBool(struct.requiredToAddedToCommandLine);
+      }
+      if (struct.isSetDataMovement()) {
+        oprot.writeBool(struct.dataMovement);
+      }
+      if (struct.isSetLocation()) {
+        oprot.writeString(struct.location);
+      }
+      if (struct.isSetSearchQuery()) {
+        oprot.writeString(struct.searchQuery);
+      }
+      if (struct.isSetOutputStreaming()) {
+        oprot.writeBool(struct.outputStreaming);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, OutputDataObjectType struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.name = iprot.readString();
+      struct.setNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(9);
+      if (incoming.get(0)) {
+        struct.value = iprot.readString();
+        struct.setValueIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.type = org.apache.airavata.model.application.io.DataType.findByValue(iprot.readI32());
+        struct.setTypeIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.applicationArgument = iprot.readString();
+        struct.setApplicationArgumentIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.isRequired = iprot.readBool();
+        struct.setIsRequiredIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.requiredToAddedToCommandLine = iprot.readBool();
+        struct.setRequiredToAddedToCommandLineIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.dataMovement = iprot.readBool();
+        struct.setDataMovementIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.location = iprot.readString();
+        struct.setLocationIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.searchQuery = iprot.readString();
+        struct.setSearchQueryIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.outputStreaming = iprot.readBool();
+        struct.setOutputStreamingIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ErrorModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
new file mode 100644
index 0000000..c2817d8
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
@@ -0,0 +1,991 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.commons;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ErrorModel implements org.apache.thrift.TBase<ErrorModel, ErrorModel._Fields>, java.io.Serializable, Cloneable, Comparable<ErrorModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ErrorModel");
+
+  private static final org.apache.thrift.protocol.TField ERROR_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("errorId", 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 ACTUAL_ERROR_MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("actualErrorMessage", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField USER_FRIENDLY_MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("userFriendlyMessage", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField TRANSIENT_OR_PERSISTENT_FIELD_DESC = new org.apache.thrift.protocol.TField("transientOrPersistent", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField ROOT_CAUSE_ERROR_ID_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("rootCauseErrorIdList", org.apache.thrift.protocol.TType.LIST, (short)6);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ErrorModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ErrorModelTupleSchemeFactory());
+  }
+
+  public String errorId; // required
+  public long creationTime; // optional
+  public String actualErrorMessage; // optional
+  public String userFriendlyMessage; // optional
+  public boolean transientOrPersistent; // optional
+  public List<String> rootCauseErrorIdList; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    ERROR_ID((short)1, "errorId"),
+    CREATION_TIME((short)2, "creationTime"),
+    ACTUAL_ERROR_MESSAGE((short)3, "actualErrorMessage"),
+    USER_FRIENDLY_MESSAGE((short)4, "userFriendlyMessage"),
+    TRANSIENT_OR_PERSISTENT((short)5, "transientOrPersistent"),
+    ROOT_CAUSE_ERROR_ID_LIST((short)6, "rootCauseErrorIdList");
+
+    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: // ERROR_ID
+          return ERROR_ID;
+        case 2: // CREATION_TIME
+          return CREATION_TIME;
+        case 3: // ACTUAL_ERROR_MESSAGE
+          return ACTUAL_ERROR_MESSAGE;
+        case 4: // USER_FRIENDLY_MESSAGE
+          return USER_FRIENDLY_MESSAGE;
+        case 5: // TRANSIENT_OR_PERSISTENT
+          return TRANSIENT_OR_PERSISTENT;
+        case 6: // ROOT_CAUSE_ERROR_ID_LIST
+          return ROOT_CAUSE_ERROR_ID_LIST;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __CREATIONTIME_ISSET_ID = 0;
+  private static final int __TRANSIENTORPERSISTENT_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.ACTUAL_ERROR_MESSAGE,_Fields.USER_FRIENDLY_MESSAGE,_Fields.TRANSIENT_OR_PERSISTENT,_Fields.ROOT_CAUSE_ERROR_ID_LIST};
+  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.ERROR_ID, new org.apache.thrift.meta_data.FieldMetaData("errorId", 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.ACTUAL_ERROR_MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("actualErrorMessage", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.USER_FRIENDLY_MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("userFriendlyMessage", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TRANSIENT_OR_PERSISTENT, new org.apache.thrift.meta_data.FieldMetaData("transientOrPersistent", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.ROOT_CAUSE_ERROR_ID_LIST, new org.apache.thrift.meta_data.FieldMetaData("rootCauseErrorIdList", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ErrorModel.class, metaDataMap);
+  }
+
+  public ErrorModel() {
+    this.errorId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.transientOrPersistent = false;
+
+  }
+
+  public ErrorModel(
+    String errorId)
+  {
+    this();
+    this.errorId = errorId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ErrorModel(ErrorModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetErrorId()) {
+      this.errorId = other.errorId;
+    }
+    this.creationTime = other.creationTime;
+    if (other.isSetActualErrorMessage()) {
+      this.actualErrorMessage = other.actualErrorMessage;
+    }
+    if (other.isSetUserFriendlyMessage()) {
+      this.userFriendlyMessage = other.userFriendlyMessage;
+    }
+    this.transientOrPersistent = other.transientOrPersistent;
+    if (other.isSetRootCauseErrorIdList()) {
+      List<String> __this__rootCauseErrorIdList = new ArrayList<String>(other.rootCauseErrorIdList);
+      this.rootCauseErrorIdList = __this__rootCauseErrorIdList;
+    }
+  }
+
+  public ErrorModel deepCopy() {
+    return new ErrorModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.errorId = "DO_NOT_SET_AT_CLIENTS";
+
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    this.actualErrorMessage = null;
+    this.userFriendlyMessage = null;
+    this.transientOrPersistent = false;
+
+    this.rootCauseErrorIdList = null;
+  }
+
+  public String getErrorId() {
+    return this.errorId;
+  }
+
+  public ErrorModel setErrorId(String errorId) {
+    this.errorId = errorId;
+    return this;
+  }
+
+  public void unsetErrorId() {
+    this.errorId = null;
+  }
+
+  /** Returns true if field errorId is set (has been assigned a value) and false otherwise */
+  public boolean isSetErrorId() {
+    return this.errorId != null;
+  }
+
+  public void setErrorIdIsSet(boolean value) {
+    if (!value) {
+      this.errorId = null;
+    }
+  }
+
+  public long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public ErrorModel setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetCreationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  public void setCreationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
+  }
+
+  public String getActualErrorMessage() {
+    return this.actualErrorMessage;
+  }
+
+  public ErrorModel setActualErrorMessage(String actualErrorMessage) {
+    this.actualErrorMessage = actualErrorMessage;
+    return this;
+  }
+
+  public void unsetActualErrorMessage() {
+    this.actualErrorMessage = null;
+  }
+
+  /** Returns true if field actualErrorMessage is set (has been assigned a value) and false otherwise */
+  public boolean isSetActualErrorMessage() {
+    return this.actualErrorMessage != null;
+  }
+
+  public void setActualErrorMessageIsSet(boolean value) {
+    if (!value) {
+      this.actualErrorMessage = null;
+    }
+  }
+
+  public String getUserFriendlyMessage() {
+    return this.userFriendlyMessage;
+  }
+
+  public ErrorModel setUserFriendlyMessage(String userFriendlyMessage) {
+    this.userFriendlyMessage = userFriendlyMessage;
+    return this;
+  }
+
+  public void unsetUserFriendlyMessage() {
+    this.userFriendlyMessage = null;
+  }
+
+  /** Returns true if field userFriendlyMessage is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserFriendlyMessage() {
+    return this.userFriendlyMessage != null;
+  }
+
+  public void setUserFriendlyMessageIsSet(boolean value) {
+    if (!value) {
+      this.userFriendlyMessage = null;
+    }
+  }
+
+  public boolean isTransientOrPersistent() {
+    return this.transientOrPersistent;
+  }
+
+  public ErrorModel setTransientOrPersistent(boolean transientOrPersistent) {
+    this.transientOrPersistent = transientOrPersistent;
+    setTransientOrPersistentIsSet(true);
+    return this;
+  }
+
+  public void unsetTransientOrPersistent() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TRANSIENTORPERSISTENT_ISSET_ID);
+  }
+
+  /** Returns true if field transientOrPersistent is set (has been assigned a value) and false otherwise */
+  public boolean isSetTransientOrPersistent() {
+    return EncodingUtils.testBit(__isset_bitfield, __TRANSIENTORPERSISTENT_ISSET_ID);
+  }
+
+  public void setTransientOrPersistentIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TRANSIENTORPERSISTENT_ISSET_ID, value);
+  }
+
+  public int getRootCauseErrorIdListSize() {
+    return (this.rootCauseErrorIdList == null) ? 0 : this.rootCauseErrorIdList.size();
+  }
+
+  public java.util.Iterator<String> getRootCauseErrorIdListIterator() {
+    return (this.rootCauseErrorIdList == null) ? null : this.rootCauseErrorIdList.iterator();
+  }
+
+  public void addToRootCauseErrorIdList(String elem) {
+    if (this.rootCauseErrorIdList == null) {
+      this.rootCauseErrorIdList = new ArrayList<String>();
+    }
+    this.rootCauseErrorIdList.add(elem);
+  }
+
+  public List<String> getRootCauseErrorIdList() {
+    return this.rootCauseErrorIdList;
+  }
+
+  public ErrorModel setRootCauseErrorIdList(List<String> rootCauseErrorIdList) {
+    this.rootCauseErrorIdList = rootCauseErrorIdList;
+    return this;
+  }
+
+  public void unsetRootCauseErrorIdList() {
+    this.rootCauseErrorIdList = null;
+  }
+
+  /** Returns true if field rootCauseErrorIdList is set (has been assigned a value) and false otherwise */
+  public boolean isSetRootCauseErrorIdList() {
+    return this.rootCauseErrorIdList != null;
+  }
+
+  public void setRootCauseErrorIdListIsSet(boolean value) {
+    if (!value) {
+      this.rootCauseErrorIdList = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case ERROR_ID:
+      if (value == null) {
+        unsetErrorId();
+      } else {
+        setErrorId((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case ACTUAL_ERROR_MESSAGE:
+      if (value == null) {
+        unsetActualErrorMessage();
+      } else {
+        setActualErrorMessage((String)value);
+      }
+      break;
+
+    case USER_FRIENDLY_MESSAGE:
+      if (value == null) {
+        unsetUserFriendlyMessage();
+      } else {
+        setUserFriendlyMessage((String)value);
+      }
+      break;
+
+    case TRANSIENT_OR_PERSISTENT:
+      if (value == null) {
+        unsetTransientOrPersistent();
+      } else {
+        setTransientOrPersistent((Boolean)value);
+      }
+      break;
+
+    case ROOT_CAUSE_ERROR_ID_LIST:
+      if (value == null) {
+        unsetRootCauseErrorIdList();
+      } else {
+        setRootCauseErrorIdList((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case ERROR_ID:
+      return getErrorId();
+
+    case CREATION_TIME:
+      return Long.valueOf(getCreationTime());
+
+    case ACTUAL_ERROR_MESSAGE:
+      return getActualErrorMessage();
+
+    case USER_FRIENDLY_MESSAGE:
+      return getUserFriendlyMessage();
+
+    case TRANSIENT_OR_PERSISTENT:
+      return Boolean.valueOf(isTransientOrPersistent());
+
+    case ROOT_CAUSE_ERROR_ID_LIST:
+      return getRootCauseErrorIdList();
+
+    }
+    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 ERROR_ID:
+      return isSetErrorId();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case ACTUAL_ERROR_MESSAGE:
+      return isSetActualErrorMessage();
+    case USER_FRIENDLY_MESSAGE:
+      return isSetUserFriendlyMessage();
+    case TRANSIENT_OR_PERSISTENT:
+      return isSetTransientOrPersistent();
+    case ROOT_CAUSE_ERROR_ID_LIST:
+      return isSetRootCauseErrorIdList();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ErrorModel)
+      return this.equals((ErrorModel)that);
+    return false;
+  }
+
+  public boolean equals(ErrorModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_errorId = true && this.isSetErrorId();
+    boolean that_present_errorId = true && that.isSetErrorId();
+    if (this_present_errorId || that_present_errorId) {
+      if (!(this_present_errorId && that_present_errorId))
+        return false;
+      if (!this.errorId.equals(that.errorId))
+        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_actualErrorMessage = true && this.isSetActualErrorMessage();
+    boolean that_present_actualErrorMessage = true && that.isSetActualErrorMessage();
+    if (this_present_actualErrorMessage || that_present_actualErrorMessage) {
+      if (!(this_present_actualErrorMessage && that_present_actualErrorMessage))
+        return false;
+      if (!this.actualErrorMessage.equals(that.actualErrorMessage))
+        return false;
+    }
+
+    boolean this_present_userFriendlyMessage = true && this.isSetUserFriendlyMessage();
+    boolean that_present_userFriendlyMessage = true && that.isSetUserFriendlyMessage();
+    if (this_present_userFriendlyMessage || that_present_userFriendlyMessage) {
+      if (!(this_present_userFriendlyMessage && that_present_userFriendlyMessage))
+        return false;
+      if (!this.userFriendlyMessage.equals(that.userFriendlyMessage))
+        return false;
+    }
+
+    boolean this_present_transientOrPersistent = true && this.isSetTransientOrPersistent();
+    boolean that_present_transientOrPersistent = true && that.isSetTransientOrPersistent();
+    if (this_present_transientOrPersistent || that_present_transientOrPersistent) {
+      if (!(this_present_transientOrPersistent && that_present_transientOrPersistent))
+        return false;
+      if (this.transientOrPersistent != that.transientOrPersistent)
+        return false;
+    }
+
+    boolean this_present_rootCauseErrorIdList = true && this.isSetRootCauseErrorIdList();
+    boolean that_present_rootCauseErrorIdList = true && that.isSetRootCauseErrorIdList();
+    if (this_present_rootCauseErrorIdList || that_present_rootCauseErrorIdList) {
+      if (!(this_present_rootCauseErrorIdList && that_present_rootCauseErrorIdList))
+        return false;
+      if (!this.rootCauseErrorIdList.equals(that.rootCauseErrorIdList))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_errorId = true && (isSetErrorId());
+    list.add(present_errorId);
+    if (present_errorId)
+      list.add(errorId);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_actualErrorMessage = true && (isSetActualErrorMessage());
+    list.add(present_actualErrorMessage);
+    if (present_actualErrorMessage)
+      list.add(actualErrorMessage);
+
+    boolean present_userFriendlyMessage = true && (isSetUserFriendlyMessage());
+    list.add(present_userFriendlyMessage);
+    if (present_userFriendlyMessage)
+      list.add(userFriendlyMessage);
+
+    boolean present_transientOrPersistent = true && (isSetTransientOrPersistent());
+    list.add(present_transientOrPersistent);
+    if (present_transientOrPersistent)
+      list.add(transientOrPersistent);
+
+    boolean present_rootCauseErrorIdList = true && (isSetRootCauseErrorIdList());
+    list.add(present_rootCauseErrorIdList);
+    if (present_rootCauseErrorIdList)
+      list.add(rootCauseErrorIdList);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ErrorModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetErrorId()).compareTo(other.isSetErrorId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetErrorId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errorId, other.errorId);
+      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(isSetActualErrorMessage()).compareTo(other.isSetActualErrorMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetActualErrorMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.actualErrorMessage, other.actualErrorMessage);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUserFriendlyMessage()).compareTo(other.isSetUserFriendlyMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserFriendlyMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userFriendlyMessage, other.userFriendlyMessage);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTransientOrPersistent()).compareTo(other.isSetTransientOrPersistent());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTransientOrPersistent()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transientOrPersistent, other.transientOrPersistent);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetRootCauseErrorIdList()).compareTo(other.isSetRootCauseErrorIdList());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRootCauseErrorIdList()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rootCauseErrorIdList, other.rootCauseErrorIdList);
+      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("ErrorModel(");
+    boolean first = true;
+
+    sb.append("errorId:");
+    if (this.errorId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.errorId);
+    }
+    first = false;
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetActualErrorMessage()) {
+      if (!first) sb.append(", ");
+      sb.append("actualErrorMessage:");
+      if (this.actualErrorMessage == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.actualErrorMessage);
+      }
+      first = false;
+    }
+    if (isSetUserFriendlyMessage()) {
+      if (!first) sb.append(", ");
+      sb.append("userFriendlyMessage:");
+      if (this.userFriendlyMessage == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userFriendlyMessage);
+      }
+      first = false;
+    }
+    if (isSetTransientOrPersistent()) {
+      if (!first) sb.append(", ");
+      sb.append("transientOrPersistent:");
+      sb.append(this.transientOrPersistent);
+      first = false;
+    }
+    if (isSetRootCauseErrorIdList()) {
+      if (!first) sb.append(", ");
+      sb.append("rootCauseErrorIdList:");
+      if (this.rootCauseErrorIdList == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.rootCauseErrorIdList);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (errorId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'errorId' was not present! 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 ErrorModelStandardSchemeFactory implements SchemeFactory {
+    public ErrorModelStandardScheme getScheme() {
+      return new ErrorModelStandardScheme();
+    }
+  }
+
+  private static class ErrorModelStandardScheme extends StandardScheme<ErrorModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ErrorModel 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: // ERROR_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.errorId = iprot.readString();
+              struct.setErrorIdIsSet(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: // ACTUAL_ERROR_MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.actualErrorMessage = iprot.readString();
+              struct.setActualErrorMessageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // USER_FRIENDLY_MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userFriendlyMessage = iprot.readString();
+              struct.setUserFriendlyMessageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // TRANSIENT_OR_PERSISTENT
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.transientOrPersistent = iprot.readBool();
+              struct.setTransientOrPersistentIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // ROOT_CAUSE_ERROR_ID_LIST
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.rootCauseErrorIdList = new ArrayList<String>(_list0.size);
+                String _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = iprot.readString();
+                  struct.rootCauseErrorIdList.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setRootCauseErrorIdListIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ErrorModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.errorId != null) {
+        oprot.writeFieldBegin(ERROR_ID_FIELD_DESC);
+        oprot.writeString(struct.errorId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.actualErrorMessage != null) {
+        if (struct.isSetActualErrorMessage()) {
+          oprot.writeFieldBegin(ACTUAL_ERROR_MESSAGE_FIELD_DESC);
+          oprot.writeString(struct.actualErrorMessage);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.userFriendlyMessage != null) {
+        if (struct.isSetUserFriendlyMessage()) {
+          oprot.writeFieldBegin(USER_FRIENDLY_MESSAGE_FIELD_DESC);
+          oprot.writeString(struct.userFriendlyMessage);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetTransientOrPersistent()) {
+        oprot.writeFieldBegin(TRANSIENT_OR_PERSISTENT_FIELD_DESC);
+        oprot.writeBool(struct.transientOrPersistent);
+        oprot.writeFieldEnd();
+      }
+      if (struct.rootCauseErrorIdList != null) {
+        if (struct.isSetRootCauseErrorIdList()) {
+          oprot.writeFieldBegin(ROOT_CAUSE_ERROR_ID_LIST_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.rootCauseErrorIdList.size()));
+            for (String _iter3 : struct.rootCauseErrorIdList)
+            {
+              oprot.writeString(_iter3);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ErrorModelTupleSchemeFactory implements SchemeFactory {
+    public ErrorModelTupleScheme getScheme() {
+      return new ErrorModelTupleScheme();
+    }
+  }
+
+  private static class ErrorModelTupleScheme extends TupleScheme<ErrorModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ErrorModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.errorId);
+      BitSet optionals = new BitSet();
+      if (struct.isSetCreationTime()) {
+        optionals.set(0);
+      }
+      if (struct.isSetActualErrorMessage()) {
+        optionals.set(1);
+      }
+      if (struct.isSetUserFriendlyMessage()) {
+        optionals.set(2);
+      }
+      if (struct.isSetTransientOrPersistent()) {
+        optionals.set(3);
+      }
+      if (struct.isSetRootCauseErrorIdList()) {
+        optionals.set(4);
+      }
+      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetActualErrorMessage()) {
+        oprot.writeString(struct.actualErrorMessage);
+      }
+      if (struct.isSetUserFriendlyMessage()) {
+        oprot.writeString(struct.userFriendlyMessage);
+      }
+      if (struct.isSetTransientOrPersistent()) {
+        oprot.writeBool(struct.transientOrPersistent);
+      }
+      if (struct.isSetRootCauseErrorIdList()) {
+        {
+          oprot.writeI32(struct.rootCauseErrorIdList.size());
+          for (String _iter4 : struct.rootCauseErrorIdList)
+          {
+            oprot.writeString(_iter4);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ErrorModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.errorId = iprot.readString();
+      struct.setErrorIdIsSet(true);
+      BitSet incoming = iprot.readBitSet(5);
+      if (incoming.get(0)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.actualErrorMessage = iprot.readString();
+        struct.setActualErrorMessageIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.userFriendlyMessage = iprot.readString();
+        struct.setUserFriendlyMessageIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.transientOrPersistent = iprot.readBool();
+        struct.setTransientOrPersistentIsSet(true);
+      }
+      if (incoming.get(4)) {
+        {
+          org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.rootCauseErrorIdList = new ArrayList<String>(_list5.size);
+          String _elem6;
+          for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+          {
+            _elem6 = iprot.readString();
+            struct.rootCauseErrorIdList.add(_elem6);
+          }
+        }
+        struct.setRootCauseErrorIdListIsSet(true);
+      }
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/ttypes.py
new file mode 100644
index 0000000..df2ddf5
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/ttypes.py
@@ -0,0 +1,663 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+import apache.airavata.model.data.movement.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+class FileModelType:
+  FILE = 0
+  DIRECTORY = 1
+
+  _VALUES_TO_NAMES = {
+    0: "FILE",
+    1: "DIRECTORY",
+  }
+
+  _NAMES_TO_VALUES = {
+    "FILE": 0,
+    "DIRECTORY": 1,
+  }
+
+class StorageResourceType:
+  GATEWAY_DATA_STORE = 0
+  BACKUP_GATEWAY_DATA_STORE = 1
+  COMPUTE_RESOURCE = 2
+  LONG_TERM_STORAGE_RESOURCE = 3
+  OTHER = 4
+
+  _VALUES_TO_NAMES = {
+    0: "GATEWAY_DATA_STORE",
+    1: "BACKUP_GATEWAY_DATA_STORE",
+    2: "COMPUTE_RESOURCE",
+    3: "LONG_TERM_STORAGE_RESOURCE",
+    4: "OTHER",
+  }
+
+  _NAMES_TO_VALUES = {
+    "GATEWAY_DATA_STORE": 0,
+    "BACKUP_GATEWAY_DATA_STORE": 1,
+    "COMPUTE_RESOURCE": 2,
+    "LONG_TERM_STORAGE_RESOURCE": 3,
+    "OTHER": 4,
+  }
+
+class ReplicaPersistentType:
+  TRANSIENT = 0
+  PERSISTENT = 1
+
+  _VALUES_TO_NAMES = {
+    0: "TRANSIENT",
+    1: "PERSISTENT",
+  }
+
+  _NAMES_TO_VALUES = {
+    "TRANSIENT": 0,
+    "PERSISTENT": 1,
+  }
+
+
+class FileCollectionModel:
+  """
+  Attributes:
+   - collectionId
+   - gatewayId
+   - username
+   - sharedUsers
+   - sharedPublic
+   - collectionName
+   - collectionDescription
+   - fileIdList
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'collectionId', None, None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRING, 'username', None, None, ), # 3
+    (4, TType.LIST, 'sharedUsers', (TType.STRING,None), None, ), # 4
+    (5, TType.BOOL, 'sharedPublic', None, None, ), # 5
+    (6, TType.STRING, 'collectionName', None, None, ), # 6
+    (7, TType.STRING, 'collectionDescription', None, None, ), # 7
+    (8, TType.LIST, 'fileIdList', (TType.STRING,None), None, ), # 8
+  )
+
+  def __init__(self, collectionId=None, gatewayId=None, username=None, sharedUsers=None, sharedPublic=None, collectionName=None, collectionDescription=None, fileIdList=None,):
+    self.collectionId = collectionId
+    self.gatewayId = gatewayId
+    self.username = username
+    self.sharedUsers = sharedUsers
+    self.sharedPublic = sharedPublic
+    self.collectionName = collectionName
+    self.collectionDescription = collectionDescription
+    self.fileIdList = fileIdList
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.collectionId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.username = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.LIST:
+          self.sharedUsers = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = iprot.readString()
+            self.sharedUsers.append(_elem5)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.BOOL:
+          self.sharedPublic = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.STRING:
+          self.collectionName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.STRING:
+          self.collectionDescription = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.LIST:
+          self.fileIdList = []
+          (_etype9, _size6) = iprot.readListBegin()
+          for _i10 in xrange(_size6):
+            _elem11 = iprot.readString()
+            self.fileIdList.append(_elem11)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('FileCollectionModel')
+    if self.collectionId is not None:
+      oprot.writeFieldBegin('collectionId', TType.STRING, 1)
+      oprot.writeString(self.collectionId)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.username is not None:
+      oprot.writeFieldBegin('username', TType.STRING, 3)
+      oprot.writeString(self.username)
+      oprot.writeFieldEnd()
+    if self.sharedUsers is not None:
+      oprot.writeFieldBegin('sharedUsers', TType.LIST, 4)
+      oprot.writeListBegin(TType.STRING, len(self.sharedUsers))
+      for iter12 in self.sharedUsers:
+        oprot.writeString(iter12)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.sharedPublic is not None:
+      oprot.writeFieldBegin('sharedPublic', TType.BOOL, 5)
+      oprot.writeBool(self.sharedPublic)
+      oprot.writeFieldEnd()
+    if self.collectionName is not None:
+      oprot.writeFieldBegin('collectionName', TType.STRING, 6)
+      oprot.writeString(self.collectionName)
+      oprot.writeFieldEnd()
+    if self.collectionDescription is not None:
+      oprot.writeFieldBegin('collectionDescription', TType.STRING, 7)
+      oprot.writeString(self.collectionDescription)
+      oprot.writeFieldEnd()
+    if self.fileIdList is not None:
+      oprot.writeFieldBegin('fileIdList', TType.LIST, 8)
+      oprot.writeListBegin(TType.STRING, len(self.fileIdList))
+      for iter13 in self.fileIdList:
+        oprot.writeString(iter13)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.collectionId)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.username)
+    value = (value * 31) ^ hash(self.sharedUsers)
+    value = (value * 31) ^ hash(self.sharedPublic)
+    value = (value * 31) ^ hash(self.collectionName)
+    value = (value * 31) ^ hash(self.collectionDescription)
+    value = (value * 31) ^ hash(self.fileIdList)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class FileModel:
+  """
+  Attributes:
+   - fileId
+   - gatewayId
+   - username
+   - sharedUsers
+   - sharedPublic
+   - fileName
+   - fileDescription
+   - sha256Checksum
+   - fileType
+   - fileSize
+   - dataType
+   - creationTime
+   - lastModifiedTime
+   - fileReplicas
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'fileId', None, None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRING, 'username', None, None, ), # 3
+    (4, TType.LIST, 'sharedUsers', (TType.STRING,None), None, ), # 4
+    (5, TType.BOOL, 'sharedPublic', None, None, ), # 5
+    (6, TType.STRING, 'fileName', None, None, ), # 6
+    (7, TType.STRING, 'fileDescription', None, None, ), # 7
+    (8, TType.STRING, 'sha256Checksum', None, None, ), # 8
+    (9, TType.I32, 'fileType', None, None, ), # 9
+    (10, TType.I32, 'fileSize', None, None, ), # 10
+    (11, TType.STRING, 'dataType', None, None, ), # 11
+    (12, TType.I64, 'creationTime', None, None, ), # 12
+    (13, TType.I64, 'lastModifiedTime', None, None, ), # 13
+    (14, TType.LIST, 'fileReplicas', (TType.STRUCT,(FileReplicaModel, FileReplicaModel.thrift_spec)), None, ), # 14
+  )
+
+  def __init__(self, fileId=None, gatewayId=None, username=None, sharedUsers=None, sharedPublic=None, fileName=None, fileDescription=None, sha256Checksum=None, fileType=None, fileSize=None, dataType=None, creationTime=None, lastModifiedTime=None, fileReplicas=None,):
+    self.fileId = fileId
+    self.gatewayId = gatewayId
+    self.username = username
+    self.sharedUsers = sharedUsers
+    self.sharedPublic = sharedPublic
+    self.fileName = fileName
+    self.fileDescription = fileDescription
+    self.sha256Checksum = sha256Checksum
+    self.fileType = fileType
+    self.fileSize = fileSize
+    self.dataType = dataType
+    self.creationTime = creationTime
+    self.lastModifiedTime = lastModifiedTime
+    self.fileReplicas = fileReplicas
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.fileId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.username = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.LIST:
+          self.sharedUsers = []
+          (_etype17, _size14) = iprot.readListBegin()
+          for _i18 in xrange(_size14):
+            _elem19 = iprot.readString()
+            self.sharedUsers.append(_elem19)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.BOOL:
+          self.sharedPublic = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.STRING:
+          self.fileName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.STRING:
+          self.fileDescription = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.STRING:
+          self.sha256Checksum = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.I32:
+          self.fileType = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 10:
+        if ftype == TType.I32:
+          self.fileSize = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 11:
+        if ftype == TType.STRING:
+          self.dataType = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 12:
+        if ftype == TType.I64:
+          self.creationTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 13:
+        if ftype == TType.I64:
+          self.lastModifiedTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 14:
+        if ftype == TType.LIST:
+          self.fileReplicas = []
+          (_etype23, _size20) = iprot.readListBegin()
+          for _i24 in xrange(_size20):
+            _elem25 = FileReplicaModel()
+            _elem25.read(iprot)
+            self.fileReplicas.append(_elem25)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('FileModel')
+    if self.fileId is not None:
+      oprot.writeFieldBegin('fileId', TType.STRING, 1)
+      oprot.writeString(self.fileId)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.username is not None:
+      oprot.writeFieldBegin('username', TType.STRING, 3)
+      oprot.writeString(self.username)
+      oprot.writeFieldEnd()
+    if self.sharedUsers is not None:
+      oprot.writeFieldBegin('sharedUsers', TType.LIST, 4)
+      oprot.writeListBegin(TType.STRING, len(self.sharedUsers))
+      for iter26 in self.sharedUsers:
+        oprot.writeString(iter26)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.sharedPublic is not None:
+      oprot.writeFieldBegin('sharedPublic', TType.BOOL, 5)
+      oprot.writeBool(self.sharedPublic)
+      oprot.writeFieldEnd()
+    if self.fileName is not None:
+      oprot.writeFieldBegin('fileName', TType.STRING, 6)
+      oprot.writeString(self.fileName)
+      oprot.writeFieldEnd()
+    if self.fileDescription is not None:
+      oprot.writeFieldBegin('fileDescription', TType.STRING, 7)
+      oprot.writeString(self.fileDescription)
+      oprot.writeFieldEnd()
+    if self.sha256Checksum is not None:
+      oprot.writeFieldBegin('sha256Checksum', TType.STRING, 8)
+      oprot.writeString(self.sha256Checksum)
+      oprot.writeFieldEnd()
+    if self.fileType is not None:
+      oprot.writeFieldBegin('fileType', TType.I32, 9)
+      oprot.writeI32(self.fileType)
+      oprot.writeFieldEnd()
+    if self.fileSize is not None:
+      oprot.writeFieldBegin('fileSize', TType.I32, 10)
+      oprot.writeI32(self.fileSize)
+      oprot.writeFieldEnd()
+    if self.dataType is not None:
+      oprot.writeFieldBegin('dataType', TType.STRING, 11)
+      oprot.writeString(self.dataType)
+      oprot.writeFieldEnd()
+    if self.creationTime is not None:
+      oprot.writeFieldBegin('creationTime', TType.I64, 12)
+      oprot.writeI64(self.creationTime)
+      oprot.writeFieldEnd()
+    if self.lastModifiedTime is not None:
+      oprot.writeFieldBegin('lastModifiedTime', TType.I64, 13)
+      oprot.writeI64(self.lastModifiedTime)
+      oprot.writeFieldEnd()
+    if self.fileReplicas is not None:
+      oprot.writeFieldBegin('fileReplicas', TType.LIST, 14)
+      oprot.writeListBegin(TType.STRUCT, len(self.fileReplicas))
+      for iter27 in self.fileReplicas:
+        iter27.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.fileId)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.username)
+    value = (value * 31) ^ hash(self.sharedUsers)
+    value = (value * 31) ^ hash(self.sharedPublic)
+    value = (value * 31) ^ hash(self.fileName)
+    value = (value * 31) ^ hash(self.fileDescription)
+    value = (value * 31) ^ hash(self.sha256Checksum)
+    value = (value * 31) ^ hash(self.fileType)
+    value = (value * 31) ^ hash(self.fileSize)
+    value = (value * 31) ^ hash(self.dataType)
+    value = (value * 31) ^ hash(self.creationTime)
+    value = (value * 31) ^ hash(self.lastModifiedTime)
+    value = (value * 31) ^ hash(self.fileReplicas)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class FileReplicaModel:
+  """
+  Attributes:
+   - replicaName
+   - replicaDescription
+   - storageHostname
+   - storageResourceId
+   - filePath
+   - creationTime
+   - validUntilTime
+   - storageResourceType
+   - replicaPersistentType
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'replicaName', None, None, ), # 1
+    (2, TType.STRING, 'replicaDescription', None, None, ), # 2
+    (3, TType.STRING, 'storageHostname', None, None, ), # 3
+    (4, TType.STRING, 'storageResourceId', None, None, ), # 4
+    (5, TType.STRING, 'filePath', None, None, ), # 5
+    (6, TType.I64, 'creationTime', None, None, ), # 6
+    (7, TType.I64, 'validUntilTime', None, None, ), # 7
+    (8, TType.I32, 'storageResourceType', None, None, ), # 8
+    (9, TType.I32, 'replicaPersistentType', None, None, ), # 9
+  )
+
+  def __init__(self, replicaName=None, replicaDescription=None, storageHostname=None, storageResourceId=None, filePath=None, creationTime=None, validUntilTime=None, storageResourceType=None, replicaPersistentType=None,):
+    self.replicaName = replicaName
+    self.replicaDescription = replicaDescription
+    self.storageHostname = storageHostname
+    self.storageResourceId = storageResourceId
+    self.filePath = filePath
+    self.creationTime = creationTime
+    self.validUntilTime = validUntilTime
+    self.storageResourceType = storageResourceType
+    self.replicaPersistentType = replicaPersistentType
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.replicaName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.replicaDescription = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.storageHostname = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.storageResourceId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.STRING:
+          self.filePath = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.I64:
+          self.creationTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.I64:
+          self.validUntilTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.I32:
+          self.storageResourceType = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.I32:
+          self.replicaPersistentType = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('FileReplicaModel')
+    if self.replicaName is not None:
+      oprot.writeFieldBegin('replicaName', TType.STRING, 1)
+      oprot.writeString(self.replicaName)
+      oprot.writeFieldEnd()
+    if self.replicaDescription is not None:
+      oprot.writeFieldBegin('replicaDescription', TType.STRING, 2)
+      oprot.writeString(self.replicaDescription)
+      oprot.writeFieldEnd()
+    if self.storageHostname is not None:
+      oprot.writeFieldBegin('storageHostname', TType.STRING, 3)
+      oprot.writeString(self.storageHostname)
+      oprot.writeFieldEnd()
+    if self.storageResourceId is not None:
+      oprot.writeFieldBegin('storageResourceId', TType.STRING, 4)
+      oprot.writeString(self.storageResourceId)
+      oprot.writeFieldEnd()
+    if self.filePath is not None:
+      oprot.writeFieldBegin('filePath', TType.STRING, 5)
+      oprot.writeString(self.filePath)
+      oprot.writeFieldEnd()
+    if self.creationTime is not None:
+      oprot.writeFieldBegin('creationTime', TType.I64, 6)
+      oprot.writeI64(self.creationTime)
+      oprot.writeFieldEnd()
+    if self.validUntilTime is not None:
+      oprot.writeFieldBegin('validUntilTime', TType.I64, 7)
+      oprot.writeI64(self.validUntilTime)
+      oprot.writeFieldEnd()
+    if self.storageResourceType is not None:
+      oprot.writeFieldBegin('storageResourceType', TType.I32, 8)
+      oprot.writeI32(self.storageResourceType)
+      oprot.writeFieldEnd()
+    if self.replicaPersistentType is not None:
+      oprot.writeFieldBegin('replicaPersistentType', TType.I32, 9)
+      oprot.writeI32(self.replicaPersistentType)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.replicaName)
+    value = (value * 31) ^ hash(self.replicaDescription)
+    value = (value * 31) ^ hash(self.storageHostname)
+    value = (value * 31) ^ hash(self.storageResourceId)
+    value = (value * 31) ^ hash(self.filePath)
+    value = (value * 31) ^ hash(self.creationTime)
+    value = (value * 31) ^ hash(self.validUntilTime)
+    value = (value * 31) ^ hash(self.storageResourceType)
+    value = (value * 31) ^ hash(self.replicaPersistentType)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+from ttypes import *
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/ttypes.py
new file mode 100644
index 0000000..ae35462
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/transfer/ttypes.py
@@ -0,0 +1,597 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+class StorageResourceProtocol:
+  SCP = 0
+  SFTP = 1
+  HTTP = 2
+  HTTPS = 3
+  GridFTP = 4
+  LOCAL = 5
+
+  _VALUES_TO_NAMES = {
+    0: "SCP",
+    1: "SFTP",
+    2: "HTTP",
+    3: "HTTPS",
+    4: "GridFTP",
+    5: "LOCAL",
+  }
+
+  _NAMES_TO_VALUES = {
+    "SCP": 0,
+    "SFTP": 1,
+    "HTTP": 2,
+    "HTTPS": 3,
+    "GridFTP": 4,
+    "LOCAL": 5,
+  }
+
+class LSEntryType:
+  DIRECTORY = 0
+  FILE = 1
+
+  _VALUES_TO_NAMES = {
+    0: "DIRECTORY",
+    1: "FILE",
+  }
+
+  _NAMES_TO_VALUES = {
+    "DIRECTORY": 0,
+    "FILE": 1,
+  }
+
+class FileTransferMode:
+  SYNC = 0
+  ASYNC = 1
+
+  _VALUES_TO_NAMES = {
+    0: "SYNC",
+    1: "ASYNC",
+  }
+
+  _NAMES_TO_VALUES = {
+    "SYNC": 0,
+    "ASYNC": 1,
+  }
+
+class FileTransferStatus:
+  CREATED = 0
+  QUEUED = 1
+  RUNNING = 2
+  COMPLETED = 3
+  FAILED = 4
+
+  _VALUES_TO_NAMES = {
+    0: "CREATED",
+    1: "QUEUED",
+    2: "RUNNING",
+    3: "COMPLETED",
+    4: "FAILED",
+  }
+
+  _NAMES_TO_VALUES = {
+    "CREATED": 0,
+    "QUEUED": 1,
+    "RUNNING": 2,
+    "COMPLETED": 3,
+    "FAILED": 4,
+  }
+
+
+class FileTransferRequestModel:
+  """
+  Attributes:
+   - transferId
+   - gatewayId
+   - username
+   - srcHostname
+   - srcLoginName
+   - srcPort
+   - srcProtocol
+   - srcFilePath
+   - srcHostCredToken
+   - destHostname
+   - destLoginName
+   - destPort
+   - destProtocol
+   - destFilePath
+   - destHostCredToken
+   - fileTransferMode
+   - transferStatus
+   - fileSize
+   - transferTime
+   - createdTime
+   - lastModifiedType
+   - callbackEmails
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'transferId', None, None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRING, 'username', None, None, ), # 3
+    (4, TType.STRING, 'srcHostname', None, None, ), # 4
+    (5, TType.STRING, 'srcLoginName', None, None, ), # 5
+    (6, TType.I64, 'srcPort', None, None, ), # 6
+    (7, TType.I32, 'srcProtocol', None, None, ), # 7
+    (8, TType.STRING, 'srcFilePath', None, None, ), # 8
+    (9, TType.STRING, 'srcHostCredToken', None, None, ), # 9
+    (10, TType.STRING, 'destHostname', None, None, ), # 10
+    (11, TType.STRING, 'destLoginName', None, None, ), # 11
+    (12, TType.I64, 'destPort', None, None, ), # 12
+    (13, TType.I32, 'destProtocol', None, None, ), # 13
+    (14, TType.STRING, 'destFilePath', None, None, ), # 14
+    (15, TType.STRING, 'destHostCredToken', None, None, ), # 15
+    (16, TType.I32, 'fileTransferMode', None, None, ), # 16
+    (17, TType.I32, 'transferStatus', None, None, ), # 17
+    (18, TType.I64, 'fileSize', None, None, ), # 18
+    (19, TType.I64, 'transferTime', None, None, ), # 19
+    (20, TType.I64, 'createdTime', None, None, ), # 20
+    (21, TType.I64, 'lastModifiedType', None, None, ), # 21
+    (22, TType.LIST, 'callbackEmails', (TType.STRING,None), None, ), # 22
+  )
+
+  def __init__(self, transferId=None, gatewayId=None, username=None, srcHostname=None, srcLoginName=None, srcPort=None, srcProtocol=None, srcFilePath=None, srcHostCredToken=None, destHostname=None, destLoginName=None, destPort=None, destProtocol=None, destFilePath=None, destHostCredToken=None, fileTransferMode=None, transferStatus=None, fileSize=None, transferTime=None, createdTime=None, lastModifiedType=None, callbackEmails=None,):
+    self.transferId = transferId
+    self.gatewayId = gatewayId
+    self.username = username
+    self.srcHostname = srcHostname
+    self.srcLoginName = srcLoginName
+    self.srcPort = srcPort
+    self.srcProtocol = srcProtocol
+    self.srcFilePath = srcFilePath
+    self.srcHostCredToken = srcHostCredToken
+    self.destHostname = destHostname
+    self.destLoginName = destLoginName
+    self.destPort = destPort
+    self.destProtocol = destProtocol
+    self.destFilePath = destFilePath
+    self.destHostCredToken = destHostCredToken
+    self.fileTransferMode = fileTransferMode
+    self.transferStatus = transferStatus
+    self.fileSize = fileSize
+    self.transferTime = transferTime
+    self.createdTime = createdTime
+    self.lastModifiedType = lastModifiedType
+    self.callbackEmails = callbackEmails
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.transferId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.username = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.srcHostname = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.STRING:
+          self.srcLoginName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.I64:
+          self.srcPort = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.I32:
+          self.srcProtocol = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.STRING:
+          self.srcFilePath = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.STRING:
+          self.srcHostCredToken = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 10:
+        if ftype == TType.STRING:
+          self.destHostname = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 11:
+        if ftype == TType.STRING:
+          self.destLoginName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 12:
+        if ftype == TType.I64:
+          self.destPort = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 13:
+        if ftype == TType.I32:
+          self.destProtocol = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 14:
+        if ftype == TType.STRING:
+          self.destFilePath = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 15:
+        if ftype == TType.STRING:
+          self.destHostCredToken = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 16:
+        if ftype == TType.I32:
+          self.fileTransferMode = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 17:
+        if ftype == TType.I32:
+          self.transferStatus = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 18:
+        if ftype == TType.I64:
+          self.fileSize = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 19:
+        if ftype == TType.I64:
+          self.transferTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 20:
+        if ftype == TType.I64:
+          self.createdTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 21:
+        if ftype == TType.I64:
+          self.lastModifiedType = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 22:
+        if ftype == TType.LIST:
+          self.callbackEmails = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = iprot.readString()
+            self.callbackEmails.append(_elem5)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('FileTransferRequestModel')
+    if self.transferId is not None:
+      oprot.writeFieldBegin('transferId', TType.STRING, 1)
+      oprot.writeString(self.transferId)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.username is not None:
+      oprot.writeFieldBegin('username', TType.STRING, 3)
+      oprot.writeString(self.username)
+      oprot.writeFieldEnd()
+    if self.srcHostname is not None:
+      oprot.writeFieldBegin('srcHostname', TType.STRING, 4)
+      oprot.writeString(self.srcHostname)
+      oprot.writeFieldEnd()
+    if self.srcLoginName is not None:
+      oprot.writeFieldBegin('srcLoginName', TType.STRING, 5)
+      oprot.writeString(self.srcLoginName)
+      oprot.writeFieldEnd()
+    if self.srcPort is not None:
+      oprot.writeFieldBegin('srcPort', TType.I64, 6)
+      oprot.writeI64(self.srcPort)
+      oprot.writeFieldEnd()
+    if self.srcProtocol is not None:
+      oprot.writeFieldBegin('srcProtocol', TType.I32, 7)
+      oprot.writeI32(self.srcProtocol)
+      oprot.writeFieldEnd()
+    if self.srcFilePath is not None:
+      oprot.writeFieldBegin('srcFilePath', TType.STRING, 8)
+      oprot.writeString(self.srcFilePath)
+      oprot.writeFieldEnd()
+    if self.srcHostCredToken is not None:
+      oprot.writeFieldBegin('srcHostCredToken', TType.STRING, 9)
+      oprot.writeString(self.srcHostCredToken)
+      oprot.writeFieldEnd()
+    if self.destHostname is not None:
+      oprot.writeFieldBegin('destHostname', TType.STRING, 10)
+      oprot.writeString(self.destHostname)
+      oprot.writeFieldEnd()
+    if self.destLoginName is not None:
+      oprot.writeFieldBegin('destLoginName', TType.STRING, 11)
+      oprot.writeString(self.destLoginName)
+      oprot.writeFieldEnd()
+    if self.destPort is not None:
+      oprot.writeFieldBegin('destPort', TType.I64, 12)
+      oprot.writeI64(self.destPort)
+      oprot.writeFieldEnd()
+    if self.destProtocol is not None:
+      oprot.writeFieldBegin('destProtocol', TType.I32, 13)
+      oprot.writeI32(self.destProtocol)
+      oprot.writeFieldEnd()
+    if self.destFilePath is not None:
+      oprot.writeFieldBegin('destFilePath', TType.STRING, 14)
+      oprot.writeString(self.destFilePath)
+      oprot.writeFieldEnd()
+    if self.destHostCredToken is not None:
+      oprot.writeFieldBegin('destHostCredToken', TType.STRING, 15)
+      oprot.writeString(self.destHostCredToken)
+      oprot.writeFieldEnd()
+    if self.fileTransferMode is not None:
+      oprot.writeFieldBegin('fileTransferMode', TType.I32, 16)
+      oprot.writeI32(self.fileTransferMode)
+      oprot.writeFieldEnd()
+    if self.transferStatus is not None:
+      oprot.writeFieldBegin('transferStatus', TType.I32, 17)
+      oprot.writeI32(self.transferStatus)
+      oprot.writeFieldEnd()
+    if self.fileSize is not None:
+      oprot.writeFieldBegin('fileSize', TType.I64, 18)
+      oprot.writeI64(self.fileSize)
+      oprot.writeFieldEnd()
+    if self.transferTime is not None:
+      oprot.writeFieldBegin('transferTime', TType.I64, 19)
+      oprot.writeI64(self.transferTime)
+      oprot.writeFieldEnd()
+    if self.createdTime is not None:
+      oprot.writeFieldBegin('createdTime', TType.I64, 20)
+      oprot.writeI64(self.createdTime)
+      oprot.writeFieldEnd()
+    if self.lastModifiedType is not None:
+      oprot.writeFieldBegin('lastModifiedType', TType.I64, 21)
+      oprot.writeI64(self.lastModifiedType)
+      oprot.writeFieldEnd()
+    if self.callbackEmails is not None:
+      oprot.writeFieldBegin('callbackEmails', TType.LIST, 22)
+      oprot.writeListBegin(TType.STRING, len(self.callbackEmails))
+      for iter6 in self.callbackEmails:
+        oprot.writeString(iter6)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.transferId)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.username)
+    value = (value * 31) ^ hash(self.srcHostname)
+    value = (value * 31) ^ hash(self.srcLoginName)
+    value = (value * 31) ^ hash(self.srcPort)
+    value = (value * 31) ^ hash(self.srcProtocol)
+    value = (value * 31) ^ hash(self.srcFilePath)
+    value = (value * 31) ^ hash(self.srcHostCredToken)
+    value = (value * 31) ^ hash(self.destHostname)
+    value = (value * 31) ^ hash(self.destLoginName)
+    value = (value * 31) ^ hash(self.destPort)
+    value = (value * 31) ^ hash(self.destProtocol)
+    value = (value * 31) ^ hash(self.destFilePath)
+    value = (value * 31) ^ hash(self.destHostCredToken)
+    value = (value * 31) ^ hash(self.fileTransferMode)
+    value = (value * 31) ^ hash(self.transferStatus)
+    value = (value * 31) ^ hash(self.fileSize)
+    value = (value * 31) ^ hash(self.transferTime)
+    value = (value * 31) ^ hash(self.createdTime)
+    value = (value * 31) ^ hash(self.lastModifiedType)
+    value = (value * 31) ^ hash(self.callbackEmails)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class LSEntryModel:
+  """
+  Attributes:
+   - type
+   - size
+   - nativeType
+   - name
+   - path
+   - storageHostName
+   - lastModifiedType
+   - createdTime
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.I32, 'type', None, None, ), # 1
+    (2, TType.I64, 'size', None, None, ), # 2
+    (3, TType.STRING, 'nativeType', None, None, ), # 3
+    (4, TType.STRING, 'name', None, None, ), # 4
+    (5, TType.STRING, 'path', None, None, ), # 5
+    (6, TType.STRING, 'storageHostName', None, None, ), # 6
+    (7, TType.I64, 'lastModifiedType', None, None, ), # 7
+    (8, TType.I64, 'createdTime', None, None, ), # 8
+  )
+
+  def __init__(self, type=None, size=None, nativeType=None, name=None, path=None, storageHostName=None, lastModifiedType=None, createdTime=None,):
+    self.type = type
+    self.size = size
+    self.nativeType = nativeType
+    self.name = name
+    self.path = path
+    self.storageHostName = storageHostName
+    self.lastModifiedType = lastModifiedType
+    self.createdTime = createdTime
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.I32:
+          self.type = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.I64:
+          self.size = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.nativeType = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.name = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.STRING:
+          self.path = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.STRING:
+          self.storageHostName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.I64:
+          self.lastModifiedType = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.I64:
+          self.createdTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('LSEntryModel')
+    if self.type is not None:
+      oprot.writeFieldBegin('type', TType.I32, 1)
+      oprot.writeI32(self.type)
+      oprot.writeFieldEnd()
+    if self.size is not None:
+      oprot.writeFieldBegin('size', TType.I64, 2)
+      oprot.writeI64(self.size)
+      oprot.writeFieldEnd()
+    if self.nativeType is not None:
+      oprot.writeFieldBegin('nativeType', TType.STRING, 3)
+      oprot.writeString(self.nativeType)
+      oprot.writeFieldEnd()
+    if self.name is not None:
+      oprot.writeFieldBegin('name', TType.STRING, 4)
+      oprot.writeString(self.name)
+      oprot.writeFieldEnd()
+    if self.path is not None:
+      oprot.writeFieldBegin('path', TType.STRING, 5)
+      oprot.writeString(self.path)
+      oprot.writeFieldEnd()
+    if self.storageHostName is not None:
+      oprot.writeFieldBegin('storageHostName', TType.STRING, 6)
+      oprot.writeString(self.storageHostName)
+      oprot.writeFieldEnd()
+    if self.lastModifiedType is not None:
+      oprot.writeFieldBegin('lastModifiedType', TType.I64, 7)
+      oprot.writeI64(self.lastModifiedType)
+      oprot.writeFieldEnd()
+    if self.createdTime is not None:
+      oprot.writeFieldBegin('createdTime', TType.I64, 8)
+      oprot.writeI64(self.createdTime)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.type)
+    value = (value * 31) ^ hash(self.size)
+    value = (value * 31) ^ hash(self.nativeType)
+    value = (value * 31) ^ hash(self.name)
+    value = (value * 31) ^ hash(self.path)
+    value = (value * 31) ^ hash(self.storageHostName)
+    value = (value * 31) ^ hash(self.lastModifiedType)
+    value = (value * 31) ^ hash(self.createdTime)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)


[05/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPApiException.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPApiException.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPApiException.java
new file mode 100644
index 0000000..884b543
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPApiException.java
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.scp;
+
+public class SCPApiException extends Exception {
+
+    public SCPApiException(String message) {
+        super(message);
+    }
+
+    public SCPApiException(String message, Exception e) {
+        super(message, e);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPStorageClient.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPStorageClient.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPStorageClient.java
new file mode 100644
index 0000000..db85c28
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPStorageClient.java
@@ -0,0 +1,405 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.scp;
+
+import com.jcraft.jsch.*;
+import org.apache.airavata.data.manager.core.remote.client.RemoteStorageClient;
+import org.apache.airavata.model.data.transfer.LSEntryModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.*;
+import java.util.List;
+import java.util.Properties;
+import java.util.UUID;
+
+public class SCPStorageClient implements RemoteStorageClient {
+    private final static Logger logger = LoggerFactory.getLogger(SCPStorageClient.class);
+
+    private JSch jSch;
+    private Session session;
+
+    /**
+     * Constructor
+     * @param hostName
+     * @param port
+     * @param loginUsername
+     * @param password
+     * @throws JSchException
+     */
+    public SCPStorageClient(String hostName, int port, String loginUsername, String password) throws JSchException {
+        Properties config = new java.util.Properties();
+        config.put("StrictHostKeyChecking", "no");
+        jSch = new JSch();
+        jSch.addIdentity(loginUsername, password);
+        session = jSch.getSession(loginUsername, hostName, port);
+        session.setConfig(config);
+        session.connect();
+    }
+
+    /**
+     * Constructor
+     * @param hostName
+     * @param port
+     * @param loginUsername
+     * @param privateKey
+     * @param publicKey
+     * @param passPhrase
+     * @throws JSchException
+     */
+    public SCPStorageClient(String hostName, int port, String loginUsername, byte[] privateKey, byte[] publicKey,
+                            byte[] passPhrase) throws JSchException {
+        Properties config = new java.util.Properties();
+        config.put("StrictHostKeyChecking", "no");
+        jSch = new JSch();
+        jSch.addIdentity(UUID.randomUUID().toString(), privateKey, publicKey, passPhrase);
+        session = jSch.getSession(loginUsername, hostName, port);
+        session.setConfig(config);
+        session.connect();
+    }
+
+
+    /**
+     * Reads a remote file, write it to local temporary directory and returns a File
+     *
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public File readFile(String filePath) throws Exception {
+        if (!session.isConnected())
+            session.connect();
+
+        FileOutputStream fos;
+        String localFile = System.getProperty("java.io.tmpdir") + File.separator + UUID.randomUUID().toString();
+        String prefix = null;
+        if (new File(localFile).isDirectory()) {
+            prefix = localFile + File.separator;
+        }
+
+        // exec 'scp -f remotefile' remotely
+        String command = "scp -f " + filePath;
+        Channel channel = session.openChannel("exec");
+        ((ChannelExec) channel).setCommand(command);
+
+        StandardOutReader stdOutReader = new StandardOutReader();
+        ((ChannelExec) channel).setErrStream(stdOutReader.getStandardError());
+        // get I/O streams for remote scp
+        OutputStream out = channel.getOutputStream();
+        InputStream in = channel.getInputStream();
+
+        if (!channel.isClosed()) {
+            channel.connect();
+        }
+
+        byte[] buf = new byte[1024];
+
+        // send '\0'
+        buf[0] = 0;
+        out.write(buf, 0, 1);
+        out.flush();
+
+        while (true) {
+            int c = checkAck(in);
+            if (c != 'C') {
+                break;
+            }
+
+            // read '0644 '
+            in.read(buf, 0, 5);
+
+            long filesize = 0L;
+            while (true) {
+                if (in.read(buf, 0, 1) < 0) {
+                    // error
+                    break;
+                }
+                if (buf[0] == ' ') break;
+                filesize = filesize * 10L + (long) (buf[0] - '0');
+            }
+
+            String file = null;
+            for (int i = 0; ; i++) {
+                in.read(buf, i, 1);
+                if (buf[i] == (byte) 0x0a) {
+                    file = new String(buf, 0, i);
+                    break;
+                }
+            }
+
+            // send '\0'
+            buf[0] = 0;
+            out.write(buf, 0, 1);
+            out.flush();
+
+            // read a content of lfile
+            localFile = prefix == null ? localFile : prefix + file;
+            fos = new FileOutputStream(localFile);
+            int foo;
+            while (true) {
+                if (buf.length < filesize) foo = buf.length;
+                else foo = (int) filesize;
+                foo = in.read(buf, 0, foo);
+                if (foo < 0) {
+                    // error
+                    break;
+                }
+                fos.write(buf, 0, foo);
+                filesize -= foo;
+                if (filesize == 0L) break;
+            }
+            fos.close();
+            fos = null;
+
+            if (checkAck(in) != 0) {
+                String error = "Error transferring the file content";
+                logger.error(error);
+                throw new SCPApiException(error);
+            }
+
+            // send '\0'
+            buf[0] = 0;
+            out.write(buf, 0, 1);
+            out.flush();
+        }
+        stdOutReader.onOutput(channel);
+        if (stdOutReader.getStdErrorString().contains("scp:")) {
+            throw new SCPApiException(stdOutReader.getStdErrorString());
+        }
+
+        return new File(localFile);
+    }
+
+    /**
+     * Writes the source file in the local storage to specified path in the remote storage
+     *
+     * @param sourceFile
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public void writeFile(File sourceFile, String filePath) throws Exception {
+        if (!session.isConnected())
+            session.connect();
+
+        FileInputStream fis;
+        String localFile = sourceFile.getAbsolutePath();
+        boolean ptimestamp = true;
+
+        // exec 'scp -t rfile' remotely
+        String command = "scp " + (ptimestamp ? "-p" : "") + " -t " + filePath;
+        Channel channel = session.openChannel("exec");
+
+        StandardOutReader stdOutReader = new StandardOutReader();
+        ((ChannelExec) channel).setErrStream(stdOutReader.getStandardError());
+        ((ChannelExec) channel).setCommand(command);
+
+        // get I/O streams for remote scp
+        OutputStream out = channel.getOutputStream();
+        InputStream in = channel.getInputStream();
+
+        channel.connect();
+
+        if (checkAck(in) != 0) {
+            String error = "Error Reading input Stream";
+            logger.error(error);
+            throw new SCPApiException(error);
+        }
+
+        File _lfile = new File(localFile);
+
+        if (ptimestamp) {
+            command = "T" + (_lfile.lastModified() / 1000) + " 0";
+            // The access time should be sent here,
+            // but it is not accessible with JavaAPI ;-<
+            command += (" " + (_lfile.lastModified() / 1000) + " 0\n");
+            out.write(command.getBytes());
+            out.flush();
+            if (checkAck(in) != 0) {
+                String error = "Error Reading input Stream";
+                logger.error(error);
+                throw new SCPApiException(error);
+            }
+        }
+
+        // send "C0644 filesize filename", where filename should not include '/'
+        long filesize = _lfile.length();
+        command = "C0644 " + filesize + " ";
+        if (localFile.lastIndexOf('/') > 0) {
+            command += localFile.substring(localFile.lastIndexOf('/') + 1);
+        } else {
+            command += localFile;
+        }
+        command += "\n";
+        out.write(command.getBytes());
+        out.flush();
+        if (checkAck(in) != 0) {
+            String error = "Error Reading input Stream";
+            logger.error(error);
+            throw new SCPApiException(error);
+        }
+
+        // send a content of localFile
+        fis = new FileInputStream(localFile);
+        byte[] buf = new byte[1024];
+        while (true) {
+            int len = fis.read(buf, 0, buf.length);
+            if (len <= 0) break;
+            out.write(buf, 0, len); //out.flush();
+        }
+        fis.close();
+        fis = null;
+        // send '\0'
+        buf[0] = 0;
+        out.write(buf, 0, 1);
+        out.flush();
+        if (checkAck(in) != 0) {
+            String error = "Error Reading input Stream";
+            logger.error(error);
+            throw new SCPApiException(error);
+        }
+        out.close();
+        stdOutReader.onOutput(channel);
+
+
+        channel.disconnect();
+        if (stdOutReader.getStdErrorString().contains("scp:")) {
+            throw new SCPApiException(stdOutReader.getStdErrorString());
+        }
+    }
+
+    /**
+     * Returns a directory listing of the specified directory
+     *
+     * @param directoryPath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<LSEntryModel> getDirectoryListing(String directoryPath) throws Exception {
+        return null;
+    }
+
+    /**
+     * Move the specified file from source to destination within the same storage resource
+     *
+     * @param currentPath
+     * @param newPath
+     * @throws Exception
+     */
+    @Override
+    public void moveFile(String currentPath, String newPath) throws Exception {
+
+    }
+
+    /**
+     * @param sourcePath
+     * @param destinationPath
+     * @throws Exception
+     */
+    @Override
+    public void copyFile(String sourcePath, String destinationPath) throws Exception {
+
+    }
+
+    /**
+     * Rename file with the given name
+     *
+     * @param filePath
+     * @param newFileName
+     * @throws Exception
+     */
+    @Override
+    public void renameFile(String filePath, String newFileName) throws Exception {
+
+    }
+
+    /**
+     * Delete the specified file
+     *
+     * @param filePath
+     * @throws Exception
+     */
+    @Override
+    public void deleteFile(String filePath) throws Exception {
+
+    }
+
+    /**
+     * Create new directory in the specified file
+     *
+     * @param newDirPath
+     * @throws Exception
+     */
+    @Override
+    public void mkdir(String newDirPath) throws Exception {
+
+    }
+
+    /**
+     * Checks whether specified file exists in the remote storage system
+     *
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public boolean checkFileExists(String filePath) throws Exception {
+        return false;
+    }
+
+    /**
+     * Checks whether the given path is a directory
+     *
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public boolean checkIsDirectory(String filePath) throws Exception {
+        return false;
+    }
+
+    private int checkAck(InputStream in) throws IOException {
+        int b = in.read();
+        if (b == 0) return b;
+        if (b == -1) return b;
+
+        if (b == 1 || b == 2) {
+            StringBuffer sb = new StringBuffer();
+            int c;
+            do {
+                c = in.read();
+                sb.append((char) c);
+            }
+            while (c != '\n');
+            if (b == 1) { // error
+                System.out.print(sb.toString());
+            }
+            if (b == 2) { // fatal error
+                System.out.print(sb.toString());
+            }
+        }
+        return b;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/StandardOutReader.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/StandardOutReader.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/StandardOutReader.java
new file mode 100644
index 0000000..f7c7d43
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/StandardOutReader.java
@@ -0,0 +1,86 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.scp;
+
+import com.jcraft.jsch.Channel;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public class StandardOutReader implements CommandOutput {
+
+    private static final Logger logger = LoggerFactory.getLogger(StandardOutReader.class);
+    String stdOutputString = null;
+    ByteArrayOutputStream errorStream = new ByteArrayOutputStream();
+    private int exitCode;
+
+    public void onOutput(Channel channel) {
+        try {
+            StringBuffer pbsOutput = new StringBuffer("");
+            InputStream inputStream =  channel.getInputStream();
+            byte[] tmp = new byte[1024];
+            do {
+                while (inputStream.available() > 0) {
+                    int i = inputStream.read(tmp, 0, 1024);
+                    if (i < 0) break;
+                    pbsOutput.append(new String(tmp, 0, i));
+                }
+            } while (!channel.isClosed()) ;
+            String output = pbsOutput.toString();
+            this.setStdOutputString(output);
+        } catch (IOException e) {
+            logger.error(e.getMessage(), e);
+        }
+
+    }
+
+
+    public void exitCode(int code) {
+        System.out.println("Program exit code - " + code);
+        this.exitCode = code;
+    }
+
+    @Override
+    public int getExitCode() {
+        return exitCode;
+    }
+
+    public String getStdOutputString() {
+        return stdOutputString;
+    }
+
+    public void setStdOutputString(String stdOutputString) {
+        this.stdOutputString = stdOutputString;
+    }
+
+    public String getStdErrorString() {
+        return errorStream.toString();
+    }
+
+    public OutputStream getStandardError() {
+        return errorStream;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/sftp/SFTPStorageClient.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/sftp/SFTPStorageClient.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/sftp/SFTPStorageClient.java
new file mode 100644
index 0000000..c802498
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/sftp/SFTPStorageClient.java
@@ -0,0 +1,209 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.sftp;
+
+import com.jcraft.jsch.ChannelSftp;
+import com.jcraft.jsch.JSch;
+import com.jcraft.jsch.JSchException;
+import com.jcraft.jsch.Session;
+import org.apache.airavata.data.manager.core.remote.client.RemoteStorageClient;
+import org.apache.airavata.model.data.transfer.LSEntryModel;
+import org.apache.airavata.model.data.transfer.LSEntryType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.*;
+
+public class SFTPStorageClient implements RemoteStorageClient {
+    private final static Logger logger = LoggerFactory.getLogger(SFTPStorageClient.class);
+
+    private JSch jSch;
+    private Session session;
+    private ChannelSftp sftpChannel;
+    private final String hostName;
+
+    public SFTPStorageClient(String hostName, int port, String loginUsername, String password) throws JSchException {
+        this.hostName = hostName;
+        Properties config = new java.util.Properties();
+        config.put("StrictHostKeyChecking", "no");
+        jSch = new JSch();
+        jSch.addIdentity(loginUsername, password);
+        session = jSch.getSession(loginUsername, hostName, port);
+        session.setConfig(config);
+        session.connect();
+        sftpChannel = (ChannelSftp) session.openChannel("sftp");
+    }
+
+    public SFTPStorageClient(String hostName, int port, String loginUsername, byte[] privateKey, byte[] publicKey,
+                            byte[] passPhrase) throws JSchException {
+        this.hostName = hostName;
+        Properties config = new java.util.Properties();
+        config.put("StrictHostKeyChecking", "no");
+        jSch = new JSch();
+        jSch.addIdentity(UUID.randomUUID().toString(), privateKey, publicKey, passPhrase);
+        session = jSch.getSession(loginUsername, hostName, port);
+        session.setConfig(config);
+        session.connect();
+        sftpChannel = (ChannelSftp) session.openChannel("sftp");
+    }
+
+    /**
+     * Reads a remote file, write it to local temporary directory and returns a file pointer to it
+     *
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public File readFile(String filePath) throws Exception {
+        String localFile = System.getProperty("java.io.tmpdir") + File.separator + UUID.randomUUID().toString();
+        return null;
+    }
+
+    /**
+     * Writes the source file in the local storage to specified path in the remote storage
+     *
+     * @param sourceFile
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public void writeFile(File sourceFile, String filePath) throws Exception {
+
+    }
+
+    /**
+     * Returns a directory listing of the specified directory
+     *
+     * @param directoryPath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<LSEntryModel> getDirectoryListing(String directoryPath) throws Exception {
+        if(directoryPath.endsWith(File.separator)){
+            directoryPath = directoryPath.substring(0, directoryPath.length() -1);
+        }
+        final String finalDirPath =  directoryPath;
+        //channel may get timeout
+        if(sftpChannel.isClosed()){
+            sftpChannel.connect();
+        }
+        sftpChannel.cd(directoryPath);
+        Vector<ChannelSftp.LsEntry> lsEntryVector = sftpChannel.ls(directoryPath);
+        ArrayList<LSEntryModel> fileNodeList = new ArrayList<>();
+        lsEntryVector.stream().forEach(lsEntry -> {
+            LSEntryModel fileNode = new LSEntryModel();
+            fileNode.setName(lsEntry.getFilename());
+            fileNode.setPath(finalDirPath + File.separator + lsEntry.getFilename());
+            fileNode.setStorageHostName(hostName);
+            fileNode.setSize(lsEntry.getAttrs().getSize());
+            if(lsEntry.getAttrs().isDir())
+                fileNode.setType(LSEntryType.DIRECTORY);
+            else
+                fileNode.setType(LSEntryType.FILE);
+            fileNodeList.add(fileNode);
+        });
+        return fileNodeList;
+    }
+
+    /**
+     * Move the specified file from source to destination within the same storage resource
+     *
+     * @param currentPath
+     * @param newPath
+     * @throws Exception
+     */
+    @Override
+    public void moveFile(String currentPath, String newPath) throws Exception {
+
+    }
+
+    /**
+     * @param sourcePath
+     * @param destinationPath
+     * @throws Exception
+     */
+    @Override
+    public void copyFile(String sourcePath, String destinationPath) throws Exception {
+
+    }
+
+    /**
+     * Rename file with the given name
+     *
+     * @param filePath
+     * @param newFileName
+     * @throws Exception
+     */
+    @Override
+    public void renameFile(String filePath, String newFileName) throws Exception {
+
+    }
+
+    /**
+     * Delete the specified file
+     *
+     * @param filePath
+     * @throws Exception
+     */
+    @Override
+    public void deleteFile(String filePath) throws Exception {
+
+    }
+
+    /**
+     * Create new directory in the specified file
+     *
+     * @param newDirPath
+     * @throws Exception
+     */
+    @Override
+    public void mkdir(String newDirPath) throws Exception {
+
+    }
+
+    /**
+     * Checks whether specified file exists in the remote storage system
+     *
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public boolean checkFileExists(String filePath) throws Exception {
+        return false;
+    }
+
+    /**
+     * Checks whether the given path is a directory
+     *
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public boolean checkIsDirectory(String filePath) throws Exception {
+        return false;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/utils/FileManagerConstants.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/utils/FileManagerConstants.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/utils/FileManagerConstants.java
new file mode 100644
index 0000000..a182037
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/utils/FileManagerConstants.java
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FileManagerConstants {
+    private final static Logger logger = LoggerFactory.getLogger(FileManagerConstants.class);
+
+    public static String MONGODB_HOST = "mongodb.host";
+    public static String MONGODB_PORT = "mongodb.port";
+    public static String MONGODB_DB_NAME = "mongodb.db.name";
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/utils/FileManagerProperties.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/utils/FileManagerProperties.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/utils/FileManagerProperties.java
new file mode 100644
index 0000000..1e5e45b
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/utils/FileManagerProperties.java
@@ -0,0 +1,55 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.Properties;
+
+public class FileManagerProperties {
+    private final static Logger logger = LoggerFactory.getLogger(FileManagerProperties.class);
+
+    private static FileManagerProperties instance;
+
+    private Properties properties;
+
+    private FileManagerProperties() throws IOException {
+        properties = new Properties();
+        properties.load(FileManagerProperties.class.getClassLoader().getResourceAsStream("file-manager.properties"));
+    }
+
+    public static FileManagerProperties getInstance() throws IOException {
+        if(instance == null){
+            instance = new FileManagerProperties();
+        }
+        return instance;
+    }
+
+    public String getProperty(String field, String defaultVal){
+        String returnVal = properties.getProperty(field);
+        if(returnVal == null)
+            return defaultVal;
+        else
+            return returnVal;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/resources/file-manager.properties
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/resources/file-manager.properties b/modules/data-manager/data-manager-core/src/main/resources/file-manager.properties
new file mode 100644
index 0000000..ad4157e
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/resources/file-manager.properties
@@ -0,0 +1,24 @@
+#
+#
+# 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.
+#
+
+
+mongodb.host=localhost
+mongodb.port=27017
+mongodb.db.name=file-manager-db
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/resources/gridftp-client.properties
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/resources/gridftp-client.properties b/modules/data-manager/data-manager-core/src/main/resources/gridftp-client.properties
new file mode 100644
index 0000000..7d8a757
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/resources/gridftp-client.properties
@@ -0,0 +1,30 @@
+trustedCertsFile=/Users/supun/Work/airavata-sandbox/grid-tools/certificates/
+myproxyServer=myproxy.teragrid.org
+myproxy_lifetime=17280000
+myproxyUserName=
+myproxyPasswd=
+myproxyPort=7512
+
+
+testing.host=trestles
+#testing.host=stampede
+#testing.host=lonestar
+
+## TACC Lonestar
+lonestar.gridftp.endpoint=gsiftp://gridftp1.ls4.tacc.utexas.edu:2811/
+
+## TACC Stampede
+stampede.gridftp.endpoint=gsiftp://gridftp.stampede.tacc.utexas.edu:2811/
+
+## SDSC Trestles
+trestles.gridftp.endpoint=gsiftp://trestles.sdsc.edu:2811/
+
+gridftpserverSource=gsiftp://trestles-dm.sdsc.xsede.org:2811/
+gridftpSourcePath=/oasis/projects/nsf/sds128/ogce/file-transfer-tests/source/sample_wrfout.netcdf
+gridftpUploadingFilePath = /oasis/projects/nsf/sds128/ogce/file-transfer-tests/source/dummy1
+
+#gridftpserverDest=gsiftp://trestles-dm.sdsc.xsede.org:2811/
+#gridftpDestPath=/oasis/projects/nsf/sds128/ogce/file-transfer-tests/gf
+
+gridftpserverDest=gsiftp://gridftp.stampede.tacc.utexas.edu:2811/
+gridftpDestPath=/scratch/01437/ogce/file-transfer-tests/dest/xx
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/db/dao/FileTransferRequestDaoTest.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/db/dao/FileTransferRequestDaoTest.java b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/db/dao/FileTransferRequestDaoTest.java
new file mode 100644
index 0000000..327a603
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/db/dao/FileTransferRequestDaoTest.java
@@ -0,0 +1,45 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.dao;
+
+import org.apache.airavata.model.data.transfer.FileTransferRequestModel;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+@Ignore
+public class FileTransferRequestDaoTest {
+    private final static Logger logger = LoggerFactory.getLogger(FileTransferRequestDaoTest.class);
+
+    @Test
+    public void testFileTransferRequestDao() throws IOException {
+        FileTransferRequestModel fileTransferRequestModel = new FileTransferRequestModel();
+        fileTransferRequestModel.setSrcHostCredToken("djkalbsbdaslfbalsfbslf");
+        fileTransferRequestModel.setSrcFilePath("test-file-path");
+        FileTransferRequestDao fileTransferRequestDao = new FileTransferRequestDao();
+        String transferId = fileTransferRequestDao.createFileTransferRequest(fileTransferRequestModel);
+        fileTransferRequestModel = fileTransferRequestDao.getFileTransferRequest(transferId);
+        System.out.println("Transfer Id:" + fileTransferRequestModel.getTransferId());
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/gridftp/CertFileReadTest.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/gridftp/CertFileReadTest.java b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/gridftp/CertFileReadTest.java
new file mode 100644
index 0000000..26931aa
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/gridftp/CertFileReadTest.java
@@ -0,0 +1,126 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.gridftp;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.globus.gsi.SigningPolicy;
+import org.globus.gsi.SigningPolicyParser;
+import org.globus.gsi.util.CertificateIOUtil;
+import org.globus.util.GlobusResource;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import javax.security.auth.x500.X500Principal;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.security.MessageDigest;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import java.util.Map;
+
+
+@Ignore("This test case used to debug JGlobus-102. No need to run this test with other gridftp tests.")
+public class CertFileReadTest extends TestCase {
+
+    private static MessageDigest md5;
+
+    private static String CERT_FILE_LOCATION = "/Users/supun/Work/airavata-sandbox/grid-tools/certificates/";
+
+    @Test
+    public void testCertFileRead() throws Exception {
+
+        String path1 = CERT_FILE_LOCATION + "ffc3d59b";
+        String path2 = CERT_FILE_LOCATION + "e5cc84c2";
+
+
+        GlobusResource globusResource1 = new GlobusResource(path1 + ".signing_policy");
+        GlobusResource globusResource2 = new GlobusResource(path2 + ".signing_policy");
+
+        // ===== Testing globusResource1 - This should pass (cos no DC components) ================ //
+        X509Certificate crt1 = readCertificate(path1 + ".0");
+        X500Principal policySubjectCert1 = getPrincipal(globusResource1);
+
+        String certHash1 = CertificateIOUtil.nameHash(crt1.getSubjectX500Principal());
+        String principalHash1 = CertificateIOUtil.nameHash(policySubjectCert1);
+
+        System.out.println("======== Printing hashes for 1 ================");
+        System.out.println(certHash1);
+        System.out.println(principalHash1);
+
+        Assert.assertEquals("Certificate hash value does not match with the hash value generated using principal name.",
+                certHash1, principalHash1);
+
+        // ===== Testing globusResource1 - This should fail (cos we have DC components) ================ //
+        X509Certificate crt2 = readCertificate(path2 + ".0");
+        X500Principal policySubjectCert2 = getPrincipal(globusResource2);
+
+        String certHash2 = CertificateIOUtil.nameHash(crt2.getSubjectX500Principal());
+        String principalHash2 = CertificateIOUtil.nameHash(policySubjectCert2);
+
+        System.out.println("======== Printing hashes for 2 ================");
+        System.out.println(certHash2);
+        System.out.println(principalHash2);
+
+        Assert.assertEquals("Certificate hash value does not match with the hash value generated using principal name.",
+                certHash2, principalHash2);
+    }
+
+    private X500Principal getPrincipal(GlobusResource globusResource) throws Exception{
+
+        SigningPolicyParser parser = new SigningPolicyParser();
+
+        Reader reader = new InputStreamReader(globusResource.getInputStream());
+
+        Map<X500Principal, SigningPolicy> policies = parser.parse(reader);
+
+        return policies.keySet().iterator().next();
+
+    }
+
+    private X509Certificate readCertificate(String certPath) {
+        try {
+            FileInputStream fr = new FileInputStream(certPath);
+            CertificateFactory cf =
+                    CertificateFactory.getInstance("X509");
+            X509Certificate crt = (X509Certificate)
+                    cf.generateCertificate(fr);
+            System.out.println("Read certificate:");
+            System.out.println("\tCertificate for: " +
+                    crt.getSubjectDN());
+            System.out.println("\tCertificate issued by: " +
+                    crt.getIssuerDN());
+            System.out.println("\tCertificate is valid from " +
+                    crt.getNotBefore() + " to " + crt.getNotAfter());
+            System.out.println("\tCertificate SN# " +
+                    crt.getSerialNumber());
+            System.out.println("\tGenerated with " +
+                    crt.getSigAlgName());
+
+            return crt;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/gridftp/FileTransferTest.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/gridftp/FileTransferTest.java b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/gridftp/FileTransferTest.java
new file mode 100644
index 0000000..ff482c4
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/gridftp/FileTransferTest.java
@@ -0,0 +1,168 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.gridftp;
+
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.airavata.data.manager.core.remote.client.gridftp.myproxy.SecurityContext;
+import org.apache.log4j.BasicConfigurator;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.ietf.jgss.GSSCredential;
+import org.junit.Ignore;
+
+import java.io.*;
+import java.net.URI;
+
+
+@Ignore
+public class FileTransferTest extends TestCase {
+
+    private GSSCredential gssCredential;
+
+    private ExecutionContext executionContext;
+
+    private static final Logger log = Logger.getLogger(FileTransferTest.class);
+
+
+    public void setUp() throws Exception {
+
+        String userName = System.getProperty("myproxy.user");
+        String password = System.getProperty("myproxy.password");
+
+        SecurityContext context = null;
+
+        if (userName == null || password == null || userName.trim().equals("") || password.trim().equals("")) {
+            log.error("myproxy.user and myproxy.password system properties are not set. Example :- " +
+                    "> mvn clean install -Dmyproxy.user=u1 -Dmyproxy.password=xxx");
+
+            Assert.fail("Please set myproxy.user and myproxy.password system properties.");
+
+        } else {
+            context = new SecurityContext(userName, password);
+        }
+
+        log.info("Using my proxy user name - " + userName);
+
+        BasicConfigurator.configure();
+        Logger logger = Logger.getLogger("GridFTPClient");
+        Level lev = Level.toLevel("DEBUG");
+        logger.setLevel(lev);
+
+
+        context.login();
+        executionContext = new ExecutionContext();
+
+
+        String targeterp = executionContext.getGridFTPServerDestination();
+        String remoteDestFile = executionContext.getDestinationDataLocation();
+
+        URI dirLocation = GridFTP.createGsiftpURI(targeterp,
+                remoteDestFile.substring(0, remoteDestFile.lastIndexOf("/")));
+        gssCredential = context.getGssCredential();
+        System.out.println(dirLocation);
+
+    }
+
+    public void testMakeDir() throws Exception {
+
+        String targetErp = executionContext.getGridFTPServerDestination();
+        String remoteDestinationFile = executionContext.getDestinationDataLocation();
+
+        URI dirLocation = GridFTP.createGsiftpURI(targetErp,
+                remoteDestinationFile.substring(0, remoteDestinationFile.lastIndexOf("/")));
+
+        GridFTP ftp = new GridFTP();
+        ftp.makeDir(dirLocation, gssCredential);
+
+        Assert.assertTrue(ftp.exists(dirLocation, gssCredential));
+
+    }
+
+    public void testTransferData() throws Exception {
+
+        String sourceERP = executionContext.getGridFTPServerSource();
+        String remoteSrcFile = executionContext.getSourceDataLocation();
+
+        String targetErp = executionContext.getGridFTPServerDestination();
+        String remoteDestinationFile = executionContext.getDestinationDataLocation();
+
+        URI srcURI = GridFTP.createGsiftpURI(sourceERP, remoteSrcFile);
+        URI destURI = GridFTP.createGsiftpURI(targetErp, remoteDestinationFile);
+
+        GridFTP ftp = new GridFTP();
+        ftp.transfer(srcURI, destURI, gssCredential, true);
+
+        Assert.assertTrue(ftp.exists(destURI, gssCredential));
+
+    }
+
+    public void testDownloadFile() throws Exception {
+
+        String fileName = "./downloaded";
+
+        File deleteFile = new File(fileName);
+
+        if (deleteFile.exists()) {
+            if (!deleteFile.delete())
+                throw new RuntimeException("Unable to delete file " + fileName);
+        }
+
+        File f = new File(fileName);
+
+        GridFTP ftp = new GridFTP();
+        ftp.downloadFile(executionContext.getSourceDataFileUri(),
+                gssCredential, f);
+
+        Assert.assertTrue(f.exists());
+
+    }
+
+    public void testFileExists() throws Exception {
+
+        GridFTP ftp = new GridFTP();
+        Assert.assertTrue(ftp.exists(executionContext.getSourceDataFileUri(), gssCredential));
+    }
+
+    public void testUpdateFile() throws Exception {
+
+        String currentDir = System.getProperty("projectDirectory");
+
+        if (currentDir == null)
+            currentDir = "src/test/resources";
+        else
+            currentDir = currentDir + "/src/test/resources";
+
+        String file = currentDir + "/dummy";
+
+        System.out.println("File to upload is " + file);
+
+        File fileToUpload = new File(file);
+
+        Assert.assertTrue(fileToUpload.canRead());
+
+        GridFTP ftp = new GridFTP();
+        ftp.updateFile(executionContext.getUploadingFilePathUri(), gssCredential, fileToUpload);
+
+        Assert.assertTrue(ftp.exists(executionContext.getUploadingFilePathUri(), gssCredential));
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/http/HTTPStorageClientTest.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/http/HTTPStorageClientTest.java b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/http/HTTPStorageClientTest.java
new file mode 100644
index 0000000..9190a93
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/http/HTTPStorageClientTest.java
@@ -0,0 +1,45 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.http;
+
+import junit.framework.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+
+public class HTTPStorageClientTest {
+    private final static Logger logger = LoggerFactory.getLogger(HTTPStorageClientTest.class);
+
+    @Test
+    public void testHTTPStorageClient(){
+        try {
+            HTTPStorageClient httpStorageClient = new HTTPStorageClient(HTTPStorageClient.Protocol.HTTPS,
+                    "www.google.lk", 443);
+            File file = httpStorageClient.readFile("/");
+            Assert.assertTrue(file.exists());
+        } catch (Exception e) {
+            e.printStackTrace();
+            Assert.fail();
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPStorageClientTest.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPStorageClientTest.java b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPStorageClientTest.java
new file mode 100644
index 0000000..b5773e2
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/test/java/org/apache/airavata/data/manager/core/remote/client/scp/SCPStorageClientTest.java
@@ -0,0 +1,55 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.scp;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileInputStream;
+
+@Ignore
+public class SCPStorageClientTest {
+    private final static Logger logger = LoggerFactory.getLogger(SCPStorageClientTest.class);
+
+    @Test
+    public void testSCPStorageClient() throws Exception {
+        File privateKey = new File("/Users/supun/.ssh/id_rsa");
+        byte[] privateKeyBytes = IOUtils.toByteArray(new FileInputStream(privateKey));
+
+        File publicKey = new File("/Users/supun/.ssh/id_rsa.pub");
+        byte[] publicKeyBytes = IOUtils.toByteArray(new FileInputStream(publicKey));
+
+        String passPhrase = "";
+        byte[] passPhraseBytes = passPhrase.getBytes();
+
+        SCPStorageClient scpStorageClient = new SCPStorageClient("gw75.iu.xsede.org", 22, "pga", privateKeyBytes,
+                publicKeyBytes, passPhraseBytes);
+        File file = scpStorageClient.readFile("/var/www/portals/gateway-user-data/testdrive/test.txt");
+        System.out.println("File exists ? " + file.exists());
+        scpStorageClient.writeFile(file, "/var/www/portals/gateway-user-data/testdrive/test2.txt");
+        file.delete();
+        System.out.println("File exists ? " + file.exists());
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/test/resources/airavata-myproxy-client.properties
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/test/resources/airavata-myproxy-client.properties b/modules/data-manager/data-manager-core/src/test/resources/airavata-myproxy-client.properties
new file mode 100644
index 0000000..407f09d
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/test/resources/airavata-myproxy-client.properties
@@ -0,0 +1,28 @@
+#Download trusted certificates from - https://software.xsede.org/security/xsede-certs.tar.gz
+trustedCertsFile=../certificates
+myproxyServer=myproxy.teragrid.org
+myproxy_lifetime=17280000
+myproxyPort=7512
+
+testing.host=trestles
+#testing.host=stampede
+#testing.host=lonestar
+
+## TACC Lonestar
+lonestar.gridftp.endpoint=gsiftp://gridftp1.ls4.tacc.utexas.edu:2811/
+
+## TACC Stampede
+stampede.gridftp.endpoint=gsiftp://gridftp.stampede.tacc.utexas.edu:2811/
+
+## SDSC Trestles
+trestles.gridftp.endpoint=gsiftp://trestles.sdsc.edu:2811/
+
+gridftpserverSource=gsiftp://trestles-dm.sdsc.xsede.org:2811/
+gridftpSourcePath=/oasis/projects/nsf/sds128/ogce/file-transfer-tests/source/sample_wrfout.netcdf
+gridftpUploadingFilePath = /oasis/projects/nsf/sds128/ogce/file-transfer-tests/source/dummy1
+
+#gridftpserverDest=gsiftp://trestles-dm.sdsc.xsede.org:2811/
+#gridftpDestPath=/oasis/projects/nsf/sds128/ogce/file-transfer-tests/gf
+
+gridftpserverDest=gsiftp://gridftp.stampede.tacc.utexas.edu:2811/
+gridftpDestPath=/scratch/01437/ogce/file-transfer-tests/dest/xx
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/test/resources/dummy
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/test/resources/dummy b/modules/data-manager/data-manager-core/src/test/resources/dummy
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-cpi/pom.xml
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-cpi/pom.xml b/modules/data-manager/data-manager-cpi/pom.xml
new file mode 100644
index 0000000..ef08821
--- /dev/null
+++ b/modules/data-manager/data-manager-cpi/pom.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>data-manager</artifactId>
+        <groupId>org.apache.airavata</groupId>
+        <version>0.16-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>data-manager-cpi</artifactId>
+    <packaging>jar</packaging>
+    <name>Airavata File Manager CPI</name>
+    <url>http://airavata.apache.org/</url>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-data-models</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-commons</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManager.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManager.java b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManager.java
new file mode 100644
index 0000000..47965f6
--- /dev/null
+++ b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManager.java
@@ -0,0 +1,42 @@
+/*
+ *
+ * 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.
+ *
+ */
+package org.apache.airavata.data.manager.cpi;
+
+public interface DataManager {
+
+    /**
+     * Return file transfer service instance
+     * @return
+     */
+    FileTransferService getFileTransferService() throws DataManagerException;
+
+    /**
+     * Return replica catalog service instance
+     * @return
+     */
+    ReplicaCatalogService getReplicaCatalogService() throws DataManagerException;
+
+    /**
+     * Return metadata catalog service
+     * @return
+     */
+    MetadataCatalogService getMetadataCatalogService() throws DataManagerException;
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManagerConstants.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManagerConstants.java b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManagerConstants.java
new file mode 100644
index 0000000..c2407a5
--- /dev/null
+++ b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManagerConstants.java
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.cpi;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DataManagerConstants {
+    private final static Logger logger = LoggerFactory.getLogger(DataManagerConstants.class);
+
+    public static String AIRAVATA_FILE_ID_PREFIX = "airavata-file://";
+    public static String AIRAVATA_COLLECTION_ID_PREFIX = "airavata-collection://";
+    public static final String AIRAVATA_METADATA_ID_PREFIX = "airavata-metadata://";
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManagerException.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManagerException.java b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManagerException.java
new file mode 100644
index 0000000..b1c1cb8
--- /dev/null
+++ b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/DataManagerException.java
@@ -0,0 +1,35 @@
+/**
+ * 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.
+ */
+
+package org.apache.airavata.data.manager.cpi;
+
+public class DataManagerException extends Exception{
+
+    public DataManagerException(Throwable e) {
+        super(e);
+    }
+
+    public DataManagerException(String message) {
+        super(message, null);
+    }
+
+    public DataManagerException(String message, Throwable e) {
+        super(message, e);
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/FileTransferService.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/FileTransferService.java b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/FileTransferService.java
new file mode 100644
index 0000000..676bcb1
--- /dev/null
+++ b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/FileTransferService.java
@@ -0,0 +1,212 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.cpi;
+
+import org.apache.airavata.model.data.transfer.FileTransferRequestModel;
+import org.apache.airavata.model.data.transfer.LSEntryModel;
+import org.apache.airavata.model.data.transfer.StorageResourceProtocol;
+
+import java.util.List;
+
+public interface FileTransferService {
+
+    /**
+     * Method to upload the give bytes to the destination storage system
+     * @param gatewayId
+     * @param username
+     * @param fileData
+     * @param destHostname
+     * @param destLoginName
+     * @param destPort
+     * @param destProtocol
+     * @param destinationPath
+     * @param destHostCredToken
+     * @return
+     * @throws DataManagerException
+     */
+    String uploadFile(String gatewayId, String username, byte[] fileData, String destHostname, String destLoginName, int destPort,
+                    StorageResourceProtocol destProtocol, String destinationPath, String destHostCredToken)
+            throws DataManagerException;
+
+    /**
+     * Transfer file between two storage resources synchronously. Returns the file transfer request id
+     * @param gatewayId
+     * @param username
+     * @param srcHostname
+     * @param srcPort
+     * @param srcLoginName
+     * @param srcProtocol
+     * @param srcPath
+     * @param srcHostCredToken
+     * @param destHostname
+     * @param destLoginName
+     * @param destPort
+     * @param destProtocol
+     * @param destinationPath
+     * @param destHostCredToken
+     * @return
+     * @throws DataManagerException
+     */
+    String transferFile(String gatewayId, String username, String srcHostname, String srcLoginName, int srcPort,
+                      StorageResourceProtocol srcProtocol, String srcPath, String srcHostCredToken,
+                      String destHostname, String destLoginName, int destPort,
+                      StorageResourceProtocol destProtocol, String destinationPath, String destHostCredToken)
+            throws DataManagerException;
+
+    /**
+     * Transfer file between two storage resources asynchronously. Returns the file transfer request id
+     * @param gatewayId
+     * @param username
+     * @param srcHostname
+     * @param srcLoginName
+     * @param srcPort
+     * @param srcProtocol
+     * @param srcPath
+     * @param srcHostCredToken
+     * @param destHostname
+     * @param destLoginName
+     * @param destPort
+     * @param destProtocol
+     * @param destinationPath
+     * @param destHostCredToken
+     * @param callbackEmails
+     * @return
+     * @throws DataManagerException
+     */
+    String transferFileAsync(String gatewayId, String username, String srcHostname, String srcLoginName, int srcPort,
+                           StorageResourceProtocol srcProtocol, String srcPath, String srcHostCredToken,
+                           String destHostname, String destLoginName, int destPort,
+                           StorageResourceProtocol destProtocol, String destinationPath, String destHostCredToken,
+                           String[] callbackEmails)
+            throws DataManagerException;
+
+    /**
+     * Get a directory listing of the specified source directory
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param path
+     * @param hostCredential
+     * @return
+     * @throws DataManagerException
+     */
+    List<LSEntryModel> getDirectoryListing(String hostname, String loginName, int port,
+                                       StorageResourceProtocol protocol, String path, String hostCredential)
+            throws DataManagerException;
+
+    /**
+     * Move file from one place to another inside the same storage resource
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param sourcePath
+     * @param destinationPath
+     * @throws DataManagerException
+     */
+    void moveFile(String hostname, String loginName, int port,
+                  StorageResourceProtocol protocol, String hostCredential, String sourcePath, String destinationPath)
+            throws DataManagerException;
+
+    /**
+     * Rename a file
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param sourcePath
+     * @param newName
+     * @throws DataManagerException
+     */
+    void renameFile(String hostname, String loginName, int port,
+                    StorageResourceProtocol protocol, String hostCredential, String sourcePath, String newName)
+            throws DataManagerException;
+
+    /**
+     * Create new directory
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param dirPath
+     * @throws DataManagerException
+     */
+    void mkdir(String hostname, String loginName, int port,
+               StorageResourceProtocol protocol, String hostCredential, String dirPath)
+            throws DataManagerException;
+
+    /**
+     * Delete File in storage resource
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param filePath
+     * @throws DataManagerException
+     */
+    void deleteFile(String hostname, String loginName, int port,
+                    StorageResourceProtocol protocol, String hostCredential, String filePath)
+            throws DataManagerException;
+
+    /**
+     * Check whether the specified file exists
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param filePath
+     * @return
+     * @throws DataManagerException
+     */
+    boolean isExists(String hostname, String loginName, int port,
+                    StorageResourceProtocol protocol, String hostCredential, String filePath)
+            throws DataManagerException;
+
+    /**
+     * Check whether the path points to a directory
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param filePath
+     * @return
+     * @throws DataManagerException
+     */
+    boolean isDirectory(String hostname, String loginName, int port,
+                     StorageResourceProtocol protocol, String hostCredential, String filePath)
+            throws DataManagerException;
+
+    /**
+     * Method to retrieve file transfer status giving transfer id
+     * @param transferId
+     * @return
+     * @throws DataManagerException
+     */
+    FileTransferRequestModel getFileTransferRequestStatus(String transferId)
+            throws DataManagerException;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/MetadataCatalogService.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/MetadataCatalogService.java b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/MetadataCatalogService.java
new file mode 100644
index 0000000..a75e0d4
--- /dev/null
+++ b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/MetadataCatalogService.java
@@ -0,0 +1,56 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.cpi;
+
+import org.apache.airavata.model.data.metadata.MetadataModel;
+
+public interface MetadataCatalogService {
+
+    /**
+     * Create new metadata model
+     * @param metadataModel
+     * @return
+     * @throws DataManagerException
+     */
+    String createMetadata(MetadataModel metadataModel) throws DataManagerException;
+
+    /**
+     * Update exisiting metadata model
+     * @param metadataModel
+     * @throws DataManagerException
+     */
+    void updateMetadata(MetadataModel metadataModel) throws DataManagerException;
+
+    /**
+     * Delete existing metadata model
+     * @param metadataId
+     * @throws DataManagerException
+     */
+    void deleteMetadata(String metadataId) throws DataManagerException;
+
+    /**
+     * Retrieve metadata model
+     * @param metadataId
+     * @return
+     * @throws DataManagerException
+     */
+    MetadataModel getMetadata(String metadataId) throws DataManagerException;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/ReplicaCatalogService.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/ReplicaCatalogService.java b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/ReplicaCatalogService.java
new file mode 100644
index 0000000..b136c1c
--- /dev/null
+++ b/modules/data-manager/data-manager-cpi/src/main/java/org/apache/airavata/data/manager/cpi/ReplicaCatalogService.java
@@ -0,0 +1,86 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.cpi;
+
+import org.apache.airavata.model.data.replica.FileCollectionModel;
+import org.apache.airavata.model.data.replica.FileModel;
+
+public interface ReplicaCatalogService {
+
+    /**
+     * Creates a new file entry in the replica catalog
+     * @param fileModel
+     * @return
+     */
+    String registerFileDetails(FileModel fileModel) throws DataManagerException;
+
+    /**
+     * Updates an existing file information
+     * @param fileModel
+     */
+    void updateFileDetails(FileModel fileModel) throws DataManagerException;
+
+
+    /**
+     * Deletes the specified file details entry
+     * @param fileId
+     */
+    void deleteFileDetails(String fileId) throws DataManagerException;
+
+
+    /**
+     * Retrieves file details for the specified file id
+     * @param fileId
+     * @return
+     */
+    FileModel getFileDetails(String fileId) throws DataManagerException;
+
+
+    /**
+     * Create new file collection entry
+     * @param fileCollectionModel
+     * @return
+     * @throws DataManagerException
+     */
+    String registerFileCollection(FileCollectionModel fileCollectionModel) throws DataManagerException;
+
+    /**
+     * Update existing file collection
+     * @param fileCollectionModel
+     * @throws DataManagerException
+     */
+    void updateFileCollection(FileCollectionModel fileCollectionModel) throws DataManagerException;
+
+    /**
+     * Delete exisiting file collection
+     * @param collectionId
+     * @throws DataManagerException
+     */
+    void deleteFileCollection(String collectionId) throws DataManagerException;
+
+    /**
+     * Retrieve file collection specifying the collection id
+     * @param collectionId
+     * @return
+     * @throws DataManagerException
+     */
+    FileCollectionModel getFileCollection(String collectionId) throws DataManagerException;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/pom.xml
----------------------------------------------------------------------
diff --git a/modules/data-manager/pom.xml b/modules/data-manager/pom.xml
new file mode 100644
index 0000000..eb81d40
--- /dev/null
+++ b/modules/data-manager/pom.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>airavata</artifactId>
+        <groupId>org.apache.airavata</groupId>
+        <version>0.16-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>data-manager</artifactId>
+    <packaging>pom</packaging>
+    <name>Airavata Data Manager</name>
+    <url>http://airavata.apache.org/</url>
+
+    <modules>
+        <module>data-manager-cpi</module>
+        <module>data-manager-core</module>
+    </modules>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-data-models</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-cpi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.7</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/pom.xml b/modules/file-manager/file-manager-core/pom.xml
deleted file mode 100644
index b8e98e2..0000000
--- a/modules/file-manager/file-manager-core/pom.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>file-manager</artifactId>
-        <groupId>org.apache.airavata</groupId>
-        <version>0.16-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>file-manager-core</artifactId>
-    <packaging>jar</packaging>
-    <name>Airavata File Manager Core</name>
-    <url>http://airavata.apache.org/</url>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-data-models</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-registry-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-registry-cpi</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-commons</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-server-configuration</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>file-manager-cpi</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-registry-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-registry-cpi</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.jglobus</groupId>
-            <artifactId>gss</artifactId>
-            <version>${jglobus.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.jglobus</groupId>
-            <artifactId>gridftp</artifactId>
-            <version>${jglobus.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.jglobus</groupId>
-            <artifactId>myproxy</artifactId>
-            <version>2.1.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.bouncycastle</groupId>
-            <artifactId>bcprov-jdk16</artifactId>
-            <version>1.44</version>
-        </dependency>
-
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-            <version>2.5.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mongodb</groupId>
-            <artifactId>mongo-java-driver</artifactId>
-            <version>3.0.0</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileManagerFactory.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileManagerFactory.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileManagerFactory.java
deleted file mode 100644
index 52c76cb..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileManagerFactory.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core;
-
-import org.apache.airavata.file.manager.cpi.FileManager;
-import org.apache.airavata.file.manager.cpi.FileManagerException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class FileManagerFactory {
-    private final static Logger logger = LoggerFactory.getLogger(FileManagerFactory.class);
-
-    public static FileManager getFileManager() throws FileManagerException {
-        return new FileManagerImpl();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileManagerImpl.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileManagerImpl.java
deleted file mode 100644
index dee470a..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileManagerImpl.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core;
-
-import org.apache.airavata.file.manager.cpi.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-public class FileManagerImpl implements FileManager {
-    private final static Logger logger = LoggerFactory.getLogger(FileManagerImpl.class);
-
-    /**
-     * Return file transfer service instance
-     *
-     * @return
-     */
-    @Override
-    public FileTransferService getFileTransferService()  throws FileManagerException {
-        try{
-            return new FileTransferServiceImpl();
-        }catch (Exception e){
-            logger.error(e.getMessage(), e);
-            throw new FileManagerException(e);
-        }
-    }
-
-    /**
-     * Return replica catalog service instance
-     *
-     * @return
-     */
-    @Override
-    public ReplicaCatalogService getReplicaCatalogService()  throws FileManagerException{
-        try{
-            return new ReplicaCatalogServiceImpl();
-        }catch (Exception e){
-            logger.error(e.getMessage(), e);
-            throw new FileManagerException(e);
-        }
-    }
-
-    /**
-     * Return metadata catalog service
-     *
-     * @return
-     */
-    @Override
-    public MetadataCatalogService getMetadataCatalogService()  throws FileManagerException{
-        try{
-            return new MetadataCatalogServiceImpl();
-        }catch (Exception e){
-            logger.error(e.getMessage(), e);
-            throw new FileManagerException(e);
-        }
-    }
-}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
new file mode 100644
index 0000000..f1a0080
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@ -0,0 +1,933 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Resource Job Manager Information
+ * 
+ * resourceJobManagerType:
+ *  A typical HPC cluster has a single Job Manager to manage the resources.
+ * 
+ * pushMonitoringEndpoint:
+ *  If the job manager pushes out state changes to a database or bus, specify the service endpoint.
+ *   Ex: Moab Web Service, Moab MongoDB URL, AMQP (GLUE2) Broker
+ * 
+ * jobManagerBinPath:
+ *  Path to the Job Manager Installation Binary directory.
+ * 
+ * jobManagerCommands:
+ *  An enumeration of commonly used manager commands.
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ResourceJobManager implements org.apache.thrift.TBase<ResourceJobManager, ResourceJobManager._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceJobManager> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceJobManager");
+
+  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManagerId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManagerType", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField PUSH_MONITORING_ENDPOINT_FIELD_DESC = new org.apache.thrift.protocol.TField("pushMonitoringEndpoint", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField JOB_MANAGER_BIN_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("jobManagerBinPath", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField JOB_MANAGER_COMMANDS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobManagerCommands", org.apache.thrift.protocol.TType.MAP, (short)5);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ResourceJobManagerStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ResourceJobManagerTupleSchemeFactory());
+  }
+
+  public String resourceJobManagerId; // required
+  /**
+   * 
+   * @see ResourceJobManagerType
+   */
+  public ResourceJobManagerType resourceJobManagerType; // required
+  public String pushMonitoringEndpoint; // optional
+  public String jobManagerBinPath; // optional
+  public Map<JobManagerCommand,String> jobManagerCommands; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    RESOURCE_JOB_MANAGER_ID((short)1, "resourceJobManagerId"),
+    /**
+     * 
+     * @see ResourceJobManagerType
+     */
+    RESOURCE_JOB_MANAGER_TYPE((short)2, "resourceJobManagerType"),
+    PUSH_MONITORING_ENDPOINT((short)3, "pushMonitoringEndpoint"),
+    JOB_MANAGER_BIN_PATH((short)4, "jobManagerBinPath"),
+    JOB_MANAGER_COMMANDS((short)5, "jobManagerCommands");
+
+    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: // RESOURCE_JOB_MANAGER_ID
+          return RESOURCE_JOB_MANAGER_ID;
+        case 2: // RESOURCE_JOB_MANAGER_TYPE
+          return RESOURCE_JOB_MANAGER_TYPE;
+        case 3: // PUSH_MONITORING_ENDPOINT
+          return PUSH_MONITORING_ENDPOINT;
+        case 4: // JOB_MANAGER_BIN_PATH
+          return JOB_MANAGER_BIN_PATH;
+        case 5: // JOB_MANAGER_COMMANDS
+          return JOB_MANAGER_COMMANDS;
+        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 _Fields optionals[] = {_Fields.PUSH_MONITORING_ENDPOINT,_Fields.JOB_MANAGER_BIN_PATH,_Fields.JOB_MANAGER_COMMANDS};
+  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.RESOURCE_JOB_MANAGER_ID, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManagerId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_JOB_MANAGER_TYPE, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManagerType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManagerType.class)));
+    tmpMap.put(_Fields.PUSH_MONITORING_ENDPOINT, new org.apache.thrift.meta_data.FieldMetaData("pushMonitoringEndpoint", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.JOB_MANAGER_BIN_PATH, new org.apache.thrift.meta_data.FieldMetaData("jobManagerBinPath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.JOB_MANAGER_COMMANDS, new org.apache.thrift.meta_data.FieldMetaData("jobManagerCommands", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, JobManagerCommand.class), 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ResourceJobManager.class, metaDataMap);
+  }
+
+  public ResourceJobManager() {
+    this.resourceJobManagerId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public ResourceJobManager(
+    String resourceJobManagerId,
+    ResourceJobManagerType resourceJobManagerType)
+  {
+    this();
+    this.resourceJobManagerId = resourceJobManagerId;
+    this.resourceJobManagerType = resourceJobManagerType;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ResourceJobManager(ResourceJobManager other) {
+    if (other.isSetResourceJobManagerId()) {
+      this.resourceJobManagerId = other.resourceJobManagerId;
+    }
+    if (other.isSetResourceJobManagerType()) {
+      this.resourceJobManagerType = other.resourceJobManagerType;
+    }
+    if (other.isSetPushMonitoringEndpoint()) {
+      this.pushMonitoringEndpoint = other.pushMonitoringEndpoint;
+    }
+    if (other.isSetJobManagerBinPath()) {
+      this.jobManagerBinPath = other.jobManagerBinPath;
+    }
+    if (other.isSetJobManagerCommands()) {
+      Map<JobManagerCommand,String> __this__jobManagerCommands = new HashMap<JobManagerCommand,String>(other.jobManagerCommands.size());
+      for (Map.Entry<JobManagerCommand, String> other_element : other.jobManagerCommands.entrySet()) {
+
+        JobManagerCommand other_element_key = other_element.getKey();
+        String other_element_value = other_element.getValue();
+
+        JobManagerCommand __this__jobManagerCommands_copy_key = other_element_key;
+
+        String __this__jobManagerCommands_copy_value = other_element_value;
+
+        __this__jobManagerCommands.put(__this__jobManagerCommands_copy_key, __this__jobManagerCommands_copy_value);
+      }
+      this.jobManagerCommands = __this__jobManagerCommands;
+    }
+  }
+
+  public ResourceJobManager deepCopy() {
+    return new ResourceJobManager(this);
+  }
+
+  @Override
+  public void clear() {
+    this.resourceJobManagerId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.resourceJobManagerType = null;
+    this.pushMonitoringEndpoint = null;
+    this.jobManagerBinPath = null;
+    this.jobManagerCommands = null;
+  }
+
+  public String getResourceJobManagerId() {
+    return this.resourceJobManagerId;
+  }
+
+  public ResourceJobManager setResourceJobManagerId(String resourceJobManagerId) {
+    this.resourceJobManagerId = resourceJobManagerId;
+    return this;
+  }
+
+  public void unsetResourceJobManagerId() {
+    this.resourceJobManagerId = null;
+  }
+
+  /** Returns true if field resourceJobManagerId is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceJobManagerId() {
+    return this.resourceJobManagerId != null;
+  }
+
+  public void setResourceJobManagerIdIsSet(boolean value) {
+    if (!value) {
+      this.resourceJobManagerId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see ResourceJobManagerType
+   */
+  public ResourceJobManagerType getResourceJobManagerType() {
+    return this.resourceJobManagerType;
+  }
+
+  /**
+   * 
+   * @see ResourceJobManagerType
+   */
+  public ResourceJobManager setResourceJobManagerType(ResourceJobManagerType resourceJobManagerType) {
+    this.resourceJobManagerType = resourceJobManagerType;
+    return this;
+  }
+
+  public void unsetResourceJobManagerType() {
+    this.resourceJobManagerType = null;
+  }
+
+  /** Returns true if field resourceJobManagerType is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceJobManagerType() {
+    return this.resourceJobManagerType != null;
+  }
+
+  public void setResourceJobManagerTypeIsSet(boolean value) {
+    if (!value) {
+      this.resourceJobManagerType = null;
+    }
+  }
+
+  public String getPushMonitoringEndpoint() {
+    return this.pushMonitoringEndpoint;
+  }
+
+  public ResourceJobManager setPushMonitoringEndpoint(String pushMonitoringEndpoint) {
+    this.pushMonitoringEndpoint = pushMonitoringEndpoint;
+    return this;
+  }
+
+  public void unsetPushMonitoringEndpoint() {
+    this.pushMonitoringEndpoint = null;
+  }
+
+  /** Returns true if field pushMonitoringEndpoint is set (has been assigned a value) and false otherwise */
+  public boolean isSetPushMonitoringEndpoint() {
+    return this.pushMonitoringEndpoint != null;
+  }
+
+  public void setPushMonitoringEndpointIsSet(boolean value) {
+    if (!value) {
+      this.pushMonitoringEndpoint = null;
+    }
+  }
+
+  public String getJobManagerBinPath() {
+    return this.jobManagerBinPath;
+  }
+
+  public ResourceJobManager setJobManagerBinPath(String jobManagerBinPath) {
+    this.jobManagerBinPath = jobManagerBinPath;
+    return this;
+  }
+
+  public void unsetJobManagerBinPath() {
+    this.jobManagerBinPath = null;
+  }
+
+  /** Returns true if field jobManagerBinPath is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobManagerBinPath() {
+    return this.jobManagerBinPath != null;
+  }
+
+  public void setJobManagerBinPathIsSet(boolean value) {
+    if (!value) {
+      this.jobManagerBinPath = null;
+    }
+  }
+
+  public int getJobManagerCommandsSize() {
+    return (this.jobManagerCommands == null) ? 0 : this.jobManagerCommands.size();
+  }
+
+  public void putToJobManagerCommands(JobManagerCommand key, String val) {
+    if (this.jobManagerCommands == null) {
+      this.jobManagerCommands = new HashMap<JobManagerCommand,String>();
+    }
+    this.jobManagerCommands.put(key, val);
+  }
+
+  public Map<JobManagerCommand,String> getJobManagerCommands() {
+    return this.jobManagerCommands;
+  }
+
+  public ResourceJobManager setJobManagerCommands(Map<JobManagerCommand,String> jobManagerCommands) {
+    this.jobManagerCommands = jobManagerCommands;
+    return this;
+  }
+
+  public void unsetJobManagerCommands() {
+    this.jobManagerCommands = null;
+  }
+
+  /** Returns true if field jobManagerCommands is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobManagerCommands() {
+    return this.jobManagerCommands != null;
+  }
+
+  public void setJobManagerCommandsIsSet(boolean value) {
+    if (!value) {
+      this.jobManagerCommands = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case RESOURCE_JOB_MANAGER_ID:
+      if (value == null) {
+        unsetResourceJobManagerId();
+      } else {
+        setResourceJobManagerId((String)value);
+      }
+      break;
+
+    case RESOURCE_JOB_MANAGER_TYPE:
+      if (value == null) {
+        unsetResourceJobManagerType();
+      } else {
+        setResourceJobManagerType((ResourceJobManagerType)value);
+      }
+      break;
+
+    case PUSH_MONITORING_ENDPOINT:
+      if (value == null) {
+        unsetPushMonitoringEndpoint();
+      } else {
+        setPushMonitoringEndpoint((String)value);
+      }
+      break;
+
+    case JOB_MANAGER_BIN_PATH:
+      if (value == null) {
+        unsetJobManagerBinPath();
+      } else {
+        setJobManagerBinPath((String)value);
+      }
+      break;
+
+    case JOB_MANAGER_COMMANDS:
+      if (value == null) {
+        unsetJobManagerCommands();
+      } else {
+        setJobManagerCommands((Map<JobManagerCommand,String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case RESOURCE_JOB_MANAGER_ID:
+      return getResourceJobManagerId();
+
+    case RESOURCE_JOB_MANAGER_TYPE:
+      return getResourceJobManagerType();
+
+    case PUSH_MONITORING_ENDPOINT:
+      return getPushMonitoringEndpoint();
+
+    case JOB_MANAGER_BIN_PATH:
+      return getJobManagerBinPath();
+
+    case JOB_MANAGER_COMMANDS:
+      return getJobManagerCommands();
+
+    }
+    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 RESOURCE_JOB_MANAGER_ID:
+      return isSetResourceJobManagerId();
+    case RESOURCE_JOB_MANAGER_TYPE:
+      return isSetResourceJobManagerType();
+    case PUSH_MONITORING_ENDPOINT:
+      return isSetPushMonitoringEndpoint();
+    case JOB_MANAGER_BIN_PATH:
+      return isSetJobManagerBinPath();
+    case JOB_MANAGER_COMMANDS:
+      return isSetJobManagerCommands();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ResourceJobManager)
+      return this.equals((ResourceJobManager)that);
+    return false;
+  }
+
+  public boolean equals(ResourceJobManager that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_resourceJobManagerId = true && this.isSetResourceJobManagerId();
+    boolean that_present_resourceJobManagerId = true && that.isSetResourceJobManagerId();
+    if (this_present_resourceJobManagerId || that_present_resourceJobManagerId) {
+      if (!(this_present_resourceJobManagerId && that_present_resourceJobManagerId))
+        return false;
+      if (!this.resourceJobManagerId.equals(that.resourceJobManagerId))
+        return false;
+    }
+
+    boolean this_present_resourceJobManagerType = true && this.isSetResourceJobManagerType();
+    boolean that_present_resourceJobManagerType = true && that.isSetResourceJobManagerType();
+    if (this_present_resourceJobManagerType || that_present_resourceJobManagerType) {
+      if (!(this_present_resourceJobManagerType && that_present_resourceJobManagerType))
+        return false;
+      if (!this.resourceJobManagerType.equals(that.resourceJobManagerType))
+        return false;
+    }
+
+    boolean this_present_pushMonitoringEndpoint = true && this.isSetPushMonitoringEndpoint();
+    boolean that_present_pushMonitoringEndpoint = true && that.isSetPushMonitoringEndpoint();
+    if (this_present_pushMonitoringEndpoint || that_present_pushMonitoringEndpoint) {
+      if (!(this_present_pushMonitoringEndpoint && that_present_pushMonitoringEndpoint))
+        return false;
+      if (!this.pushMonitoringEndpoint.equals(that.pushMonitoringEndpoint))
+        return false;
+    }
+
+    boolean this_present_jobManagerBinPath = true && this.isSetJobManagerBinPath();
+    boolean that_present_jobManagerBinPath = true && that.isSetJobManagerBinPath();
+    if (this_present_jobManagerBinPath || that_present_jobManagerBinPath) {
+      if (!(this_present_jobManagerBinPath && that_present_jobManagerBinPath))
+        return false;
+      if (!this.jobManagerBinPath.equals(that.jobManagerBinPath))
+        return false;
+    }
+
+    boolean this_present_jobManagerCommands = true && this.isSetJobManagerCommands();
+    boolean that_present_jobManagerCommands = true && that.isSetJobManagerCommands();
+    if (this_present_jobManagerCommands || that_present_jobManagerCommands) {
+      if (!(this_present_jobManagerCommands && that_present_jobManagerCommands))
+        return false;
+      if (!this.jobManagerCommands.equals(that.jobManagerCommands))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_resourceJobManagerId = true && (isSetResourceJobManagerId());
+    list.add(present_resourceJobManagerId);
+    if (present_resourceJobManagerId)
+      list.add(resourceJobManagerId);
+
+    boolean present_resourceJobManagerType = true && (isSetResourceJobManagerType());
+    list.add(present_resourceJobManagerType);
+    if (present_resourceJobManagerType)
+      list.add(resourceJobManagerType.getValue());
+
+    boolean present_pushMonitoringEndpoint = true && (isSetPushMonitoringEndpoint());
+    list.add(present_pushMonitoringEndpoint);
+    if (present_pushMonitoringEndpoint)
+      list.add(pushMonitoringEndpoint);
+
+    boolean present_jobManagerBinPath = true && (isSetJobManagerBinPath());
+    list.add(present_jobManagerBinPath);
+    if (present_jobManagerBinPath)
+      list.add(jobManagerBinPath);
+
+    boolean present_jobManagerCommands = true && (isSetJobManagerCommands());
+    list.add(present_jobManagerCommands);
+    if (present_jobManagerCommands)
+      list.add(jobManagerCommands);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ResourceJobManager other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetResourceJobManagerId()).compareTo(other.isSetResourceJobManagerId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceJobManagerId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManagerId, other.resourceJobManagerId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceJobManagerType()).compareTo(other.isSetResourceJobManagerType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceJobManagerType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManagerType, other.resourceJobManagerType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPushMonitoringEndpoint()).compareTo(other.isSetPushMonitoringEndpoint());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPushMonitoringEndpoint()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pushMonitoringEndpoint, other.pushMonitoringEndpoint);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobManagerBinPath()).compareTo(other.isSetJobManagerBinPath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobManagerBinPath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobManagerBinPath, other.jobManagerBinPath);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobManagerCommands()).compareTo(other.isSetJobManagerCommands());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobManagerCommands()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobManagerCommands, other.jobManagerCommands);
+      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("ResourceJobManager(");
+    boolean first = true;
+
+    sb.append("resourceJobManagerId:");
+    if (this.resourceJobManagerId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManagerId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("resourceJobManagerType:");
+    if (this.resourceJobManagerType == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManagerType);
+    }
+    first = false;
+    if (isSetPushMonitoringEndpoint()) {
+      if (!first) sb.append(", ");
+      sb.append("pushMonitoringEndpoint:");
+      if (this.pushMonitoringEndpoint == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.pushMonitoringEndpoint);
+      }
+      first = false;
+    }
+    if (isSetJobManagerBinPath()) {
+      if (!first) sb.append(", ");
+      sb.append("jobManagerBinPath:");
+      if (this.jobManagerBinPath == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.jobManagerBinPath);
+      }
+      first = false;
+    }
+    if (isSetJobManagerCommands()) {
+      if (!first) sb.append(", ");
+      sb.append("jobManagerCommands:");
+      if (this.jobManagerCommands == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.jobManagerCommands);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (resourceJobManagerId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManagerId' was not present! Struct: " + toString());
+    }
+    if (resourceJobManagerType == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManagerType' was not present! 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 ResourceJobManagerStandardSchemeFactory implements SchemeFactory {
+    public ResourceJobManagerStandardScheme getScheme() {
+      return new ResourceJobManagerStandardScheme();
+    }
+  }
+
+  private static class ResourceJobManagerStandardScheme extends StandardScheme<ResourceJobManager> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ResourceJobManager 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: // RESOURCE_JOB_MANAGER_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceJobManagerId = iprot.readString();
+              struct.setResourceJobManagerIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // RESOURCE_JOB_MANAGER_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.resourceJobManagerType = org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType.findByValue(iprot.readI32());
+              struct.setResourceJobManagerTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // PUSH_MONITORING_ENDPOINT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.pushMonitoringEndpoint = iprot.readString();
+              struct.setPushMonitoringEndpointIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // JOB_MANAGER_BIN_PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobManagerBinPath = iprot.readString();
+              struct.setJobManagerBinPathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // JOB_MANAGER_COMMANDS
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map0 = iprot.readMapBegin();
+                struct.jobManagerCommands = new HashMap<JobManagerCommand,String>(2*_map0.size);
+                JobManagerCommand _key1;
+                String _val2;
+                for (int _i3 = 0; _i3 < _map0.size; ++_i3)
+                {
+                  _key1 = org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand.findByValue(iprot.readI32());
+                  _val2 = iprot.readString();
+                  struct.jobManagerCommands.put(_key1, _val2);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setJobManagerCommandsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ResourceJobManager struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.resourceJobManagerId != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_ID_FIELD_DESC);
+        oprot.writeString(struct.resourceJobManagerId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.resourceJobManagerType != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_TYPE_FIELD_DESC);
+        oprot.writeI32(struct.resourceJobManagerType.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.pushMonitoringEndpoint != null) {
+        if (struct.isSetPushMonitoringEndpoint()) {
+          oprot.writeFieldBegin(PUSH_MONITORING_ENDPOINT_FIELD_DESC);
+          oprot.writeString(struct.pushMonitoringEndpoint);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.jobManagerBinPath != null) {
+        if (struct.isSetJobManagerBinPath()) {
+          oprot.writeFieldBegin(JOB_MANAGER_BIN_PATH_FIELD_DESC);
+          oprot.writeString(struct.jobManagerBinPath);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.jobManagerCommands != null) {
+        if (struct.isSetJobManagerCommands()) {
+          oprot.writeFieldBegin(JOB_MANAGER_COMMANDS_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, struct.jobManagerCommands.size()));
+            for (Map.Entry<JobManagerCommand, String> _iter4 : struct.jobManagerCommands.entrySet())
+            {
+              oprot.writeI32(_iter4.getKey().getValue());
+              oprot.writeString(_iter4.getValue());
+            }
+            oprot.writeMapEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ResourceJobManagerTupleSchemeFactory implements SchemeFactory {
+    public ResourceJobManagerTupleScheme getScheme() {
+      return new ResourceJobManagerTupleScheme();
+    }
+  }
+
+  private static class ResourceJobManagerTupleScheme extends TupleScheme<ResourceJobManager> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ResourceJobManager struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.resourceJobManagerId);
+      oprot.writeI32(struct.resourceJobManagerType.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetPushMonitoringEndpoint()) {
+        optionals.set(0);
+      }
+      if (struct.isSetJobManagerBinPath()) {
+        optionals.set(1);
+      }
+      if (struct.isSetJobManagerCommands()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetPushMonitoringEndpoint()) {
+        oprot.writeString(struct.pushMonitoringEndpoint);
+      }
+      if (struct.isSetJobManagerBinPath()) {
+        oprot.writeString(struct.jobManagerBinPath);
+      }
+      if (struct.isSetJobManagerCommands()) {
+        {
+          oprot.writeI32(struct.jobManagerCommands.size());
+          for (Map.Entry<JobManagerCommand, String> _iter5 : struct.jobManagerCommands.entrySet())
+          {
+            oprot.writeI32(_iter5.getKey().getValue());
+            oprot.writeString(_iter5.getValue());
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ResourceJobManager struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.resourceJobManagerId = iprot.readString();
+      struct.setResourceJobManagerIdIsSet(true);
+      struct.resourceJobManagerType = org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType.findByValue(iprot.readI32());
+      struct.setResourceJobManagerTypeIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.pushMonitoringEndpoint = iprot.readString();
+        struct.setPushMonitoringEndpointIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.jobManagerBinPath = iprot.readString();
+        struct.setJobManagerBinPathIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TMap _map6 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.jobManagerCommands = new HashMap<JobManagerCommand,String>(2*_map6.size);
+          JobManagerCommand _key7;
+          String _val8;
+          for (int _i9 = 0; _i9 < _map6.size; ++_i9)
+          {
+            _key7 = org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand.findByValue(iprot.readI32());
+            _val8 = iprot.readString();
+            struct.jobManagerCommands.put(_key7, _val8);
+          }
+        }
+        struct.setJobManagerCommandsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
new file mode 100644
index 0000000..83228d2
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
@@ -0,0 +1,90 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * * Enumeration of local resource job manager types supported by Airavata
+ * *
+ * * FORK:
+ * *  Forking of commands without any job manager
+ * *
+ * * PBS:
+ * *  Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
+ * *
+ * * SLURM:
+ * *  The Simple Linux Utility for Resource Management is a open source workload manager.
+ *  *
+ *  * UGE:
+ *  *  Univa Grid Engine, a variation of PBS implementation.
+ *  *
+ *  * LSF:
+ *  *  IBM Platform Load Sharing Facility is dominantly installed on IBM clusters.
+ * *
+ */
+public enum ResourceJobManagerType implements org.apache.thrift.TEnum {
+  FORK(0),
+  PBS(1),
+  SLURM(2),
+  LSF(3),
+  UGE(4);
+
+  private final int value;
+
+  private ResourceJobManagerType(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 ResourceJobManagerType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return FORK;
+      case 1:
+        return PBS;
+      case 2:
+        return SLURM;
+      case 3:
+        return LSF;
+      case 4:
+        return UGE;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
new file mode 100644
index 0000000..8e56d82
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@ -0,0 +1,1146 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Authenticate using Secured Shell
+ * 
+ * alternativeSSHHostName:
+ *  If the login to ssh is different than the hostname itself, specify it here
+ * 
+ * sshPort:
+ *  If a non-default port needs to used, specify it.
+ * 
+ * batchQueueEmailSenders:
+ *  If a resource always sends the monitoring from a specific address, specify the
+ *   full email address. If a resource sends emails from multiple addresses (
+ *    example: based on the submitted login node) then use the wildchar * to indicate
+ *    the same. Example: *@*.example.com or *@example.com
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManager", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+  private static final org.apache.thrift.protocol.TField ALTERNATIVE_SSHHOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("alternativeSSHHostName", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", org.apache.thrift.protocol.TType.I32, (short)6);
+  private static final org.apache.thrift.protocol.TField BATCH_QUEUE_EMAIL_SENDERS_FIELD_DESC = new org.apache.thrift.protocol.TField("batchQueueEmailSenders", org.apache.thrift.protocol.TType.LIST, (short)7);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new SSHJobSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new SSHJobSubmissionTupleSchemeFactory());
+  }
+
+  public String jobSubmissionInterfaceId; // required
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol; // required
+  public ResourceJobManager resourceJobManager; // required
+  public String alternativeSSHHostName; // optional
+  public int sshPort; // optional
+  /**
+   * 
+   * @see MonitorMode
+   */
+  public MonitorMode monitorMode; // optional
+  public List<String> batchQueueEmailSenders; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_SUBMISSION_INTERFACE_ID((short)1, "jobSubmissionInterfaceId"),
+    /**
+     * 
+     * @see org.apache.airavata.model.data.movement.SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    RESOURCE_JOB_MANAGER((short)3, "resourceJobManager"),
+    ALTERNATIVE_SSHHOST_NAME((short)4, "alternativeSSHHostName"),
+    SSH_PORT((short)5, "sshPort"),
+    /**
+     * 
+     * @see MonitorMode
+     */
+    MONITOR_MODE((short)6, "monitorMode"),
+    BATCH_QUEUE_EMAIL_SENDERS((short)7, "batchQueueEmailSenders");
+
+    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: // JOB_SUBMISSION_INTERFACE_ID
+          return JOB_SUBMISSION_INTERFACE_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // RESOURCE_JOB_MANAGER
+          return RESOURCE_JOB_MANAGER;
+        case 4: // ALTERNATIVE_SSHHOST_NAME
+          return ALTERNATIVE_SSHHOST_NAME;
+        case 5: // SSH_PORT
+          return SSH_PORT;
+        case 6: // MONITOR_MODE
+          return MONITOR_MODE;
+        case 7: // BATCH_QUEUE_EMAIL_SENDERS
+          return BATCH_QUEUE_EMAIL_SENDERS;
+        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 __SSHPORT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.ALTERNATIVE_SSHHOST_NAME,_Fields.SSH_PORT,_Fields.MONITOR_MODE,_Fields.BATCH_QUEUE_EMAIL_SENDERS};
+  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.JOB_SUBMISSION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.data.movement.SecurityProtocol.class)));
+    tmpMap.put(_Fields.RESOURCE_JOB_MANAGER, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManager", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ResourceJobManager.class)));
+    tmpMap.put(_Fields.ALTERNATIVE_SSHHOST_NAME, new org.apache.thrift.meta_data.FieldMetaData("alternativeSSHHostName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SSH_PORT, new org.apache.thrift.meta_data.FieldMetaData("sshPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, MonitorMode.class)));
+    tmpMap.put(_Fields.BATCH_QUEUE_EMAIL_SENDERS, new org.apache.thrift.meta_data.FieldMetaData("batchQueueEmailSenders", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SSHJobSubmission.class, metaDataMap);
+  }
+
+  public SSHJobSubmission() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.sshPort = 22;
+
+  }
+
+  public SSHJobSubmission(
+    String jobSubmissionInterfaceId,
+    org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol,
+    ResourceJobManager resourceJobManager)
+  {
+    this();
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    this.securityProtocol = securityProtocol;
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public SSHJobSubmission(SSHJobSubmission other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetJobSubmissionInterfaceId()) {
+      this.jobSubmissionInterfaceId = other.jobSubmissionInterfaceId;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetResourceJobManager()) {
+      this.resourceJobManager = new ResourceJobManager(other.resourceJobManager);
+    }
+    if (other.isSetAlternativeSSHHostName()) {
+      this.alternativeSSHHostName = other.alternativeSSHHostName;
+    }
+    this.sshPort = other.sshPort;
+    if (other.isSetMonitorMode()) {
+      this.monitorMode = other.monitorMode;
+    }
+    if (other.isSetBatchQueueEmailSenders()) {
+      List<String> __this__batchQueueEmailSenders = new ArrayList<String>(other.batchQueueEmailSenders);
+      this.batchQueueEmailSenders = __this__batchQueueEmailSenders;
+    }
+  }
+
+  public SSHJobSubmission deepCopy() {
+    return new SSHJobSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.resourceJobManager = null;
+    this.alternativeSSHHostName = null;
+    this.sshPort = 22;
+
+    this.monitorMode = null;
+    this.batchQueueEmailSenders = null;
+  }
+
+  public String getJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId;
+  }
+
+  public SSHJobSubmission setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    return this;
+  }
+
+  public void unsetJobSubmissionInterfaceId() {
+    this.jobSubmissionInterfaceId = null;
+  }
+
+  /** Returns true if field jobSubmissionInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId != null;
+  }
+
+  public void setJobSubmissionInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public SSHJobSubmission setSecurityProtocol(org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+    return this;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public ResourceJobManager getResourceJobManager() {
+    return this.resourceJobManager;
+  }
+
+  public SSHJobSubmission setResourceJobManager(ResourceJobManager resourceJobManager) {
+    this.resourceJobManager = resourceJobManager;
+    return this;
+  }
+
+  public void unsetResourceJobManager() {
+    this.resourceJobManager = null;
+  }
+
+  /** Returns true if field resourceJobManager is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceJobManager() {
+    return this.resourceJobManager != null;
+  }
+
+  public void setResourceJobManagerIsSet(boolean value) {
+    if (!value) {
+      this.resourceJobManager = null;
+    }
+  }
+
+  public String getAlternativeSSHHostName() {
+    return this.alternativeSSHHostName;
+  }
+
+  public SSHJobSubmission setAlternativeSSHHostName(String alternativeSSHHostName) {
+    this.alternativeSSHHostName = alternativeSSHHostName;
+    return this;
+  }
+
+  public void unsetAlternativeSSHHostName() {
+    this.alternativeSSHHostName = null;
+  }
+
+  /** Returns true if field alternativeSSHHostName is set (has been assigned a value) and false otherwise */
+  public boolean isSetAlternativeSSHHostName() {
+    return this.alternativeSSHHostName != null;
+  }
+
+  public void setAlternativeSSHHostNameIsSet(boolean value) {
+    if (!value) {
+      this.alternativeSSHHostName = null;
+    }
+  }
+
+  public int getSshPort() {
+    return this.sshPort;
+  }
+
+  public SSHJobSubmission setSshPort(int sshPort) {
+    this.sshPort = sshPort;
+    setSshPortIsSet(true);
+    return this;
+  }
+
+  public void unsetSshPort() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  /** Returns true if field sshPort is set (has been assigned a value) and false otherwise */
+  public boolean isSetSshPort() {
+    return EncodingUtils.testBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  public void setSshPortIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SSHPORT_ISSET_ID, value);
+  }
+
+  /**
+   * 
+   * @see MonitorMode
+   */
+  public MonitorMode getMonitorMode() {
+    return this.monitorMode;
+  }
+
+  /**
+   * 
+   * @see MonitorMode
+   */
+  public SSHJobSubmission setMonitorMode(MonitorMode monitorMode) {
+    this.monitorMode = monitorMode;
+    return this;
+  }
+
+  public void unsetMonitorMode() {
+    this.monitorMode = null;
+  }
+
+  /** Returns true if field monitorMode is set (has been assigned a value) and false otherwise */
+  public boolean isSetMonitorMode() {
+    return this.monitorMode != null;
+  }
+
+  public void setMonitorModeIsSet(boolean value) {
+    if (!value) {
+      this.monitorMode = null;
+    }
+  }
+
+  public int getBatchQueueEmailSendersSize() {
+    return (this.batchQueueEmailSenders == null) ? 0 : this.batchQueueEmailSenders.size();
+  }
+
+  public java.util.Iterator<String> getBatchQueueEmailSendersIterator() {
+    return (this.batchQueueEmailSenders == null) ? null : this.batchQueueEmailSenders.iterator();
+  }
+
+  public void addToBatchQueueEmailSenders(String elem) {
+    if (this.batchQueueEmailSenders == null) {
+      this.batchQueueEmailSenders = new ArrayList<String>();
+    }
+    this.batchQueueEmailSenders.add(elem);
+  }
+
+  public List<String> getBatchQueueEmailSenders() {
+    return this.batchQueueEmailSenders;
+  }
+
+  public SSHJobSubmission setBatchQueueEmailSenders(List<String> batchQueueEmailSenders) {
+    this.batchQueueEmailSenders = batchQueueEmailSenders;
+    return this;
+  }
+
+  public void unsetBatchQueueEmailSenders() {
+    this.batchQueueEmailSenders = null;
+  }
+
+  /** Returns true if field batchQueueEmailSenders is set (has been assigned a value) and false otherwise */
+  public boolean isSetBatchQueueEmailSenders() {
+    return this.batchQueueEmailSenders != null;
+  }
+
+  public void setBatchQueueEmailSendersIsSet(boolean value) {
+    if (!value) {
+      this.batchQueueEmailSenders = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      if (value == null) {
+        unsetJobSubmissionInterfaceId();
+      } else {
+        setJobSubmissionInterfaceId((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((org.apache.airavata.model.data.movement.SecurityProtocol)value);
+      }
+      break;
+
+    case RESOURCE_JOB_MANAGER:
+      if (value == null) {
+        unsetResourceJobManager();
+      } else {
+        setResourceJobManager((ResourceJobManager)value);
+      }
+      break;
+
+    case ALTERNATIVE_SSHHOST_NAME:
+      if (value == null) {
+        unsetAlternativeSSHHostName();
+      } else {
+        setAlternativeSSHHostName((String)value);
+      }
+      break;
+
+    case SSH_PORT:
+      if (value == null) {
+        unsetSshPort();
+      } else {
+        setSshPort((Integer)value);
+      }
+      break;
+
+    case MONITOR_MODE:
+      if (value == null) {
+        unsetMonitorMode();
+      } else {
+        setMonitorMode((MonitorMode)value);
+      }
+      break;
+
+    case BATCH_QUEUE_EMAIL_SENDERS:
+      if (value == null) {
+        unsetBatchQueueEmailSenders();
+      } else {
+        setBatchQueueEmailSenders((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      return getJobSubmissionInterfaceId();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case RESOURCE_JOB_MANAGER:
+      return getResourceJobManager();
+
+    case ALTERNATIVE_SSHHOST_NAME:
+      return getAlternativeSSHHostName();
+
+    case SSH_PORT:
+      return Integer.valueOf(getSshPort());
+
+    case MONITOR_MODE:
+      return getMonitorMode();
+
+    case BATCH_QUEUE_EMAIL_SENDERS:
+      return getBatchQueueEmailSenders();
+
+    }
+    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 JOB_SUBMISSION_INTERFACE_ID:
+      return isSetJobSubmissionInterfaceId();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case RESOURCE_JOB_MANAGER:
+      return isSetResourceJobManager();
+    case ALTERNATIVE_SSHHOST_NAME:
+      return isSetAlternativeSSHHostName();
+    case SSH_PORT:
+      return isSetSshPort();
+    case MONITOR_MODE:
+      return isSetMonitorMode();
+    case BATCH_QUEUE_EMAIL_SENDERS:
+      return isSetBatchQueueEmailSenders();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof SSHJobSubmission)
+      return this.equals((SSHJobSubmission)that);
+    return false;
+  }
+
+  public boolean equals(SSHJobSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionInterfaceId = true && this.isSetJobSubmissionInterfaceId();
+    boolean that_present_jobSubmissionInterfaceId = true && that.isSetJobSubmissionInterfaceId();
+    if (this_present_jobSubmissionInterfaceId || that_present_jobSubmissionInterfaceId) {
+      if (!(this_present_jobSubmissionInterfaceId && that_present_jobSubmissionInterfaceId))
+        return false;
+      if (!this.jobSubmissionInterfaceId.equals(that.jobSubmissionInterfaceId))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_resourceJobManager = true && this.isSetResourceJobManager();
+    boolean that_present_resourceJobManager = true && that.isSetResourceJobManager();
+    if (this_present_resourceJobManager || that_present_resourceJobManager) {
+      if (!(this_present_resourceJobManager && that_present_resourceJobManager))
+        return false;
+      if (!this.resourceJobManager.equals(that.resourceJobManager))
+        return false;
+    }
+
+    boolean this_present_alternativeSSHHostName = true && this.isSetAlternativeSSHHostName();
+    boolean that_present_alternativeSSHHostName = true && that.isSetAlternativeSSHHostName();
+    if (this_present_alternativeSSHHostName || that_present_alternativeSSHHostName) {
+      if (!(this_present_alternativeSSHHostName && that_present_alternativeSSHHostName))
+        return false;
+      if (!this.alternativeSSHHostName.equals(that.alternativeSSHHostName))
+        return false;
+    }
+
+    boolean this_present_sshPort = true && this.isSetSshPort();
+    boolean that_present_sshPort = true && that.isSetSshPort();
+    if (this_present_sshPort || that_present_sshPort) {
+      if (!(this_present_sshPort && that_present_sshPort))
+        return false;
+      if (this.sshPort != that.sshPort)
+        return false;
+    }
+
+    boolean this_present_monitorMode = true && this.isSetMonitorMode();
+    boolean that_present_monitorMode = true && that.isSetMonitorMode();
+    if (this_present_monitorMode || that_present_monitorMode) {
+      if (!(this_present_monitorMode && that_present_monitorMode))
+        return false;
+      if (!this.monitorMode.equals(that.monitorMode))
+        return false;
+    }
+
+    boolean this_present_batchQueueEmailSenders = true && this.isSetBatchQueueEmailSenders();
+    boolean that_present_batchQueueEmailSenders = true && that.isSetBatchQueueEmailSenders();
+    if (this_present_batchQueueEmailSenders || that_present_batchQueueEmailSenders) {
+      if (!(this_present_batchQueueEmailSenders && that_present_batchQueueEmailSenders))
+        return false;
+      if (!this.batchQueueEmailSenders.equals(that.batchQueueEmailSenders))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_jobSubmissionInterfaceId = true && (isSetJobSubmissionInterfaceId());
+    list.add(present_jobSubmissionInterfaceId);
+    if (present_jobSubmissionInterfaceId)
+      list.add(jobSubmissionInterfaceId);
+
+    boolean present_securityProtocol = true && (isSetSecurityProtocol());
+    list.add(present_securityProtocol);
+    if (present_securityProtocol)
+      list.add(securityProtocol.getValue());
+
+    boolean present_resourceJobManager = true && (isSetResourceJobManager());
+    list.add(present_resourceJobManager);
+    if (present_resourceJobManager)
+      list.add(resourceJobManager);
+
+    boolean present_alternativeSSHHostName = true && (isSetAlternativeSSHHostName());
+    list.add(present_alternativeSSHHostName);
+    if (present_alternativeSSHHostName)
+      list.add(alternativeSSHHostName);
+
+    boolean present_sshPort = true && (isSetSshPort());
+    list.add(present_sshPort);
+    if (present_sshPort)
+      list.add(sshPort);
+
+    boolean present_monitorMode = true && (isSetMonitorMode());
+    list.add(present_monitorMode);
+    if (present_monitorMode)
+      list.add(monitorMode.getValue());
+
+    boolean present_batchQueueEmailSenders = true && (isSetBatchQueueEmailSenders());
+    list.add(present_batchQueueEmailSenders);
+    if (present_batchQueueEmailSenders)
+      list.add(batchQueueEmailSenders);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(SSHJobSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionInterfaceId()).compareTo(other.isSetJobSubmissionInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionInterfaceId, other.jobSubmissionInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceJobManager()).compareTo(other.isSetResourceJobManager());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceJobManager()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManager, other.resourceJobManager);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAlternativeSSHHostName()).compareTo(other.isSetAlternativeSSHHostName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAlternativeSSHHostName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.alternativeSSHHostName, other.alternativeSSHHostName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSshPort()).compareTo(other.isSetSshPort());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSshPort()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshPort, other.sshPort);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMonitorMode()).compareTo(other.isSetMonitorMode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMonitorMode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.monitorMode, other.monitorMode);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetBatchQueueEmailSenders()).compareTo(other.isSetBatchQueueEmailSenders());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetBatchQueueEmailSenders()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.batchQueueEmailSenders, other.batchQueueEmailSenders);
+      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("SSHJobSubmission(");
+    boolean first = true;
+
+    sb.append("jobSubmissionInterfaceId:");
+    if (this.jobSubmissionInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("resourceJobManager:");
+    if (this.resourceJobManager == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManager);
+    }
+    first = false;
+    if (isSetAlternativeSSHHostName()) {
+      if (!first) sb.append(", ");
+      sb.append("alternativeSSHHostName:");
+      if (this.alternativeSSHHostName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.alternativeSSHHostName);
+      }
+      first = false;
+    }
+    if (isSetSshPort()) {
+      if (!first) sb.append(", ");
+      sb.append("sshPort:");
+      sb.append(this.sshPort);
+      first = false;
+    }
+    if (isSetMonitorMode()) {
+      if (!first) sb.append(", ");
+      sb.append("monitorMode:");
+      if (this.monitorMode == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.monitorMode);
+      }
+      first = false;
+    }
+    if (isSetBatchQueueEmailSenders()) {
+      if (!first) sb.append(", ");
+      sb.append("batchQueueEmailSenders:");
+      if (this.batchQueueEmailSenders == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.batchQueueEmailSenders);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (jobSubmissionInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionInterfaceId' was not present! Struct: " + toString());
+    }
+    if (securityProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' was not present! Struct: " + toString());
+    }
+    if (resourceJobManager == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManager' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (resourceJobManager != null) {
+      resourceJobManager.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 SSHJobSubmissionStandardSchemeFactory implements SchemeFactory {
+    public SSHJobSubmissionStandardScheme getScheme() {
+      return new SSHJobSubmissionStandardScheme();
+    }
+  }
+
+  private static class SSHJobSubmissionStandardScheme extends StandardScheme<SSHJobSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_SUBMISSION_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionInterfaceId = iprot.readString();
+              struct.setJobSubmissionInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // RESOURCE_JOB_MANAGER
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.resourceJobManager = new ResourceJobManager();
+              struct.resourceJobManager.read(iprot);
+              struct.setResourceJobManagerIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // ALTERNATIVE_SSHHOST_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.alternativeSSHHostName = iprot.readString();
+              struct.setAlternativeSSHHostNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // SSH_PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.sshPort = iprot.readI32();
+              struct.setSshPortIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // MONITOR_MODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
+              struct.setMonitorModeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // BATCH_QUEUE_EMAIL_SENDERS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list10 = iprot.readListBegin();
+                struct.batchQueueEmailSenders = new ArrayList<String>(_list10.size);
+                String _elem11;
+                for (int _i12 = 0; _i12 < _list10.size; ++_i12)
+                {
+                  _elem11 = iprot.readString();
+                  struct.batchQueueEmailSenders.add(_elem11);
+                }
+                iprot.readListEnd();
+              }
+              struct.setBatchQueueEmailSendersIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionInterfaceId != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.resourceJobManager != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
+        struct.resourceJobManager.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      if (struct.alternativeSSHHostName != null) {
+        if (struct.isSetAlternativeSSHHostName()) {
+          oprot.writeFieldBegin(ALTERNATIVE_SSHHOST_NAME_FIELD_DESC);
+          oprot.writeString(struct.alternativeSSHHostName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetSshPort()) {
+        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
+        oprot.writeI32(struct.sshPort);
+        oprot.writeFieldEnd();
+      }
+      if (struct.monitorMode != null) {
+        if (struct.isSetMonitorMode()) {
+          oprot.writeFieldBegin(MONITOR_MODE_FIELD_DESC);
+          oprot.writeI32(struct.monitorMode.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.batchQueueEmailSenders != null) {
+        if (struct.isSetBatchQueueEmailSenders()) {
+          oprot.writeFieldBegin(BATCH_QUEUE_EMAIL_SENDERS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.batchQueueEmailSenders.size()));
+            for (String _iter13 : struct.batchQueueEmailSenders)
+            {
+              oprot.writeString(_iter13);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class SSHJobSubmissionTupleSchemeFactory implements SchemeFactory {
+    public SSHJobSubmissionTupleScheme getScheme() {
+      return new SSHJobSubmissionTupleScheme();
+    }
+  }
+
+  private static class SSHJobSubmissionTupleScheme extends TupleScheme<SSHJobSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionInterfaceId);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      struct.resourceJobManager.write(oprot);
+      BitSet optionals = new BitSet();
+      if (struct.isSetAlternativeSSHHostName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetSshPort()) {
+        optionals.set(1);
+      }
+      if (struct.isSetMonitorMode()) {
+        optionals.set(2);
+      }
+      if (struct.isSetBatchQueueEmailSenders()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
+      if (struct.isSetAlternativeSSHHostName()) {
+        oprot.writeString(struct.alternativeSSHHostName);
+      }
+      if (struct.isSetSshPort()) {
+        oprot.writeI32(struct.sshPort);
+      }
+      if (struct.isSetMonitorMode()) {
+        oprot.writeI32(struct.monitorMode.getValue());
+      }
+      if (struct.isSetBatchQueueEmailSenders()) {
+        {
+          oprot.writeI32(struct.batchQueueEmailSenders.size());
+          for (String _iter14 : struct.batchQueueEmailSenders)
+          {
+            oprot.writeString(_iter14);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, SSHJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionInterfaceId = iprot.readString();
+      struct.setJobSubmissionInterfaceIdIsSet(true);
+      struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      struct.resourceJobManager = new ResourceJobManager();
+      struct.resourceJobManager.read(iprot);
+      struct.setResourceJobManagerIsSet(true);
+      BitSet incoming = iprot.readBitSet(4);
+      if (incoming.get(0)) {
+        struct.alternativeSSHHostName = iprot.readString();
+        struct.setAlternativeSSHHostNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.sshPort = iprot.readI32();
+        struct.setSshPortIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
+        struct.setMonitorModeIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list15 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.batchQueueEmailSenders = new ArrayList<String>(_list15.size);
+          String _elem16;
+          for (int _i17 = 0; _i17 < _list15.size; ++_i17)
+          {
+            _elem16 = iprot.readString();
+            struct.batchQueueEmailSenders.add(_elem16);
+          }
+        }
+        struct.setBatchQueueEmailSendersIsSet(true);
+      }
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileCollectionModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileCollectionModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileCollectionModel.java
new file mode 100644
index 0000000..851fe68
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileCollectionModel.java
@@ -0,0 +1,1247 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
+public class FileCollectionModel implements org.apache.thrift.TBase<FileCollectionModel, FileCollectionModel._Fields>, java.io.Serializable, Cloneable, Comparable<FileCollectionModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("FileCollectionModel");
+
+  private static final org.apache.thrift.protocol.TField COLLECTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("collectionId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField SHARED_USERS_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedUsers", org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField SHARED_PUBLIC_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedPublic", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField COLLECTION_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("collectionName", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField COLLECTION_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("collectionDescription", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField FILE_ID_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("fileIdList", org.apache.thrift.protocol.TType.LIST, (short)8);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new FileCollectionModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new FileCollectionModelTupleSchemeFactory());
+  }
+
+  private String collectionId; // optional
+  private String gatewayId; // optional
+  private String username; // optional
+  private List<String> sharedUsers; // optional
+  private boolean sharedPublic; // optional
+  private String collectionName; // optional
+  private String collectionDescription; // optional
+  private List<String> fileIdList; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    COLLECTION_ID((short)1, "collectionId"),
+    GATEWAY_ID((short)2, "gatewayId"),
+    USERNAME((short)3, "username"),
+    SHARED_USERS((short)4, "sharedUsers"),
+    SHARED_PUBLIC((short)5, "sharedPublic"),
+    COLLECTION_NAME((short)6, "collectionName"),
+    COLLECTION_DESCRIPTION((short)7, "collectionDescription"),
+    FILE_ID_LIST((short)8, "fileIdList");
+
+    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: // COLLECTION_ID
+          return COLLECTION_ID;
+        case 2: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 3: // USERNAME
+          return USERNAME;
+        case 4: // SHARED_USERS
+          return SHARED_USERS;
+        case 5: // SHARED_PUBLIC
+          return SHARED_PUBLIC;
+        case 6: // COLLECTION_NAME
+          return COLLECTION_NAME;
+        case 7: // COLLECTION_DESCRIPTION
+          return COLLECTION_DESCRIPTION;
+        case 8: // FILE_ID_LIST
+          return FILE_ID_LIST;
+        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 __SHAREDPUBLIC_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.COLLECTION_ID,_Fields.GATEWAY_ID,_Fields.USERNAME,_Fields.SHARED_USERS,_Fields.SHARED_PUBLIC,_Fields.COLLECTION_NAME,_Fields.COLLECTION_DESCRIPTION,_Fields.FILE_ID_LIST};
+  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.COLLECTION_ID, new org.apache.thrift.meta_data.FieldMetaData("collectionId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SHARED_USERS, new org.apache.thrift.meta_data.FieldMetaData("sharedUsers", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.SHARED_PUBLIC, new org.apache.thrift.meta_data.FieldMetaData("sharedPublic", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.COLLECTION_NAME, new org.apache.thrift.meta_data.FieldMetaData("collectionName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.COLLECTION_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("collectionDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_ID_LIST, new org.apache.thrift.meta_data.FieldMetaData("fileIdList", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(FileCollectionModel.class, metaDataMap);
+  }
+
+  public FileCollectionModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public FileCollectionModel(FileCollectionModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetCollectionId()) {
+      this.collectionId = other.collectionId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetUsername()) {
+      this.username = other.username;
+    }
+    if (other.isSetSharedUsers()) {
+      List<String> __this__sharedUsers = new ArrayList<String>(other.sharedUsers);
+      this.sharedUsers = __this__sharedUsers;
+    }
+    this.sharedPublic = other.sharedPublic;
+    if (other.isSetCollectionName()) {
+      this.collectionName = other.collectionName;
+    }
+    if (other.isSetCollectionDescription()) {
+      this.collectionDescription = other.collectionDescription;
+    }
+    if (other.isSetFileIdList()) {
+      List<String> __this__fileIdList = new ArrayList<String>(other.fileIdList);
+      this.fileIdList = __this__fileIdList;
+    }
+  }
+
+  public FileCollectionModel deepCopy() {
+    return new FileCollectionModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.collectionId = null;
+    this.gatewayId = null;
+    this.username = null;
+    this.sharedUsers = null;
+    setSharedPublicIsSet(false);
+    this.sharedPublic = false;
+    this.collectionName = null;
+    this.collectionDescription = null;
+    this.fileIdList = null;
+  }
+
+  public String getCollectionId() {
+    return this.collectionId;
+  }
+
+  public void setCollectionId(String collectionId) {
+    this.collectionId = collectionId;
+  }
+
+  public void unsetCollectionId() {
+    this.collectionId = null;
+  }
+
+  /** Returns true if field collectionId is set (has been assigned a value) and false otherwise */
+  public boolean isSetCollectionId() {
+    return this.collectionId != null;
+  }
+
+  public void setCollectionIdIsSet(boolean value) {
+    if (!value) {
+      this.collectionId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public void setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public String getUsername() {
+    return this.username;
+  }
+
+  public void setUsername(String username) {
+    this.username = username;
+  }
+
+  public void unsetUsername() {
+    this.username = null;
+  }
+
+  /** Returns true if field username is set (has been assigned a value) and false otherwise */
+  public boolean isSetUsername() {
+    return this.username != null;
+  }
+
+  public void setUsernameIsSet(boolean value) {
+    if (!value) {
+      this.username = null;
+    }
+  }
+
+  public int getSharedUsersSize() {
+    return (this.sharedUsers == null) ? 0 : this.sharedUsers.size();
+  }
+
+  public java.util.Iterator<String> getSharedUsersIterator() {
+    return (this.sharedUsers == null) ? null : this.sharedUsers.iterator();
+  }
+
+  public void addToSharedUsers(String elem) {
+    if (this.sharedUsers == null) {
+      this.sharedUsers = new ArrayList<String>();
+    }
+    this.sharedUsers.add(elem);
+  }
+
+  public List<String> getSharedUsers() {
+    return this.sharedUsers;
+  }
+
+  public void setSharedUsers(List<String> sharedUsers) {
+    this.sharedUsers = sharedUsers;
+  }
+
+  public void unsetSharedUsers() {
+    this.sharedUsers = null;
+  }
+
+  /** Returns true if field sharedUsers is set (has been assigned a value) and false otherwise */
+  public boolean isSetSharedUsers() {
+    return this.sharedUsers != null;
+  }
+
+  public void setSharedUsersIsSet(boolean value) {
+    if (!value) {
+      this.sharedUsers = null;
+    }
+  }
+
+  public boolean isSharedPublic() {
+    return this.sharedPublic;
+  }
+
+  public void setSharedPublic(boolean sharedPublic) {
+    this.sharedPublic = sharedPublic;
+    setSharedPublicIsSet(true);
+  }
+
+  public void unsetSharedPublic() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
+  }
+
+  /** Returns true if field sharedPublic is set (has been assigned a value) and false otherwise */
+  public boolean isSetSharedPublic() {
+    return EncodingUtils.testBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
+  }
+
+  public void setSharedPublicIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID, value);
+  }
+
+  public String getCollectionName() {
+    return this.collectionName;
+  }
+
+  public void setCollectionName(String collectionName) {
+    this.collectionName = collectionName;
+  }
+
+  public void unsetCollectionName() {
+    this.collectionName = null;
+  }
+
+  /** Returns true if field collectionName is set (has been assigned a value) and false otherwise */
+  public boolean isSetCollectionName() {
+    return this.collectionName != null;
+  }
+
+  public void setCollectionNameIsSet(boolean value) {
+    if (!value) {
+      this.collectionName = null;
+    }
+  }
+
+  public String getCollectionDescription() {
+    return this.collectionDescription;
+  }
+
+  public void setCollectionDescription(String collectionDescription) {
+    this.collectionDescription = collectionDescription;
+  }
+
+  public void unsetCollectionDescription() {
+    this.collectionDescription = null;
+  }
+
+  /** Returns true if field collectionDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetCollectionDescription() {
+    return this.collectionDescription != null;
+  }
+
+  public void setCollectionDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.collectionDescription = null;
+    }
+  }
+
+  public int getFileIdListSize() {
+    return (this.fileIdList == null) ? 0 : this.fileIdList.size();
+  }
+
+  public java.util.Iterator<String> getFileIdListIterator() {
+    return (this.fileIdList == null) ? null : this.fileIdList.iterator();
+  }
+
+  public void addToFileIdList(String elem) {
+    if (this.fileIdList == null) {
+      this.fileIdList = new ArrayList<String>();
+    }
+    this.fileIdList.add(elem);
+  }
+
+  public List<String> getFileIdList() {
+    return this.fileIdList;
+  }
+
+  public void setFileIdList(List<String> fileIdList) {
+    this.fileIdList = fileIdList;
+  }
+
+  public void unsetFileIdList() {
+    this.fileIdList = null;
+  }
+
+  /** Returns true if field fileIdList is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileIdList() {
+    return this.fileIdList != null;
+  }
+
+  public void setFileIdListIsSet(boolean value) {
+    if (!value) {
+      this.fileIdList = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case COLLECTION_ID:
+      if (value == null) {
+        unsetCollectionId();
+      } else {
+        setCollectionId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case USERNAME:
+      if (value == null) {
+        unsetUsername();
+      } else {
+        setUsername((String)value);
+      }
+      break;
+
+    case SHARED_USERS:
+      if (value == null) {
+        unsetSharedUsers();
+      } else {
+        setSharedUsers((List<String>)value);
+      }
+      break;
+
+    case SHARED_PUBLIC:
+      if (value == null) {
+        unsetSharedPublic();
+      } else {
+        setSharedPublic((Boolean)value);
+      }
+      break;
+
+    case COLLECTION_NAME:
+      if (value == null) {
+        unsetCollectionName();
+      } else {
+        setCollectionName((String)value);
+      }
+      break;
+
+    case COLLECTION_DESCRIPTION:
+      if (value == null) {
+        unsetCollectionDescription();
+      } else {
+        setCollectionDescription((String)value);
+      }
+      break;
+
+    case FILE_ID_LIST:
+      if (value == null) {
+        unsetFileIdList();
+      } else {
+        setFileIdList((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case COLLECTION_ID:
+      return getCollectionId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case USERNAME:
+      return getUsername();
+
+    case SHARED_USERS:
+      return getSharedUsers();
+
+    case SHARED_PUBLIC:
+      return isSharedPublic();
+
+    case COLLECTION_NAME:
+      return getCollectionName();
+
+    case COLLECTION_DESCRIPTION:
+      return getCollectionDescription();
+
+    case FILE_ID_LIST:
+      return getFileIdList();
+
+    }
+    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 COLLECTION_ID:
+      return isSetCollectionId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    case USERNAME:
+      return isSetUsername();
+    case SHARED_USERS:
+      return isSetSharedUsers();
+    case SHARED_PUBLIC:
+      return isSetSharedPublic();
+    case COLLECTION_NAME:
+      return isSetCollectionName();
+    case COLLECTION_DESCRIPTION:
+      return isSetCollectionDescription();
+    case FILE_ID_LIST:
+      return isSetFileIdList();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof FileCollectionModel)
+      return this.equals((FileCollectionModel)that);
+    return false;
+  }
+
+  public boolean equals(FileCollectionModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_collectionId = true && this.isSetCollectionId();
+    boolean that_present_collectionId = true && that.isSetCollectionId();
+    if (this_present_collectionId || that_present_collectionId) {
+      if (!(this_present_collectionId && that_present_collectionId))
+        return false;
+      if (!this.collectionId.equals(that.collectionId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_username = true && this.isSetUsername();
+    boolean that_present_username = true && that.isSetUsername();
+    if (this_present_username || that_present_username) {
+      if (!(this_present_username && that_present_username))
+        return false;
+      if (!this.username.equals(that.username))
+        return false;
+    }
+
+    boolean this_present_sharedUsers = true && this.isSetSharedUsers();
+    boolean that_present_sharedUsers = true && that.isSetSharedUsers();
+    if (this_present_sharedUsers || that_present_sharedUsers) {
+      if (!(this_present_sharedUsers && that_present_sharedUsers))
+        return false;
+      if (!this.sharedUsers.equals(that.sharedUsers))
+        return false;
+    }
+
+    boolean this_present_sharedPublic = true && this.isSetSharedPublic();
+    boolean that_present_sharedPublic = true && that.isSetSharedPublic();
+    if (this_present_sharedPublic || that_present_sharedPublic) {
+      if (!(this_present_sharedPublic && that_present_sharedPublic))
+        return false;
+      if (this.sharedPublic != that.sharedPublic)
+        return false;
+    }
+
+    boolean this_present_collectionName = true && this.isSetCollectionName();
+    boolean that_present_collectionName = true && that.isSetCollectionName();
+    if (this_present_collectionName || that_present_collectionName) {
+      if (!(this_present_collectionName && that_present_collectionName))
+        return false;
+      if (!this.collectionName.equals(that.collectionName))
+        return false;
+    }
+
+    boolean this_present_collectionDescription = true && this.isSetCollectionDescription();
+    boolean that_present_collectionDescription = true && that.isSetCollectionDescription();
+    if (this_present_collectionDescription || that_present_collectionDescription) {
+      if (!(this_present_collectionDescription && that_present_collectionDescription))
+        return false;
+      if (!this.collectionDescription.equals(that.collectionDescription))
+        return false;
+    }
+
+    boolean this_present_fileIdList = true && this.isSetFileIdList();
+    boolean that_present_fileIdList = true && that.isSetFileIdList();
+    if (this_present_fileIdList || that_present_fileIdList) {
+      if (!(this_present_fileIdList && that_present_fileIdList))
+        return false;
+      if (!this.fileIdList.equals(that.fileIdList))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_collectionId = true && (isSetCollectionId());
+    list.add(present_collectionId);
+    if (present_collectionId)
+      list.add(collectionId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_username = true && (isSetUsername());
+    list.add(present_username);
+    if (present_username)
+      list.add(username);
+
+    boolean present_sharedUsers = true && (isSetSharedUsers());
+    list.add(present_sharedUsers);
+    if (present_sharedUsers)
+      list.add(sharedUsers);
+
+    boolean present_sharedPublic = true && (isSetSharedPublic());
+    list.add(present_sharedPublic);
+    if (present_sharedPublic)
+      list.add(sharedPublic);
+
+    boolean present_collectionName = true && (isSetCollectionName());
+    list.add(present_collectionName);
+    if (present_collectionName)
+      list.add(collectionName);
+
+    boolean present_collectionDescription = true && (isSetCollectionDescription());
+    list.add(present_collectionDescription);
+    if (present_collectionDescription)
+      list.add(collectionDescription);
+
+    boolean present_fileIdList = true && (isSetFileIdList());
+    list.add(present_fileIdList);
+    if (present_fileIdList)
+      list.add(fileIdList);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(FileCollectionModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetCollectionId()).compareTo(other.isSetCollectionId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCollectionId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.collectionId, other.collectionId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUsername()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSharedUsers()).compareTo(other.isSetSharedUsers());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSharedUsers()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedUsers, other.sharedUsers);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSharedPublic()).compareTo(other.isSetSharedPublic());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSharedPublic()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedPublic, other.sharedPublic);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCollectionName()).compareTo(other.isSetCollectionName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCollectionName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.collectionName, other.collectionName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCollectionDescription()).compareTo(other.isSetCollectionDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCollectionDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.collectionDescription, other.collectionDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileIdList()).compareTo(other.isSetFileIdList());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileIdList()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileIdList, other.fileIdList);
+      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("FileCollectionModel(");
+    boolean first = true;
+
+    if (isSetCollectionId()) {
+      sb.append("collectionId:");
+      if (this.collectionId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.collectionId);
+      }
+      first = false;
+    }
+    if (isSetGatewayId()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
+    }
+    if (isSetUsername()) {
+      if (!first) sb.append(", ");
+      sb.append("username:");
+      if (this.username == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.username);
+      }
+      first = false;
+    }
+    if (isSetSharedUsers()) {
+      if (!first) sb.append(", ");
+      sb.append("sharedUsers:");
+      if (this.sharedUsers == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.sharedUsers);
+      }
+      first = false;
+    }
+    if (isSetSharedPublic()) {
+      if (!first) sb.append(", ");
+      sb.append("sharedPublic:");
+      sb.append(this.sharedPublic);
+      first = false;
+    }
+    if (isSetCollectionName()) {
+      if (!first) sb.append(", ");
+      sb.append("collectionName:");
+      if (this.collectionName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.collectionName);
+      }
+      first = false;
+    }
+    if (isSetCollectionDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("collectionDescription:");
+      if (this.collectionDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.collectionDescription);
+      }
+      first = false;
+    }
+    if (isSetFileIdList()) {
+      if (!first) sb.append(", ");
+      sb.append("fileIdList:");
+      if (this.fileIdList == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileIdList);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 FileCollectionModelStandardSchemeFactory implements SchemeFactory {
+    public FileCollectionModelStandardScheme getScheme() {
+      return new FileCollectionModelStandardScheme();
+    }
+  }
+
+  private static class FileCollectionModelStandardScheme extends StandardScheme<FileCollectionModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, FileCollectionModel 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: // COLLECTION_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.collectionId = iprot.readString();
+              struct.setCollectionIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // USERNAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.username = iprot.readString();
+              struct.setUsernameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // SHARED_USERS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.sharedUsers = new ArrayList<String>(_list0.size);
+                String _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = iprot.readString();
+                  struct.sharedUsers.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setSharedUsersIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // SHARED_PUBLIC
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.sharedPublic = iprot.readBool();
+              struct.setSharedPublicIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // COLLECTION_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.collectionName = iprot.readString();
+              struct.setCollectionNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // COLLECTION_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.collectionDescription = iprot.readString();
+              struct.setCollectionDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // FILE_ID_LIST
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.fileIdList = new ArrayList<String>(_list3.size);
+                String _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = iprot.readString();
+                  struct.fileIdList.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
+              struct.setFileIdListIsSet(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, FileCollectionModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.collectionId != null) {
+        if (struct.isSetCollectionId()) {
+          oprot.writeFieldBegin(COLLECTION_ID_FIELD_DESC);
+          oprot.writeString(struct.collectionId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.gatewayId != null) {
+        if (struct.isSetGatewayId()) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.username != null) {
+        if (struct.isSetUsername()) {
+          oprot.writeFieldBegin(USERNAME_FIELD_DESC);
+          oprot.writeString(struct.username);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.sharedUsers != null) {
+        if (struct.isSetSharedUsers()) {
+          oprot.writeFieldBegin(SHARED_USERS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.sharedUsers.size()));
+            for (String _iter6 : struct.sharedUsers)
+            {
+              oprot.writeString(_iter6);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetSharedPublic()) {
+        oprot.writeFieldBegin(SHARED_PUBLIC_FIELD_DESC);
+        oprot.writeBool(struct.sharedPublic);
+        oprot.writeFieldEnd();
+      }
+      if (struct.collectionName != null) {
+        if (struct.isSetCollectionName()) {
+          oprot.writeFieldBegin(COLLECTION_NAME_FIELD_DESC);
+          oprot.writeString(struct.collectionName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.collectionDescription != null) {
+        if (struct.isSetCollectionDescription()) {
+          oprot.writeFieldBegin(COLLECTION_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.collectionDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.fileIdList != null) {
+        if (struct.isSetFileIdList()) {
+          oprot.writeFieldBegin(FILE_ID_LIST_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.fileIdList.size()));
+            for (String _iter7 : struct.fileIdList)
+            {
+              oprot.writeString(_iter7);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class FileCollectionModelTupleSchemeFactory implements SchemeFactory {
+    public FileCollectionModelTupleScheme getScheme() {
+      return new FileCollectionModelTupleScheme();
+    }
+  }
+
+  private static class FileCollectionModelTupleScheme extends TupleScheme<FileCollectionModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, FileCollectionModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetCollectionId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetGatewayId()) {
+        optionals.set(1);
+      }
+      if (struct.isSetUsername()) {
+        optionals.set(2);
+      }
+      if (struct.isSetSharedUsers()) {
+        optionals.set(3);
+      }
+      if (struct.isSetSharedPublic()) {
+        optionals.set(4);
+      }
+      if (struct.isSetCollectionName()) {
+        optionals.set(5);
+      }
+      if (struct.isSetCollectionDescription()) {
+        optionals.set(6);
+      }
+      if (struct.isSetFileIdList()) {
+        optionals.set(7);
+      }
+      oprot.writeBitSet(optionals, 8);
+      if (struct.isSetCollectionId()) {
+        oprot.writeString(struct.collectionId);
+      }
+      if (struct.isSetGatewayId()) {
+        oprot.writeString(struct.gatewayId);
+      }
+      if (struct.isSetUsername()) {
+        oprot.writeString(struct.username);
+      }
+      if (struct.isSetSharedUsers()) {
+        {
+          oprot.writeI32(struct.sharedUsers.size());
+          for (String _iter8 : struct.sharedUsers)
+          {
+            oprot.writeString(_iter8);
+          }
+        }
+      }
+      if (struct.isSetSharedPublic()) {
+        oprot.writeBool(struct.sharedPublic);
+      }
+      if (struct.isSetCollectionName()) {
+        oprot.writeString(struct.collectionName);
+      }
+      if (struct.isSetCollectionDescription()) {
+        oprot.writeString(struct.collectionDescription);
+      }
+      if (struct.isSetFileIdList()) {
+        {
+          oprot.writeI32(struct.fileIdList.size());
+          for (String _iter9 : struct.fileIdList)
+          {
+            oprot.writeString(_iter9);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, FileCollectionModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(8);
+      if (incoming.get(0)) {
+        struct.collectionId = iprot.readString();
+        struct.setCollectionIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.username = iprot.readString();
+        struct.setUsernameIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.sharedUsers = new ArrayList<String>(_list10.size);
+          String _elem11;
+          for (int _i12 = 0; _i12 < _list10.size; ++_i12)
+          {
+            _elem11 = iprot.readString();
+            struct.sharedUsers.add(_elem11);
+          }
+        }
+        struct.setSharedUsersIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.sharedPublic = iprot.readBool();
+        struct.setSharedPublicIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.collectionName = iprot.readString();
+        struct.setCollectionNameIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.collectionDescription = iprot.readString();
+        struct.setCollectionDescriptionIsSet(true);
+      }
+      if (incoming.get(7)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.fileIdList = new ArrayList<String>(_list13.size);
+          String _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+          {
+            _elem14 = iprot.readString();
+            struct.fileIdList.add(_elem14);
+          }
+        }
+        struct.setFileIdListIsSet(true);
+      }
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
new file mode 100644
index 0000000..fde8e55
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
@@ -0,0 +1,688 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField GLOBUS_GATE_KEEPER_END_POINT_FIELD_DESC = new org.apache.thrift.protocol.TField("globusGateKeeperEndPoint", org.apache.thrift.protocol.TType.LIST, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new GlobusJobSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GlobusJobSubmissionTupleSchemeFactory());
+  }
+
+  public String jobSubmissionInterfaceId; // required
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol; // required
+  public List<String> globusGateKeeperEndPoint; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_SUBMISSION_INTERFACE_ID((short)1, "jobSubmissionInterfaceId"),
+    /**
+     * 
+     * @see org.apache.airavata.model.data.movement.SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    GLOBUS_GATE_KEEPER_END_POINT((short)3, "globusGateKeeperEndPoint");
+
+    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: // JOB_SUBMISSION_INTERFACE_ID
+          return JOB_SUBMISSION_INTERFACE_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // GLOBUS_GATE_KEEPER_END_POINT
+          return GLOBUS_GATE_KEEPER_END_POINT;
+        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 _Fields optionals[] = {_Fields.GLOBUS_GATE_KEEPER_END_POINT};
+  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.JOB_SUBMISSION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.data.movement.SecurityProtocol.class)));
+    tmpMap.put(_Fields.GLOBUS_GATE_KEEPER_END_POINT, new org.apache.thrift.meta_data.FieldMetaData("globusGateKeeperEndPoint", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GlobusJobSubmission.class, metaDataMap);
+  }
+
+  public GlobusJobSubmission() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public GlobusJobSubmission(
+    String jobSubmissionInterfaceId,
+    org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol)
+  {
+    this();
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    this.securityProtocol = securityProtocol;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public GlobusJobSubmission(GlobusJobSubmission other) {
+    if (other.isSetJobSubmissionInterfaceId()) {
+      this.jobSubmissionInterfaceId = other.jobSubmissionInterfaceId;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetGlobusGateKeeperEndPoint()) {
+      List<String> __this__globusGateKeeperEndPoint = new ArrayList<String>(other.globusGateKeeperEndPoint);
+      this.globusGateKeeperEndPoint = __this__globusGateKeeperEndPoint;
+    }
+  }
+
+  public GlobusJobSubmission deepCopy() {
+    return new GlobusJobSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.globusGateKeeperEndPoint = null;
+  }
+
+  public String getJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId;
+  }
+
+  public GlobusJobSubmission setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    return this;
+  }
+
+  public void unsetJobSubmissionInterfaceId() {
+    this.jobSubmissionInterfaceId = null;
+  }
+
+  /** Returns true if field jobSubmissionInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId != null;
+  }
+
+  public void setJobSubmissionInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public GlobusJobSubmission setSecurityProtocol(org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+    return this;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public int getGlobusGateKeeperEndPointSize() {
+    return (this.globusGateKeeperEndPoint == null) ? 0 : this.globusGateKeeperEndPoint.size();
+  }
+
+  public java.util.Iterator<String> getGlobusGateKeeperEndPointIterator() {
+    return (this.globusGateKeeperEndPoint == null) ? null : this.globusGateKeeperEndPoint.iterator();
+  }
+
+  public void addToGlobusGateKeeperEndPoint(String elem) {
+    if (this.globusGateKeeperEndPoint == null) {
+      this.globusGateKeeperEndPoint = new ArrayList<String>();
+    }
+    this.globusGateKeeperEndPoint.add(elem);
+  }
+
+  public List<String> getGlobusGateKeeperEndPoint() {
+    return this.globusGateKeeperEndPoint;
+  }
+
+  public GlobusJobSubmission setGlobusGateKeeperEndPoint(List<String> globusGateKeeperEndPoint) {
+    this.globusGateKeeperEndPoint = globusGateKeeperEndPoint;
+    return this;
+  }
+
+  public void unsetGlobusGateKeeperEndPoint() {
+    this.globusGateKeeperEndPoint = null;
+  }
+
+  /** Returns true if field globusGateKeeperEndPoint is set (has been assigned a value) and false otherwise */
+  public boolean isSetGlobusGateKeeperEndPoint() {
+    return this.globusGateKeeperEndPoint != null;
+  }
+
+  public void setGlobusGateKeeperEndPointIsSet(boolean value) {
+    if (!value) {
+      this.globusGateKeeperEndPoint = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      if (value == null) {
+        unsetJobSubmissionInterfaceId();
+      } else {
+        setJobSubmissionInterfaceId((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((org.apache.airavata.model.data.movement.SecurityProtocol)value);
+      }
+      break;
+
+    case GLOBUS_GATE_KEEPER_END_POINT:
+      if (value == null) {
+        unsetGlobusGateKeeperEndPoint();
+      } else {
+        setGlobusGateKeeperEndPoint((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      return getJobSubmissionInterfaceId();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case GLOBUS_GATE_KEEPER_END_POINT:
+      return getGlobusGateKeeperEndPoint();
+
+    }
+    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 JOB_SUBMISSION_INTERFACE_ID:
+      return isSetJobSubmissionInterfaceId();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case GLOBUS_GATE_KEEPER_END_POINT:
+      return isSetGlobusGateKeeperEndPoint();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof GlobusJobSubmission)
+      return this.equals((GlobusJobSubmission)that);
+    return false;
+  }
+
+  public boolean equals(GlobusJobSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionInterfaceId = true && this.isSetJobSubmissionInterfaceId();
+    boolean that_present_jobSubmissionInterfaceId = true && that.isSetJobSubmissionInterfaceId();
+    if (this_present_jobSubmissionInterfaceId || that_present_jobSubmissionInterfaceId) {
+      if (!(this_present_jobSubmissionInterfaceId && that_present_jobSubmissionInterfaceId))
+        return false;
+      if (!this.jobSubmissionInterfaceId.equals(that.jobSubmissionInterfaceId))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_globusGateKeeperEndPoint = true && this.isSetGlobusGateKeeperEndPoint();
+    boolean that_present_globusGateKeeperEndPoint = true && that.isSetGlobusGateKeeperEndPoint();
+    if (this_present_globusGateKeeperEndPoint || that_present_globusGateKeeperEndPoint) {
+      if (!(this_present_globusGateKeeperEndPoint && that_present_globusGateKeeperEndPoint))
+        return false;
+      if (!this.globusGateKeeperEndPoint.equals(that.globusGateKeeperEndPoint))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_jobSubmissionInterfaceId = true && (isSetJobSubmissionInterfaceId());
+    list.add(present_jobSubmissionInterfaceId);
+    if (present_jobSubmissionInterfaceId)
+      list.add(jobSubmissionInterfaceId);
+
+    boolean present_securityProtocol = true && (isSetSecurityProtocol());
+    list.add(present_securityProtocol);
+    if (present_securityProtocol)
+      list.add(securityProtocol.getValue());
+
+    boolean present_globusGateKeeperEndPoint = true && (isSetGlobusGateKeeperEndPoint());
+    list.add(present_globusGateKeeperEndPoint);
+    if (present_globusGateKeeperEndPoint)
+      list.add(globusGateKeeperEndPoint);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(GlobusJobSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionInterfaceId()).compareTo(other.isSetJobSubmissionInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionInterfaceId, other.jobSubmissionInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGlobusGateKeeperEndPoint()).compareTo(other.isSetGlobusGateKeeperEndPoint());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGlobusGateKeeperEndPoint()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.globusGateKeeperEndPoint, other.globusGateKeeperEndPoint);
+      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("GlobusJobSubmission(");
+    boolean first = true;
+
+    sb.append("jobSubmissionInterfaceId:");
+    if (this.jobSubmissionInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (isSetGlobusGateKeeperEndPoint()) {
+      if (!first) sb.append(", ");
+      sb.append("globusGateKeeperEndPoint:");
+      if (this.globusGateKeeperEndPoint == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.globusGateKeeperEndPoint);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (jobSubmissionInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionInterfaceId' was not present! Struct: " + toString());
+    }
+    if (securityProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' was not present! 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 GlobusJobSubmissionStandardSchemeFactory implements SchemeFactory {
+    public GlobusJobSubmissionStandardScheme getScheme() {
+      return new GlobusJobSubmissionStandardScheme();
+    }
+  }
+
+  private static class GlobusJobSubmissionStandardScheme extends StandardScheme<GlobusJobSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, GlobusJobSubmission struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_SUBMISSION_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionInterfaceId = iprot.readString();
+              struct.setJobSubmissionInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // GLOBUS_GATE_KEEPER_END_POINT
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list18 = iprot.readListBegin();
+                struct.globusGateKeeperEndPoint = new ArrayList<String>(_list18.size);
+                String _elem19;
+                for (int _i20 = 0; _i20 < _list18.size; ++_i20)
+                {
+                  _elem19 = iprot.readString();
+                  struct.globusGateKeeperEndPoint.add(_elem19);
+                }
+                iprot.readListEnd();
+              }
+              struct.setGlobusGateKeeperEndPointIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, GlobusJobSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionInterfaceId != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.globusGateKeeperEndPoint != null) {
+        if (struct.isSetGlobusGateKeeperEndPoint()) {
+          oprot.writeFieldBegin(GLOBUS_GATE_KEEPER_END_POINT_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.globusGateKeeperEndPoint.size()));
+            for (String _iter21 : struct.globusGateKeeperEndPoint)
+            {
+              oprot.writeString(_iter21);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GlobusJobSubmissionTupleSchemeFactory implements SchemeFactory {
+    public GlobusJobSubmissionTupleScheme getScheme() {
+      return new GlobusJobSubmissionTupleScheme();
+    }
+  }
+
+  private static class GlobusJobSubmissionTupleScheme extends TupleScheme<GlobusJobSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, GlobusJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionInterfaceId);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetGlobusGateKeeperEndPoint()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetGlobusGateKeeperEndPoint()) {
+        {
+          oprot.writeI32(struct.globusGateKeeperEndPoint.size());
+          for (String _iter22 : struct.globusGateKeeperEndPoint)
+          {
+            oprot.writeString(_iter22);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, GlobusJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionInterfaceId = iprot.readString();
+      struct.setJobSubmissionInterfaceIdIsSet(true);
+      struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TList _list23 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.globusGateKeeperEndPoint = new ArrayList<String>(_list23.size);
+          String _elem24;
+          for (int _i25 = 0; _i25 < _list23.size; ++_i25)
+          {
+            _elem24 = iprot.readString();
+            struct.globusGateKeeperEndPoint.add(_elem24);
+          }
+        }
+        struct.setGlobusGateKeeperEndPointIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobManagerCommand.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobManagerCommand.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobManagerCommand.java
new file mode 100644
index 0000000..735ed22
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobManagerCommand.java
@@ -0,0 +1,102 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of resource job manager commands
+ * 
+ * SUBMISSION:
+ *  Ex: qsub, sbatch
+ * 
+ * JOBMONITORING:
+ *  Ex: qstat, squeue
+ * 
+ * DELETION:
+ *  Ex: qdel, scancel
+ * 
+ * CHECK_JOB:
+ *  Detailed Status about the Job. Ex: checkjob
+ * 
+ * SHOW_QUEUE:
+ *  List of Queued Job by the schedular. Ex: showq
+ * 
+ * SHOW_RESERVATION:
+ *  List all reservations. Ex:showres, show_res
+ * 
+ * SHOW_START:
+ *  Display the start time of the specified job. Ex: showstart
+ * 
+ */
+public enum JobManagerCommand implements org.apache.thrift.TEnum {
+  SUBMISSION(0),
+  JOB_MONITORING(1),
+  DELETION(2),
+  CHECK_JOB(3),
+  SHOW_QUEUE(4),
+  SHOW_RESERVATION(5),
+  SHOW_START(6);
+
+  private final int value;
+
+  private JobManagerCommand(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 JobManagerCommand findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return SUBMISSION;
+      case 1:
+        return JOB_MONITORING;
+      case 2:
+        return DELETION;
+      case 3:
+        return CHECK_JOB;
+      case 4:
+        return SHOW_QUEUE;
+      case 5:
+        return SHOW_RESERVATION;
+      case 6:
+        return SHOW_START;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
new file mode 100644
index 0000000..c9fd6cd
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@ -0,0 +1,637 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Job Submission Interfaces
+ * 
+ * jobSubmissionInterfaceId: The Job Submission Interface has to be previously registered and referenced here.
+ * 
+ * priorityOrder:
+ *  For resources with multiple interfaces, the priority order should be selected.
+ *   Lower the numerical number, higher the priority
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class JobSubmissionInterface implements org.apache.thrift.TBase<JobSubmissionInterface, JobSubmissionInterface._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionInterface> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionInterface");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField PRIORITY_ORDER_FIELD_DESC = new org.apache.thrift.protocol.TField("priorityOrder", org.apache.thrift.protocol.TType.I32, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobSubmissionInterfaceStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobSubmissionInterfaceTupleSchemeFactory());
+  }
+
+  public String jobSubmissionInterfaceId; // required
+  /**
+   * 
+   * @see JobSubmissionProtocol
+   */
+  public JobSubmissionProtocol jobSubmissionProtocol; // required
+  public int priorityOrder; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_SUBMISSION_INTERFACE_ID((short)1, "jobSubmissionInterfaceId"),
+    /**
+     * 
+     * @see JobSubmissionProtocol
+     */
+    JOB_SUBMISSION_PROTOCOL((short)2, "jobSubmissionProtocol"),
+    PRIORITY_ORDER((short)3, "priorityOrder");
+
+    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: // JOB_SUBMISSION_INTERFACE_ID
+          return JOB_SUBMISSION_INTERFACE_ID;
+        case 2: // JOB_SUBMISSION_PROTOCOL
+          return JOB_SUBMISSION_PROTOCOL;
+        case 3: // PRIORITY_ORDER
+          return PRIORITY_ORDER;
+        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 __PRIORITYORDER_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  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.JOB_SUBMISSION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.JOB_SUBMISSION_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, JobSubmissionProtocol.class)));
+    tmpMap.put(_Fields.PRIORITY_ORDER, new org.apache.thrift.meta_data.FieldMetaData("priorityOrder", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobSubmissionInterface.class, metaDataMap);
+  }
+
+  public JobSubmissionInterface() {
+    this.priorityOrder = 0;
+
+  }
+
+  public JobSubmissionInterface(
+    String jobSubmissionInterfaceId,
+    JobSubmissionProtocol jobSubmissionProtocol,
+    int priorityOrder)
+  {
+    this();
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    this.jobSubmissionProtocol = jobSubmissionProtocol;
+    this.priorityOrder = priorityOrder;
+    setPriorityOrderIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobSubmissionInterface(JobSubmissionInterface other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetJobSubmissionInterfaceId()) {
+      this.jobSubmissionInterfaceId = other.jobSubmissionInterfaceId;
+    }
+    if (other.isSetJobSubmissionProtocol()) {
+      this.jobSubmissionProtocol = other.jobSubmissionProtocol;
+    }
+    this.priorityOrder = other.priorityOrder;
+  }
+
+  public JobSubmissionInterface deepCopy() {
+    return new JobSubmissionInterface(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionInterfaceId = null;
+    this.jobSubmissionProtocol = null;
+    this.priorityOrder = 0;
+
+  }
+
+  public String getJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId;
+  }
+
+  public JobSubmissionInterface setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    return this;
+  }
+
+  public void unsetJobSubmissionInterfaceId() {
+    this.jobSubmissionInterfaceId = null;
+  }
+
+  /** Returns true if field jobSubmissionInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId != null;
+  }
+
+  public void setJobSubmissionInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see JobSubmissionProtocol
+   */
+  public JobSubmissionProtocol getJobSubmissionProtocol() {
+    return this.jobSubmissionProtocol;
+  }
+
+  /**
+   * 
+   * @see JobSubmissionProtocol
+   */
+  public JobSubmissionInterface setJobSubmissionProtocol(JobSubmissionProtocol jobSubmissionProtocol) {
+    this.jobSubmissionProtocol = jobSubmissionProtocol;
+    return this;
+  }
+
+  public void unsetJobSubmissionProtocol() {
+    this.jobSubmissionProtocol = null;
+  }
+
+  /** Returns true if field jobSubmissionProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionProtocol() {
+    return this.jobSubmissionProtocol != null;
+  }
+
+  public void setJobSubmissionProtocolIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionProtocol = null;
+    }
+  }
+
+  public int getPriorityOrder() {
+    return this.priorityOrder;
+  }
+
+  public JobSubmissionInterface setPriorityOrder(int priorityOrder) {
+    this.priorityOrder = priorityOrder;
+    setPriorityOrderIsSet(true);
+    return this;
+  }
+
+  public void unsetPriorityOrder() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PRIORITYORDER_ISSET_ID);
+  }
+
+  /** Returns true if field priorityOrder is set (has been assigned a value) and false otherwise */
+  public boolean isSetPriorityOrder() {
+    return EncodingUtils.testBit(__isset_bitfield, __PRIORITYORDER_ISSET_ID);
+  }
+
+  public void setPriorityOrderIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PRIORITYORDER_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      if (value == null) {
+        unsetJobSubmissionInterfaceId();
+      } else {
+        setJobSubmissionInterfaceId((String)value);
+      }
+      break;
+
+    case JOB_SUBMISSION_PROTOCOL:
+      if (value == null) {
+        unsetJobSubmissionProtocol();
+      } else {
+        setJobSubmissionProtocol((JobSubmissionProtocol)value);
+      }
+      break;
+
+    case PRIORITY_ORDER:
+      if (value == null) {
+        unsetPriorityOrder();
+      } else {
+        setPriorityOrder((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      return getJobSubmissionInterfaceId();
+
+    case JOB_SUBMISSION_PROTOCOL:
+      return getJobSubmissionProtocol();
+
+    case PRIORITY_ORDER:
+      return Integer.valueOf(getPriorityOrder());
+
+    }
+    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 JOB_SUBMISSION_INTERFACE_ID:
+      return isSetJobSubmissionInterfaceId();
+    case JOB_SUBMISSION_PROTOCOL:
+      return isSetJobSubmissionProtocol();
+    case PRIORITY_ORDER:
+      return isSetPriorityOrder();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobSubmissionInterface)
+      return this.equals((JobSubmissionInterface)that);
+    return false;
+  }
+
+  public boolean equals(JobSubmissionInterface that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionInterfaceId = true && this.isSetJobSubmissionInterfaceId();
+    boolean that_present_jobSubmissionInterfaceId = true && that.isSetJobSubmissionInterfaceId();
+    if (this_present_jobSubmissionInterfaceId || that_present_jobSubmissionInterfaceId) {
+      if (!(this_present_jobSubmissionInterfaceId && that_present_jobSubmissionInterfaceId))
+        return false;
+      if (!this.jobSubmissionInterfaceId.equals(that.jobSubmissionInterfaceId))
+        return false;
+    }
+
+    boolean this_present_jobSubmissionProtocol = true && this.isSetJobSubmissionProtocol();
+    boolean that_present_jobSubmissionProtocol = true && that.isSetJobSubmissionProtocol();
+    if (this_present_jobSubmissionProtocol || that_present_jobSubmissionProtocol) {
+      if (!(this_present_jobSubmissionProtocol && that_present_jobSubmissionProtocol))
+        return false;
+      if (!this.jobSubmissionProtocol.equals(that.jobSubmissionProtocol))
+        return false;
+    }
+
+    boolean this_present_priorityOrder = true;
+    boolean that_present_priorityOrder = true;
+    if (this_present_priorityOrder || that_present_priorityOrder) {
+      if (!(this_present_priorityOrder && that_present_priorityOrder))
+        return false;
+      if (this.priorityOrder != that.priorityOrder)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_jobSubmissionInterfaceId = true && (isSetJobSubmissionInterfaceId());
+    list.add(present_jobSubmissionInterfaceId);
+    if (present_jobSubmissionInterfaceId)
+      list.add(jobSubmissionInterfaceId);
+
+    boolean present_jobSubmissionProtocol = true && (isSetJobSubmissionProtocol());
+    list.add(present_jobSubmissionProtocol);
+    if (present_jobSubmissionProtocol)
+      list.add(jobSubmissionProtocol.getValue());
+
+    boolean present_priorityOrder = true;
+    list.add(present_priorityOrder);
+    if (present_priorityOrder)
+      list.add(priorityOrder);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobSubmissionInterface other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionInterfaceId()).compareTo(other.isSetJobSubmissionInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionInterfaceId, other.jobSubmissionInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobSubmissionProtocol()).compareTo(other.isSetJobSubmissionProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionProtocol, other.jobSubmissionProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPriorityOrder()).compareTo(other.isSetPriorityOrder());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPriorityOrder()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.priorityOrder, other.priorityOrder);
+      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("JobSubmissionInterface(");
+    boolean first = true;
+
+    sb.append("jobSubmissionInterfaceId:");
+    if (this.jobSubmissionInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("jobSubmissionProtocol:");
+    if (this.jobSubmissionProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("priorityOrder:");
+    sb.append(this.priorityOrder);
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (jobSubmissionInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionInterfaceId' was not present! Struct: " + toString());
+    }
+    if (jobSubmissionProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionProtocol' was not present! Struct: " + toString());
+    }
+    // alas, we cannot check 'priorityOrder' because it's a primitive and you chose the non-beans generator.
+    // 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 JobSubmissionInterfaceStandardSchemeFactory implements SchemeFactory {
+    public JobSubmissionInterfaceStandardScheme getScheme() {
+      return new JobSubmissionInterfaceStandardScheme();
+    }
+  }
+
+  private static class JobSubmissionInterfaceStandardScheme extends StandardScheme<JobSubmissionInterface> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobSubmissionInterface struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_SUBMISSION_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionInterfaceId = iprot.readString();
+              struct.setJobSubmissionInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // JOB_SUBMISSION_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.jobSubmissionProtocol = org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.findByValue(iprot.readI32());
+              struct.setJobSubmissionProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // PRIORITY_ORDER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.priorityOrder = iprot.readI32();
+              struct.setPriorityOrderIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetPriorityOrder()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'priorityOrder' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, JobSubmissionInterface struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionInterfaceId != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.jobSubmissionProtocol != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.jobSubmissionProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(PRIORITY_ORDER_FIELD_DESC);
+      oprot.writeI32(struct.priorityOrder);
+      oprot.writeFieldEnd();
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobSubmissionInterfaceTupleSchemeFactory implements SchemeFactory {
+    public JobSubmissionInterfaceTupleScheme getScheme() {
+      return new JobSubmissionInterfaceTupleScheme();
+    }
+  }
+
+  private static class JobSubmissionInterfaceTupleScheme extends TupleScheme<JobSubmissionInterface> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobSubmissionInterface struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionInterfaceId);
+      oprot.writeI32(struct.jobSubmissionProtocol.getValue());
+      oprot.writeI32(struct.priorityOrder);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobSubmissionInterface struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionInterfaceId = iprot.readString();
+      struct.setJobSubmissionInterfaceIdIsSet(true);
+      struct.jobSubmissionProtocol = org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.findByValue(iprot.readI32());
+      struct.setJobSubmissionProtocolIsSet(true);
+      struct.priorityOrder = iprot.readI32();
+      struct.setPriorityOrderIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java
new file mode 100644
index 0000000..d76821e
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java
@@ -0,0 +1,90 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of Airavata supported Job Submission Mechanisms for High Performance Computing Clusters.
+ * 
+ * SSH:
+ *  Execute remote job submission commands using via secure shell protocol.
+ * 
+ * GRAM:
+ *  Execute remote jobs via Globus GRAM service.
+ * 
+ * UNICORE:
+ *  Execute remote jobs via Unicore services
+ * 
+ */
+public enum JobSubmissionProtocol implements org.apache.thrift.TEnum {
+  LOCAL(0),
+  SSH(1),
+  GLOBUS(2),
+  UNICORE(3),
+  CLOUD(4),
+  SSH_FORK(5),
+  LOCAL_FORK(6);
+
+  private final int value;
+
+  private JobSubmissionProtocol(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 JobSubmissionProtocol findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return LOCAL;
+      case 1:
+        return SSH;
+      case 2:
+        return GLOBUS;
+      case 3:
+        return UNICORE;
+      case 4:
+        return CLOUD;
+      case 5:
+        return SSH_FORK;
+      case 6:
+        return LOCAL_FORK;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
new file mode 100644
index 0000000..74911be
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
@@ -0,0 +1,643 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Locally Fork Jobs as OS processes
+ * 
+ * alternativeSSHHostName:
+ *  If the login to ssh is different than the hostname itself, specify it here
+ * 
+ * sshPort:
+ *  If a non-default port needs to used, specify it.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class LOCALSubmission implements org.apache.thrift.TBase<LOCALSubmission, LOCALSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALSubmission");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField RESOURCE_JOB_MANAGER_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManager", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new LOCALSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new LOCALSubmissionTupleSchemeFactory());
+  }
+
+  public String jobSubmissionInterfaceId; // required
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol; // required
+  public ResourceJobManager resourceJobManager; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_SUBMISSION_INTERFACE_ID((short)1, "jobSubmissionInterfaceId"),
+    /**
+     * 
+     * @see org.apache.airavata.model.data.movement.SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    RESOURCE_JOB_MANAGER((short)3, "resourceJobManager");
+
+    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: // JOB_SUBMISSION_INTERFACE_ID
+          return JOB_SUBMISSION_INTERFACE_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // RESOURCE_JOB_MANAGER
+          return RESOURCE_JOB_MANAGER;
+        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
+  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.JOB_SUBMISSION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.data.movement.SecurityProtocol.class)));
+    tmpMap.put(_Fields.RESOURCE_JOB_MANAGER, new org.apache.thrift.meta_data.FieldMetaData("resourceJobManager", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ResourceJobManager.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(LOCALSubmission.class, metaDataMap);
+  }
+
+  public LOCALSubmission() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public LOCALSubmission(
+    String jobSubmissionInterfaceId,
+    org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol,
+    ResourceJobManager resourceJobManager)
+  {
+    this();
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    this.securityProtocol = securityProtocol;
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public LOCALSubmission(LOCALSubmission other) {
+    if (other.isSetJobSubmissionInterfaceId()) {
+      this.jobSubmissionInterfaceId = other.jobSubmissionInterfaceId;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetResourceJobManager()) {
+      this.resourceJobManager = new ResourceJobManager(other.resourceJobManager);
+    }
+  }
+
+  public LOCALSubmission deepCopy() {
+    return new LOCALSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.resourceJobManager = null;
+  }
+
+  public String getJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId;
+  }
+
+  public LOCALSubmission setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    return this;
+  }
+
+  public void unsetJobSubmissionInterfaceId() {
+    this.jobSubmissionInterfaceId = null;
+  }
+
+  /** Returns true if field jobSubmissionInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId != null;
+  }
+
+  public void setJobSubmissionInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public LOCALSubmission setSecurityProtocol(org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+    return this;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public ResourceJobManager getResourceJobManager() {
+    return this.resourceJobManager;
+  }
+
+  public LOCALSubmission setResourceJobManager(ResourceJobManager resourceJobManager) {
+    this.resourceJobManager = resourceJobManager;
+    return this;
+  }
+
+  public void unsetResourceJobManager() {
+    this.resourceJobManager = null;
+  }
+
+  /** Returns true if field resourceJobManager is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceJobManager() {
+    return this.resourceJobManager != null;
+  }
+
+  public void setResourceJobManagerIsSet(boolean value) {
+    if (!value) {
+      this.resourceJobManager = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      if (value == null) {
+        unsetJobSubmissionInterfaceId();
+      } else {
+        setJobSubmissionInterfaceId((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((org.apache.airavata.model.data.movement.SecurityProtocol)value);
+      }
+      break;
+
+    case RESOURCE_JOB_MANAGER:
+      if (value == null) {
+        unsetResourceJobManager();
+      } else {
+        setResourceJobManager((ResourceJobManager)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      return getJobSubmissionInterfaceId();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case RESOURCE_JOB_MANAGER:
+      return getResourceJobManager();
+
+    }
+    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 JOB_SUBMISSION_INTERFACE_ID:
+      return isSetJobSubmissionInterfaceId();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case RESOURCE_JOB_MANAGER:
+      return isSetResourceJobManager();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof LOCALSubmission)
+      return this.equals((LOCALSubmission)that);
+    return false;
+  }
+
+  public boolean equals(LOCALSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionInterfaceId = true && this.isSetJobSubmissionInterfaceId();
+    boolean that_present_jobSubmissionInterfaceId = true && that.isSetJobSubmissionInterfaceId();
+    if (this_present_jobSubmissionInterfaceId || that_present_jobSubmissionInterfaceId) {
+      if (!(this_present_jobSubmissionInterfaceId && that_present_jobSubmissionInterfaceId))
+        return false;
+      if (!this.jobSubmissionInterfaceId.equals(that.jobSubmissionInterfaceId))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_resourceJobManager = true && this.isSetResourceJobManager();
+    boolean that_present_resourceJobManager = true && that.isSetResourceJobManager();
+    if (this_present_resourceJobManager || that_present_resourceJobManager) {
+      if (!(this_present_resourceJobManager && that_present_resourceJobManager))
+        return false;
+      if (!this.resourceJobManager.equals(that.resourceJobManager))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_jobSubmissionInterfaceId = true && (isSetJobSubmissionInterfaceId());
+    list.add(present_jobSubmissionInterfaceId);
+    if (present_jobSubmissionInterfaceId)
+      list.add(jobSubmissionInterfaceId);
+
+    boolean present_securityProtocol = true && (isSetSecurityProtocol());
+    list.add(present_securityProtocol);
+    if (present_securityProtocol)
+      list.add(securityProtocol.getValue());
+
+    boolean present_resourceJobManager = true && (isSetResourceJobManager());
+    list.add(present_resourceJobManager);
+    if (present_resourceJobManager)
+      list.add(resourceJobManager);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(LOCALSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionInterfaceId()).compareTo(other.isSetJobSubmissionInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionInterfaceId, other.jobSubmissionInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceJobManager()).compareTo(other.isSetResourceJobManager());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceJobManager()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceJobManager, other.resourceJobManager);
+      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("LOCALSubmission(");
+    boolean first = true;
+
+    sb.append("jobSubmissionInterfaceId:");
+    if (this.jobSubmissionInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("resourceJobManager:");
+    if (this.resourceJobManager == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManager);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (jobSubmissionInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionInterfaceId' was not present! Struct: " + toString());
+    }
+    if (securityProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' was not present! Struct: " + toString());
+    }
+    if (resourceJobManager == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManager' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (resourceJobManager != null) {
+      resourceJobManager.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 {
+      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 LOCALSubmissionStandardSchemeFactory implements SchemeFactory {
+    public LOCALSubmissionStandardScheme getScheme() {
+      return new LOCALSubmissionStandardScheme();
+    }
+  }
+
+  private static class LOCALSubmissionStandardScheme extends StandardScheme<LOCALSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, LOCALSubmission struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_SUBMISSION_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionInterfaceId = iprot.readString();
+              struct.setJobSubmissionInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // RESOURCE_JOB_MANAGER
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.resourceJobManager = new ResourceJobManager();
+              struct.resourceJobManager.read(iprot);
+              struct.setResourceJobManagerIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, LOCALSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionInterfaceId != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.resourceJobManager != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
+        struct.resourceJobManager.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class LOCALSubmissionTupleSchemeFactory implements SchemeFactory {
+    public LOCALSubmissionTupleScheme getScheme() {
+      return new LOCALSubmissionTupleScheme();
+    }
+  }
+
+  private static class LOCALSubmissionTupleScheme extends TupleScheme<LOCALSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, LOCALSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionInterfaceId);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      struct.resourceJobManager.write(oprot);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, LOCALSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionInterfaceId = iprot.readString();
+      struct.setJobSubmissionInterfaceIdIsSet(true);
+      struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      struct.resourceJobManager = new ResourceJobManager();
+      struct.resourceJobManager.read(iprot);
+      struct.setResourceJobManagerIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java
new file mode 100644
index 0000000..3dc4cef
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Monitoring modes
+ * 
+ * POLL_JOB_MANAGER:
+ * GFac need to pull job status changes.
+ * 
+ * XSEDE_AMQP_SUBSCRIBE:
+ * Server will publish job status changes to amqp servert.
+ * 
+ * 
+ */
+public enum MonitorMode implements org.apache.thrift.TEnum {
+  POLL_JOB_MANAGER(0),
+  JOB_EMAIL_NOTIFICATION_MONITOR(1),
+  XSEDE_AMQP_SUBSCRIBE(2),
+  FORK(3);
+
+  private final int value;
+
+  private MonitorMode(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 MonitorMode findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return POLL_JOB_MANAGER;
+      case 1:
+        return JOB_EMAIL_NOTIFICATION_MONITOR;
+      case 2:
+        return XSEDE_AMQP_SUBSCRIBE;
+      case 3:
+        return FORK;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ProviderName.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ProviderName.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ProviderName.java
new file mode 100644
index 0000000..97a6b61
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ProviderName.java
@@ -0,0 +1,69 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Provider name
+ * 
+ */
+public enum ProviderName implements org.apache.thrift.TEnum {
+  EC2(0),
+  AWSEC2(1),
+  RACKSPACE(2);
+
+  private final int value;
+
+  private ProviderName(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 ProviderName findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return EC2;
+      case 1:
+        return AWSEC2;
+      case 2:
+        return RACKSPACE;
+      default:
+        return null;
+    }
+  }
+}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
new file mode 100644
index 0000000..5d60934
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
@@ -0,0 +1,524 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class LaunchValidationException extends TException implements org.apache.thrift.TBase<LaunchValidationException, LaunchValidationException._Fields>, java.io.Serializable, Cloneable, Comparable<LaunchValidationException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LaunchValidationException");
+
+  private static final org.apache.thrift.protocol.TField VALIDATION_RESULT_FIELD_DESC = new org.apache.thrift.protocol.TField("validationResult", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+  private static final org.apache.thrift.protocol.TField ERROR_MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("errorMessage", org.apache.thrift.protocol.TType.STRING, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new LaunchValidationExceptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new LaunchValidationExceptionTupleSchemeFactory());
+  }
+
+  public ValidationResults validationResult; // required
+  public String errorMessage; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    VALIDATION_RESULT((short)1, "validationResult"),
+    ERROR_MESSAGE((short)2, "errorMessage");
+
+    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: // VALIDATION_RESULT
+          return VALIDATION_RESULT;
+        case 2: // ERROR_MESSAGE
+          return ERROR_MESSAGE;
+        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 _Fields optionals[] = {_Fields.ERROR_MESSAGE};
+  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.VALIDATION_RESULT, new org.apache.thrift.meta_data.FieldMetaData("validationResult", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ValidationResults.class)));
+    tmpMap.put(_Fields.ERROR_MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("errorMessage", 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(LaunchValidationException.class, metaDataMap);
+  }
+
+  public LaunchValidationException() {
+  }
+
+  public LaunchValidationException(
+    ValidationResults validationResult)
+  {
+    this();
+    this.validationResult = validationResult;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public LaunchValidationException(LaunchValidationException other) {
+    if (other.isSetValidationResult()) {
+      this.validationResult = new ValidationResults(other.validationResult);
+    }
+    if (other.isSetErrorMessage()) {
+      this.errorMessage = other.errorMessage;
+    }
+  }
+
+  public LaunchValidationException deepCopy() {
+    return new LaunchValidationException(this);
+  }
+
+  @Override
+  public void clear() {
+    this.validationResult = null;
+    this.errorMessage = null;
+  }
+
+  public ValidationResults getValidationResult() {
+    return this.validationResult;
+  }
+
+  public LaunchValidationException setValidationResult(ValidationResults validationResult) {
+    this.validationResult = validationResult;
+    return this;
+  }
+
+  public void unsetValidationResult() {
+    this.validationResult = null;
+  }
+
+  /** Returns true if field validationResult is set (has been assigned a value) and false otherwise */
+  public boolean isSetValidationResult() {
+    return this.validationResult != null;
+  }
+
+  public void setValidationResultIsSet(boolean value) {
+    if (!value) {
+      this.validationResult = null;
+    }
+  }
+
+  public String getErrorMessage() {
+    return this.errorMessage;
+  }
+
+  public LaunchValidationException setErrorMessage(String errorMessage) {
+    this.errorMessage = errorMessage;
+    return this;
+  }
+
+  public void unsetErrorMessage() {
+    this.errorMessage = null;
+  }
+
+  /** Returns true if field errorMessage is set (has been assigned a value) and false otherwise */
+  public boolean isSetErrorMessage() {
+    return this.errorMessage != null;
+  }
+
+  public void setErrorMessageIsSet(boolean value) {
+    if (!value) {
+      this.errorMessage = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case VALIDATION_RESULT:
+      if (value == null) {
+        unsetValidationResult();
+      } else {
+        setValidationResult((ValidationResults)value);
+      }
+      break;
+
+    case ERROR_MESSAGE:
+      if (value == null) {
+        unsetErrorMessage();
+      } else {
+        setErrorMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case VALIDATION_RESULT:
+      return getValidationResult();
+
+    case ERROR_MESSAGE:
+      return getErrorMessage();
+
+    }
+    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 VALIDATION_RESULT:
+      return isSetValidationResult();
+    case ERROR_MESSAGE:
+      return isSetErrorMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof LaunchValidationException)
+      return this.equals((LaunchValidationException)that);
+    return false;
+  }
+
+  public boolean equals(LaunchValidationException that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_validationResult = true && this.isSetValidationResult();
+    boolean that_present_validationResult = true && that.isSetValidationResult();
+    if (this_present_validationResult || that_present_validationResult) {
+      if (!(this_present_validationResult && that_present_validationResult))
+        return false;
+      if (!this.validationResult.equals(that.validationResult))
+        return false;
+    }
+
+    boolean this_present_errorMessage = true && this.isSetErrorMessage();
+    boolean that_present_errorMessage = true && that.isSetErrorMessage();
+    if (this_present_errorMessage || that_present_errorMessage) {
+      if (!(this_present_errorMessage && that_present_errorMessage))
+        return false;
+      if (!this.errorMessage.equals(that.errorMessage))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_validationResult = true && (isSetValidationResult());
+    list.add(present_validationResult);
+    if (present_validationResult)
+      list.add(validationResult);
+
+    boolean present_errorMessage = true && (isSetErrorMessage());
+    list.add(present_errorMessage);
+    if (present_errorMessage)
+      list.add(errorMessage);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(LaunchValidationException other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetValidationResult()).compareTo(other.isSetValidationResult());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValidationResult()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validationResult, other.validationResult);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetErrorMessage()).compareTo(other.isSetErrorMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetErrorMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errorMessage, other.errorMessage);
+      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("LaunchValidationException(");
+    boolean first = true;
+
+    sb.append("validationResult:");
+    if (this.validationResult == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.validationResult);
+    }
+    first = false;
+    if (isSetErrorMessage()) {
+      if (!first) sb.append(", ");
+      sb.append("errorMessage:");
+      if (this.errorMessage == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.errorMessage);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (validationResult == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'validationResult' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (validationResult != null) {
+      validationResult.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 {
+      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 LaunchValidationExceptionStandardSchemeFactory implements SchemeFactory {
+    public LaunchValidationExceptionStandardScheme getScheme() {
+      return new LaunchValidationExceptionStandardScheme();
+    }
+  }
+
+  private static class LaunchValidationExceptionStandardScheme extends StandardScheme<LaunchValidationException> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, LaunchValidationException 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: // VALIDATION_RESULT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.validationResult = new ValidationResults();
+              struct.validationResult.read(iprot);
+              struct.setValidationResultIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // ERROR_MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.errorMessage = iprot.readString();
+              struct.setErrorMessageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, LaunchValidationException struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.validationResult != null) {
+        oprot.writeFieldBegin(VALIDATION_RESULT_FIELD_DESC);
+        struct.validationResult.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      if (struct.errorMessage != null) {
+        if (struct.isSetErrorMessage()) {
+          oprot.writeFieldBegin(ERROR_MESSAGE_FIELD_DESC);
+          oprot.writeString(struct.errorMessage);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class LaunchValidationExceptionTupleSchemeFactory implements SchemeFactory {
+    public LaunchValidationExceptionTupleScheme getScheme() {
+      return new LaunchValidationExceptionTupleScheme();
+    }
+  }
+
+  private static class LaunchValidationExceptionTupleScheme extends TupleScheme<LaunchValidationException> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, LaunchValidationException struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      struct.validationResult.write(oprot);
+      BitSet optionals = new BitSet();
+      if (struct.isSetErrorMessage()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetErrorMessage()) {
+        oprot.writeString(struct.errorMessage);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, LaunchValidationException struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.validationResult = new ValidationResults();
+      struct.validationResult.read(iprot);
+      struct.setValidationResultIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.errorMessage = iprot.readString();
+        struct.setErrorMessageIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
new file mode 100644
index 0000000..5792dd2
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
@@ -0,0 +1,413 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * 1:  optional  string identifier,
+ * 2:  optional  string key
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ProjectNotFoundException extends TException implements org.apache.thrift.TBase<ProjectNotFoundException, ProjectNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ProjectNotFoundException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProjectNotFoundException");
+
+  private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ProjectNotFoundExceptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ProjectNotFoundExceptionTupleSchemeFactory());
+  }
+
+  public String message; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    MESSAGE((short)1, "message");
+
+    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: // MESSAGE
+          return MESSAGE;
+        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
+  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.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ProjectNotFoundException.class, metaDataMap);
+  }
+
+  public ProjectNotFoundException() {
+  }
+
+  public ProjectNotFoundException(
+    String message)
+  {
+    this();
+    this.message = message;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ProjectNotFoundException(ProjectNotFoundException other) {
+    if (other.isSetMessage()) {
+      this.message = other.message;
+    }
+  }
+
+  public ProjectNotFoundException deepCopy() {
+    return new ProjectNotFoundException(this);
+  }
+
+  @Override
+  public void clear() {
+    this.message = null;
+  }
+
+  public String getMessage() {
+    return this.message;
+  }
+
+  public ProjectNotFoundException setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  public void unsetMessage() {
+    this.message = null;
+  }
+
+  /** Returns true if field message is set (has been assigned a value) and false otherwise */
+  public boolean isSetMessage() {
+    return this.message != null;
+  }
+
+  public void setMessageIsSet(boolean value) {
+    if (!value) {
+      this.message = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case MESSAGE:
+      if (value == null) {
+        unsetMessage();
+      } else {
+        setMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case MESSAGE:
+      return getMessage();
+
+    }
+    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 MESSAGE:
+      return isSetMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ProjectNotFoundException)
+      return this.equals((ProjectNotFoundException)that);
+    return false;
+  }
+
+  public boolean equals(ProjectNotFoundException that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_message = true && this.isSetMessage();
+    boolean that_present_message = true && that.isSetMessage();
+    if (this_present_message || that_present_message) {
+      if (!(this_present_message && that_present_message))
+        return false;
+      if (!this.message.equals(that.message))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_message = true && (isSetMessage());
+    list.add(present_message);
+    if (present_message)
+      list.add(message);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ProjectNotFoundException other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetMessage()).compareTo(other.isSetMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.message, other.message);
+      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("ProjectNotFoundException(");
+    boolean first = true;
+
+    sb.append("message:");
+    if (this.message == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.message);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (message == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'message' was not present! 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 ProjectNotFoundExceptionStandardSchemeFactory implements SchemeFactory {
+    public ProjectNotFoundExceptionStandardScheme getScheme() {
+      return new ProjectNotFoundExceptionStandardScheme();
+    }
+  }
+
+  private static class ProjectNotFoundExceptionStandardScheme extends StandardScheme<ProjectNotFoundException> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ProjectNotFoundException 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: // MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.message = iprot.readString();
+              struct.setMessageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ProjectNotFoundException struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.message != null) {
+        oprot.writeFieldBegin(MESSAGE_FIELD_DESC);
+        oprot.writeString(struct.message);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ProjectNotFoundExceptionTupleSchemeFactory implements SchemeFactory {
+    public ProjectNotFoundExceptionTupleScheme getScheme() {
+      return new ProjectNotFoundExceptionTupleScheme();
+    }
+  }
+
+  private static class ProjectNotFoundExceptionTupleScheme extends TupleScheme<ProjectNotFoundException> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ProjectNotFoundException struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.message);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ProjectNotFoundException struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.message = iprot.readString();
+      struct.setMessageIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/TimedOutException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/TimedOutException.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/TimedOutException.java
new file mode 100644
index 0000000..096d78a
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/TimedOutException.java
@@ -0,0 +1,305 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * This exception is thrown when RPC timeout gets exceeded.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class TimedOutException extends TException implements org.apache.thrift.TBase<TimedOutException, TimedOutException._Fields>, java.io.Serializable, Cloneable, Comparable<TimedOutException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TimedOutException");
+
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TimedOutExceptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TimedOutExceptionTupleSchemeFactory());
+  }
+
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+;
+
+    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) {
+        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;
+    }
+  }
+  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);
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TimedOutException.class, metaDataMap);
+  }
+
+  public TimedOutException() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TimedOutException(TimedOutException other) {
+  }
+
+  public TimedOutException deepCopy() {
+    return new TimedOutException(this);
+  }
+
+  @Override
+  public void clear() {
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    }
+    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) {
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TimedOutException)
+      return this.equals((TimedOutException)that);
+    return false;
+  }
+
+  public boolean equals(TimedOutException that) {
+    if (that == null)
+      return false;
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(TimedOutException other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    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("TimedOutException(");
+    boolean first = true;
+
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 TimedOutExceptionStandardSchemeFactory implements SchemeFactory {
+    public TimedOutExceptionStandardScheme getScheme() {
+      return new TimedOutExceptionStandardScheme();
+    }
+  }
+
+  private static class TimedOutExceptionStandardScheme extends StandardScheme<TimedOutException> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TimedOutException 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) {
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, TimedOutException struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TimedOutExceptionTupleSchemeFactory implements SchemeFactory {
+    public TimedOutExceptionTupleScheme getScheme() {
+      return new TimedOutExceptionTupleScheme();
+    }
+  }
+
+  private static class TimedOutExceptionTupleScheme extends TupleScheme<TimedOutException> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TimedOutException struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TimedOutException struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ValidationResults.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ValidationResults.java
new file mode 100644
index 0000000..1d93393
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ValidationResults.java
@@ -0,0 +1,562 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
+
+  private static final org.apache.thrift.protocol.TField VALIDATION_STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("validationState", org.apache.thrift.protocol.TType.BOOL, (short)1);
+  private static final org.apache.thrift.protocol.TField VALIDATION_RESULT_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("validationResultList", org.apache.thrift.protocol.TType.LIST, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ValidationResultsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ValidationResultsTupleSchemeFactory());
+  }
+
+  public boolean validationState; // required
+  public List<ValidatorResult> validationResultList; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    VALIDATION_STATE((short)1, "validationState"),
+    VALIDATION_RESULT_LIST((short)2, "validationResultList");
+
+    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: // VALIDATION_STATE
+          return VALIDATION_STATE;
+        case 2: // VALIDATION_RESULT_LIST
+          return VALIDATION_RESULT_LIST;
+        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 __VALIDATIONSTATE_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  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.VALIDATION_STATE, new org.apache.thrift.meta_data.FieldMetaData("validationState", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.VALIDATION_RESULT_LIST, new org.apache.thrift.meta_data.FieldMetaData("validationResultList", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ValidatorResult.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ValidationResults.class, metaDataMap);
+  }
+
+  public ValidationResults() {
+  }
+
+  public ValidationResults(
+    boolean validationState,
+    List<ValidatorResult> validationResultList)
+  {
+    this();
+    this.validationState = validationState;
+    setValidationStateIsSet(true);
+    this.validationResultList = validationResultList;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ValidationResults(ValidationResults other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.validationState = other.validationState;
+    if (other.isSetValidationResultList()) {
+      List<ValidatorResult> __this__validationResultList = new ArrayList<ValidatorResult>(other.validationResultList.size());
+      for (ValidatorResult other_element : other.validationResultList) {
+        __this__validationResultList.add(new ValidatorResult(other_element));
+      }
+      this.validationResultList = __this__validationResultList;
+    }
+  }
+
+  public ValidationResults deepCopy() {
+    return new ValidationResults(this);
+  }
+
+  @Override
+  public void clear() {
+    setValidationStateIsSet(false);
+    this.validationState = false;
+    this.validationResultList = null;
+  }
+
+  public boolean isValidationState() {
+    return this.validationState;
+  }
+
+  public ValidationResults setValidationState(boolean validationState) {
+    this.validationState = validationState;
+    setValidationStateIsSet(true);
+    return this;
+  }
+
+  public void unsetValidationState() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __VALIDATIONSTATE_ISSET_ID);
+  }
+
+  /** Returns true if field validationState is set (has been assigned a value) and false otherwise */
+  public boolean isSetValidationState() {
+    return EncodingUtils.testBit(__isset_bitfield, __VALIDATIONSTATE_ISSET_ID);
+  }
+
+  public void setValidationStateIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __VALIDATIONSTATE_ISSET_ID, value);
+  }
+
+  public int getValidationResultListSize() {
+    return (this.validationResultList == null) ? 0 : this.validationResultList.size();
+  }
+
+  public java.util.Iterator<ValidatorResult> getValidationResultListIterator() {
+    return (this.validationResultList == null) ? null : this.validationResultList.iterator();
+  }
+
+  public void addToValidationResultList(ValidatorResult elem) {
+    if (this.validationResultList == null) {
+      this.validationResultList = new ArrayList<ValidatorResult>();
+    }
+    this.validationResultList.add(elem);
+  }
+
+  public List<ValidatorResult> getValidationResultList() {
+    return this.validationResultList;
+  }
+
+  public ValidationResults setValidationResultList(List<ValidatorResult> validationResultList) {
+    this.validationResultList = validationResultList;
+    return this;
+  }
+
+  public void unsetValidationResultList() {
+    this.validationResultList = null;
+  }
+
+  /** Returns true if field validationResultList is set (has been assigned a value) and false otherwise */
+  public boolean isSetValidationResultList() {
+    return this.validationResultList != null;
+  }
+
+  public void setValidationResultListIsSet(boolean value) {
+    if (!value) {
+      this.validationResultList = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case VALIDATION_STATE:
+      if (value == null) {
+        unsetValidationState();
+      } else {
+        setValidationState((Boolean)value);
+      }
+      break;
+
+    case VALIDATION_RESULT_LIST:
+      if (value == null) {
+        unsetValidationResultList();
+      } else {
+        setValidationResultList((List<ValidatorResult>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case VALIDATION_STATE:
+      return Boolean.valueOf(isValidationState());
+
+    case VALIDATION_RESULT_LIST:
+      return getValidationResultList();
+
+    }
+    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 VALIDATION_STATE:
+      return isSetValidationState();
+    case VALIDATION_RESULT_LIST:
+      return isSetValidationResultList();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ValidationResults)
+      return this.equals((ValidationResults)that);
+    return false;
+  }
+
+  public boolean equals(ValidationResults that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_validationState = true;
+    boolean that_present_validationState = true;
+    if (this_present_validationState || that_present_validationState) {
+      if (!(this_present_validationState && that_present_validationState))
+        return false;
+      if (this.validationState != that.validationState)
+        return false;
+    }
+
+    boolean this_present_validationResultList = true && this.isSetValidationResultList();
+    boolean that_present_validationResultList = true && that.isSetValidationResultList();
+    if (this_present_validationResultList || that_present_validationResultList) {
+      if (!(this_present_validationResultList && that_present_validationResultList))
+        return false;
+      if (!this.validationResultList.equals(that.validationResultList))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_validationState = true;
+    list.add(present_validationState);
+    if (present_validationState)
+      list.add(validationState);
+
+    boolean present_validationResultList = true && (isSetValidationResultList());
+    list.add(present_validationResultList);
+    if (present_validationResultList)
+      list.add(validationResultList);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ValidationResults other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetValidationState()).compareTo(other.isSetValidationState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValidationState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validationState, other.validationState);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetValidationResultList()).compareTo(other.isSetValidationResultList());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValidationResultList()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validationResultList, other.validationResultList);
+      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("ValidationResults(");
+    boolean first = true;
+
+    sb.append("validationState:");
+    sb.append(this.validationState);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("validationResultList:");
+    if (this.validationResultList == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.validationResultList);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // alas, we cannot check 'validationState' because it's a primitive and you chose the non-beans generator.
+    if (validationResultList == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'validationResultList' was not present! 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 ValidationResultsStandardSchemeFactory implements SchemeFactory {
+    public ValidationResultsStandardScheme getScheme() {
+      return new ValidationResultsStandardScheme();
+    }
+  }
+
+  private static class ValidationResultsStandardScheme extends StandardScheme<ValidationResults> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ValidationResults 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: // VALIDATION_STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.validationState = iprot.readBool();
+              struct.setValidationStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // VALIDATION_RESULT_LIST
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.validationResultList = new ArrayList<ValidatorResult>(_list0.size);
+                ValidatorResult _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new ValidatorResult();
+                  _elem1.read(iprot);
+                  struct.validationResultList.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setValidationResultListIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetValidationState()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'validationState' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ValidationResults struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(VALIDATION_STATE_FIELD_DESC);
+      oprot.writeBool(struct.validationState);
+      oprot.writeFieldEnd();
+      if (struct.validationResultList != null) {
+        oprot.writeFieldBegin(VALIDATION_RESULT_LIST_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.validationResultList.size()));
+          for (ValidatorResult _iter3 : struct.validationResultList)
+          {
+            _iter3.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ValidationResultsTupleSchemeFactory implements SchemeFactory {
+    public ValidationResultsTupleScheme getScheme() {
+      return new ValidationResultsTupleScheme();
+    }
+  }
+
+  private static class ValidationResultsTupleScheme extends TupleScheme<ValidationResults> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ValidationResults struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeBool(struct.validationState);
+      {
+        oprot.writeI32(struct.validationResultList.size());
+        for (ValidatorResult _iter4 : struct.validationResultList)
+        {
+          _iter4.write(oprot);
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ValidationResults struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.validationState = iprot.readBool();
+      struct.setValidationStateIsSet(true);
+      {
+        org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+        struct.validationResultList = new ArrayList<ValidatorResult>(_list5.size);
+        ValidatorResult _elem6;
+        for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+        {
+          _elem6 = new ValidatorResult();
+          _elem6.read(iprot);
+          struct.validationResultList.add(_elem6);
+        }
+      }
+      struct.setValidationResultListIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ValidatorResult.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
new file mode 100644
index 0000000..79d1eef
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
@@ -0,0 +1,518 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
+
+  private static final org.apache.thrift.protocol.TField RESULT_FIELD_DESC = new org.apache.thrift.protocol.TField("result", org.apache.thrift.protocol.TType.BOOL, (short)1);
+  private static final org.apache.thrift.protocol.TField ERROR_DETAILS_FIELD_DESC = new org.apache.thrift.protocol.TField("errorDetails", org.apache.thrift.protocol.TType.STRING, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ValidatorResultStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ValidatorResultTupleSchemeFactory());
+  }
+
+  public boolean result; // required
+  public String errorDetails; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    RESULT((short)1, "result"),
+    ERROR_DETAILS((short)2, "errorDetails");
+
+    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: // RESULT
+          return RESULT;
+        case 2: // ERROR_DETAILS
+          return ERROR_DETAILS;
+        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 __RESULT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.ERROR_DETAILS};
+  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.RESULT, new org.apache.thrift.meta_data.FieldMetaData("result", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.ERROR_DETAILS, new org.apache.thrift.meta_data.FieldMetaData("errorDetails", 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(ValidatorResult.class, metaDataMap);
+  }
+
+  public ValidatorResult() {
+  }
+
+  public ValidatorResult(
+    boolean result)
+  {
+    this();
+    this.result = result;
+    setResultIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ValidatorResult(ValidatorResult other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.result = other.result;
+    if (other.isSetErrorDetails()) {
+      this.errorDetails = other.errorDetails;
+    }
+  }
+
+  public ValidatorResult deepCopy() {
+    return new ValidatorResult(this);
+  }
+
+  @Override
+  public void clear() {
+    setResultIsSet(false);
+    this.result = false;
+    this.errorDetails = null;
+  }
+
+  public boolean isResult() {
+    return this.result;
+  }
+
+  public ValidatorResult setResult(boolean result) {
+    this.result = result;
+    setResultIsSet(true);
+    return this;
+  }
+
+  public void unsetResult() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RESULT_ISSET_ID);
+  }
+
+  /** Returns true if field result is set (has been assigned a value) and false otherwise */
+  public boolean isSetResult() {
+    return EncodingUtils.testBit(__isset_bitfield, __RESULT_ISSET_ID);
+  }
+
+  public void setResultIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RESULT_ISSET_ID, value);
+  }
+
+  public String getErrorDetails() {
+    return this.errorDetails;
+  }
+
+  public ValidatorResult setErrorDetails(String errorDetails) {
+    this.errorDetails = errorDetails;
+    return this;
+  }
+
+  public void unsetErrorDetails() {
+    this.errorDetails = null;
+  }
+
+  /** Returns true if field errorDetails is set (has been assigned a value) and false otherwise */
+  public boolean isSetErrorDetails() {
+    return this.errorDetails != null;
+  }
+
+  public void setErrorDetailsIsSet(boolean value) {
+    if (!value) {
+      this.errorDetails = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case RESULT:
+      if (value == null) {
+        unsetResult();
+      } else {
+        setResult((Boolean)value);
+      }
+      break;
+
+    case ERROR_DETAILS:
+      if (value == null) {
+        unsetErrorDetails();
+      } else {
+        setErrorDetails((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case RESULT:
+      return Boolean.valueOf(isResult());
+
+    case ERROR_DETAILS:
+      return getErrorDetails();
+
+    }
+    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 RESULT:
+      return isSetResult();
+    case ERROR_DETAILS:
+      return isSetErrorDetails();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ValidatorResult)
+      return this.equals((ValidatorResult)that);
+    return false;
+  }
+
+  public boolean equals(ValidatorResult that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_result = true;
+    boolean that_present_result = true;
+    if (this_present_result || that_present_result) {
+      if (!(this_present_result && that_present_result))
+        return false;
+      if (this.result != that.result)
+        return false;
+    }
+
+    boolean this_present_errorDetails = true && this.isSetErrorDetails();
+    boolean that_present_errorDetails = true && that.isSetErrorDetails();
+    if (this_present_errorDetails || that_present_errorDetails) {
+      if (!(this_present_errorDetails && that_present_errorDetails))
+        return false;
+      if (!this.errorDetails.equals(that.errorDetails))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_result = true;
+    list.add(present_result);
+    if (present_result)
+      list.add(result);
+
+    boolean present_errorDetails = true && (isSetErrorDetails());
+    list.add(present_errorDetails);
+    if (present_errorDetails)
+      list.add(errorDetails);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ValidatorResult other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetResult()).compareTo(other.isSetResult());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResult()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.result, other.result);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetErrorDetails()).compareTo(other.isSetErrorDetails());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetErrorDetails()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errorDetails, other.errorDetails);
+      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("ValidatorResult(");
+    boolean first = true;
+
+    sb.append("result:");
+    sb.append(this.result);
+    first = false;
+    if (isSetErrorDetails()) {
+      if (!first) sb.append(", ");
+      sb.append("errorDetails:");
+      if (this.errorDetails == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.errorDetails);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // alas, we cannot check 'result' because it's a primitive and you chose the non-beans generator.
+    // 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 ValidatorResultStandardSchemeFactory implements SchemeFactory {
+    public ValidatorResultStandardScheme getScheme() {
+      return new ValidatorResultStandardScheme();
+    }
+  }
+
+  private static class ValidatorResultStandardScheme extends StandardScheme<ValidatorResult> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ValidatorResult 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: // RESULT
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.result = iprot.readBool();
+              struct.setResultIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // ERROR_DETAILS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.errorDetails = iprot.readString();
+              struct.setErrorDetailsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetResult()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'result' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ValidatorResult struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(RESULT_FIELD_DESC);
+      oprot.writeBool(struct.result);
+      oprot.writeFieldEnd();
+      if (struct.errorDetails != null) {
+        if (struct.isSetErrorDetails()) {
+          oprot.writeFieldBegin(ERROR_DETAILS_FIELD_DESC);
+          oprot.writeString(struct.errorDetails);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ValidatorResultTupleSchemeFactory implements SchemeFactory {
+    public ValidatorResultTupleScheme getScheme() {
+      return new ValidatorResultTupleScheme();
+    }
+  }
+
+  private static class ValidatorResultTupleScheme extends TupleScheme<ValidatorResult> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ValidatorResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeBool(struct.result);
+      BitSet optionals = new BitSet();
+      if (struct.isSetErrorDetails()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetErrorDetails()) {
+        oprot.writeString(struct.errorDetails);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ValidatorResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.result = iprot.readBool();
+      struct.setResultIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.errorDetails = iprot.readString();
+        struct.setErrorDetailsIsSet(true);
+      }
+    }
+  }
+
+}
+


[15/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/metadata/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/metadata/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/metadata/Types.php
deleted file mode 100644
index aa25b92..0000000
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/metadata/Types.php
+++ /dev/null
@@ -1,371 +0,0 @@
-<?php
-namespace Airavata\Model\file\metadata;
-
-/**
- * Autogenerated by Thrift Compiler (0.9.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-use Thrift\Base\TBase;
-use Thrift\Type\TType;
-use Thrift\Type\TMessageType;
-use Thrift\Exception\TException;
-use Thrift\Exception\TProtocolException;
-use Thrift\Protocol\TProtocol;
-use Thrift\Protocol\TBinaryProtocolAccelerated;
-use Thrift\Exception\TApplicationException;
-
-
-final class MetadataType {
-  const FILE = 0;
-  const COLLECTION = 1;
-  static public $__names = array(
-    0 => 'FILE',
-    1 => 'COLLECTION',
-  );
-}
-
-class MetadataModel {
-  static $_TSPEC;
-
-  /**
-   * @var string
-   */
-  public $metadataId = null;
-  /**
-   * @var string
-   */
-  public $gatewayId = null;
-  /**
-   * @var string
-   */
-  public $username = null;
-  /**
-   * @var string[]
-   */
-  public $sharedUsers = null;
-  /**
-   * @var bool
-   */
-  public $sharedPublic = null;
-  /**
-   * @var string
-   */
-  public $userFriendlyName = null;
-  /**
-   * @var string
-   */
-  public $userFriendlyDescription = null;
-  /**
-   * @var int
-   */
-  public $metadataType = null;
-  /**
-   * @var string
-   */
-  public $associatedEntityId = null;
-  /**
-   * @var array
-   */
-  public $customInformation = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'metadataId',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'username',
-          'type' => TType::STRING,
-          ),
-        4 => array(
-          'var' => 'sharedUsers',
-          'type' => TType::LST,
-          'etype' => TType::STRING,
-          'elem' => array(
-            'type' => TType::STRING,
-            ),
-          ),
-        5 => array(
-          'var' => 'sharedPublic',
-          'type' => TType::BOOL,
-          ),
-        6 => array(
-          'var' => 'userFriendlyName',
-          'type' => TType::STRING,
-          ),
-        7 => array(
-          'var' => 'userFriendlyDescription',
-          'type' => TType::STRING,
-          ),
-        8 => array(
-          'var' => 'metadataType',
-          'type' => TType::I32,
-          ),
-        9 => array(
-          'var' => 'associatedEntityId',
-          'type' => TType::STRING,
-          ),
-        10 => array(
-          'var' => 'customInformation',
-          'type' => TType::MAP,
-          'ktype' => TType::STRING,
-          'vtype' => TType::STRING,
-          'key' => array(
-            'type' => TType::STRING,
-          ),
-          'val' => array(
-            'type' => TType::STRING,
-            ),
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['metadataId'])) {
-        $this->metadataId = $vals['metadataId'];
-      }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['username'])) {
-        $this->username = $vals['username'];
-      }
-      if (isset($vals['sharedUsers'])) {
-        $this->sharedUsers = $vals['sharedUsers'];
-      }
-      if (isset($vals['sharedPublic'])) {
-        $this->sharedPublic = $vals['sharedPublic'];
-      }
-      if (isset($vals['userFriendlyName'])) {
-        $this->userFriendlyName = $vals['userFriendlyName'];
-      }
-      if (isset($vals['userFriendlyDescription'])) {
-        $this->userFriendlyDescription = $vals['userFriendlyDescription'];
-      }
-      if (isset($vals['metadataType'])) {
-        $this->metadataType = $vals['metadataType'];
-      }
-      if (isset($vals['associatedEntityId'])) {
-        $this->associatedEntityId = $vals['associatedEntityId'];
-      }
-      if (isset($vals['customInformation'])) {
-        $this->customInformation = $vals['customInformation'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'MetadataModel';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->metadataId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->username);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::LST) {
-            $this->sharedUsers = array();
-            $_size0 = 0;
-            $_etype3 = 0;
-            $xfer += $input->readListBegin($_etype3, $_size0);
-            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
-            {
-              $elem5 = null;
-              $xfer += $input->readString($elem5);
-              $this->sharedUsers []= $elem5;
-            }
-            $xfer += $input->readListEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::BOOL) {
-            $xfer += $input->readBool($this->sharedPublic);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 6:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->userFriendlyName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 7:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->userFriendlyDescription);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 8:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->metadataType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 9:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->associatedEntityId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 10:
-          if ($ftype == TType::MAP) {
-            $this->customInformation = array();
-            $_size6 = 0;
-            $_ktype7 = 0;
-            $_vtype8 = 0;
-            $xfer += $input->readMapBegin($_ktype7, $_vtype8, $_size6);
-            for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
-            {
-              $key11 = '';
-              $val12 = '';
-              $xfer += $input->readString($key11);
-              $xfer += $input->readString($val12);
-              $this->customInformation[$key11] = $val12;
-            }
-            $xfer += $input->readMapEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('MetadataModel');
-    if ($this->metadataId !== null) {
-      $xfer += $output->writeFieldBegin('metadataId', TType::STRING, 1);
-      $xfer += $output->writeString($this->metadataId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->username !== null) {
-      $xfer += $output->writeFieldBegin('username', TType::STRING, 3);
-      $xfer += $output->writeString($this->username);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->sharedUsers !== null) {
-      if (!is_array($this->sharedUsers)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('sharedUsers', TType::LST, 4);
-      {
-        $output->writeListBegin(TType::STRING, count($this->sharedUsers));
-        {
-          foreach ($this->sharedUsers as $iter13)
-          {
-            $xfer += $output->writeString($iter13);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->sharedPublic !== null) {
-      $xfer += $output->writeFieldBegin('sharedPublic', TType::BOOL, 5);
-      $xfer += $output->writeBool($this->sharedPublic);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->userFriendlyName !== null) {
-      $xfer += $output->writeFieldBegin('userFriendlyName', TType::STRING, 6);
-      $xfer += $output->writeString($this->userFriendlyName);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->userFriendlyDescription !== null) {
-      $xfer += $output->writeFieldBegin('userFriendlyDescription', TType::STRING, 7);
-      $xfer += $output->writeString($this->userFriendlyDescription);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->metadataType !== null) {
-      $xfer += $output->writeFieldBegin('metadataType', TType::I32, 8);
-      $xfer += $output->writeI32($this->metadataType);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->associatedEntityId !== null) {
-      $xfer += $output->writeFieldBegin('associatedEntityId', TType::STRING, 9);
-      $xfer += $output->writeString($this->associatedEntityId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->customInformation !== null) {
-      if (!is_array($this->customInformation)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('customInformation', TType::MAP, 10);
-      {
-        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->customInformation));
-        {
-          foreach ($this->customInformation as $kiter14 => $viter15)
-          {
-            $xfer += $output->writeString($kiter14);
-            $xfer += $output->writeString($viter15);
-          }
-        }
-        $output->writeMapEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/__init__.py
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/__init__.py
deleted file mode 100644
index adefd8e..0000000
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/constants.py
deleted file mode 100644
index 4a6492b..0000000
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/constants.py
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Autogenerated by Thrift Compiler (0.9.3)
-#
-# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
-#
-#  options string: py
-#
-
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-from ttypes import *
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/ttypes.py
deleted file mode 100644
index b50ac94..0000000
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/metadata/ttypes.py
+++ /dev/null
@@ -1,232 +0,0 @@
-#
-# Autogenerated by Thrift Compiler (0.9.3)
-#
-# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
-#
-#  options string: py
-#
-
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-
-from thrift.transport import TTransport
-from thrift.protocol import TBinaryProtocol, TProtocol
-try:
-  from thrift.protocol import fastbinary
-except:
-  fastbinary = None
-
-
-class MetadataType:
-  FILE = 0
-  COLLECTION = 1
-
-  _VALUES_TO_NAMES = {
-    0: "FILE",
-    1: "COLLECTION",
-  }
-
-  _NAMES_TO_VALUES = {
-    "FILE": 0,
-    "COLLECTION": 1,
-  }
-
-
-class MetadataModel:
-  """
-  Attributes:
-   - metadataId
-   - gatewayId
-   - username
-   - sharedUsers
-   - sharedPublic
-   - userFriendlyName
-   - userFriendlyDescription
-   - metadataType
-   - associatedEntityId
-   - customInformation
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'metadataId', None, None, ), # 1
-    (2, TType.STRING, 'gatewayId', None, None, ), # 2
-    (3, TType.STRING, 'username', None, None, ), # 3
-    (4, TType.LIST, 'sharedUsers', (TType.STRING,None), None, ), # 4
-    (5, TType.BOOL, 'sharedPublic', None, None, ), # 5
-    (6, TType.STRING, 'userFriendlyName', None, None, ), # 6
-    (7, TType.STRING, 'userFriendlyDescription', None, None, ), # 7
-    (8, TType.I32, 'metadataType', None, None, ), # 8
-    (9, TType.STRING, 'associatedEntityId', None, None, ), # 9
-    (10, TType.MAP, 'customInformation', (TType.STRING,None,TType.STRING,None), None, ), # 10
-  )
-
-  def __init__(self, metadataId=None, gatewayId=None, username=None, sharedUsers=None, sharedPublic=None, userFriendlyName=None, userFriendlyDescription=None, metadataType=None, associatedEntityId=None, customInformation=None,):
-    self.metadataId = metadataId
-    self.gatewayId = gatewayId
-    self.username = username
-    self.sharedUsers = sharedUsers
-    self.sharedPublic = sharedPublic
-    self.userFriendlyName = userFriendlyName
-    self.userFriendlyDescription = userFriendlyDescription
-    self.metadataType = metadataType
-    self.associatedEntityId = associatedEntityId
-    self.customInformation = customInformation
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.metadataId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.STRING:
-          self.gatewayId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.username = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
-        if ftype == TType.LIST:
-          self.sharedUsers = []
-          (_etype3, _size0) = iprot.readListBegin()
-          for _i4 in xrange(_size0):
-            _elem5 = iprot.readString()
-            self.sharedUsers.append(_elem5)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      elif fid == 5:
-        if ftype == TType.BOOL:
-          self.sharedPublic = iprot.readBool()
-        else:
-          iprot.skip(ftype)
-      elif fid == 6:
-        if ftype == TType.STRING:
-          self.userFriendlyName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 7:
-        if ftype == TType.STRING:
-          self.userFriendlyDescription = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 8:
-        if ftype == TType.I32:
-          self.metadataType = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 9:
-        if ftype == TType.STRING:
-          self.associatedEntityId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 10:
-        if ftype == TType.MAP:
-          self.customInformation = {}
-          (_ktype7, _vtype8, _size6 ) = iprot.readMapBegin()
-          for _i10 in xrange(_size6):
-            _key11 = iprot.readString()
-            _val12 = iprot.readString()
-            self.customInformation[_key11] = _val12
-          iprot.readMapEnd()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('MetadataModel')
-    if self.metadataId is not None:
-      oprot.writeFieldBegin('metadataId', TType.STRING, 1)
-      oprot.writeString(self.metadataId)
-      oprot.writeFieldEnd()
-    if self.gatewayId is not None:
-      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
-      oprot.writeString(self.gatewayId)
-      oprot.writeFieldEnd()
-    if self.username is not None:
-      oprot.writeFieldBegin('username', TType.STRING, 3)
-      oprot.writeString(self.username)
-      oprot.writeFieldEnd()
-    if self.sharedUsers is not None:
-      oprot.writeFieldBegin('sharedUsers', TType.LIST, 4)
-      oprot.writeListBegin(TType.STRING, len(self.sharedUsers))
-      for iter13 in self.sharedUsers:
-        oprot.writeString(iter13)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    if self.sharedPublic is not None:
-      oprot.writeFieldBegin('sharedPublic', TType.BOOL, 5)
-      oprot.writeBool(self.sharedPublic)
-      oprot.writeFieldEnd()
-    if self.userFriendlyName is not None:
-      oprot.writeFieldBegin('userFriendlyName', TType.STRING, 6)
-      oprot.writeString(self.userFriendlyName)
-      oprot.writeFieldEnd()
-    if self.userFriendlyDescription is not None:
-      oprot.writeFieldBegin('userFriendlyDescription', TType.STRING, 7)
-      oprot.writeString(self.userFriendlyDescription)
-      oprot.writeFieldEnd()
-    if self.metadataType is not None:
-      oprot.writeFieldBegin('metadataType', TType.I32, 8)
-      oprot.writeI32(self.metadataType)
-      oprot.writeFieldEnd()
-    if self.associatedEntityId is not None:
-      oprot.writeFieldBegin('associatedEntityId', TType.STRING, 9)
-      oprot.writeString(self.associatedEntityId)
-      oprot.writeFieldEnd()
-    if self.customInformation is not None:
-      oprot.writeFieldBegin('customInformation', TType.MAP, 10)
-      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.customInformation))
-      for kiter14,viter15 in self.customInformation.items():
-        oprot.writeString(kiter14)
-        oprot.writeString(viter15)
-      oprot.writeMapEnd()
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.metadataId)
-    value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.username)
-    value = (value * 31) ^ hash(self.sharedUsers)
-    value = (value * 31) ^ hash(self.sharedPublic)
-    value = (value * 31) ^ hash(self.userFriendlyName)
-    value = (value * 31) ^ hash(self.userFriendlyDescription)
-    value = (value * 31) ^ hash(self.metadataType)
-    value = (value * 31) ^ hash(self.associatedEntityId)
-    value = (value * 31) ^ hash(self.customInformation)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/__init__.py
deleted file mode 100644
index adefd8e..0000000
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/constants.py
deleted file mode 100644
index 4a6492b..0000000
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/constants.py
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Autogenerated by Thrift Compiler (0.9.3)
-#
-# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
-#
-#  options string: py
-#
-
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-from ttypes import *
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/ttypes.py
deleted file mode 100644
index df2ddf5..0000000
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/replica/ttypes.py
+++ /dev/null
@@ -1,663 +0,0 @@
-#
-# Autogenerated by Thrift Compiler (0.9.3)
-#
-# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
-#
-#  options string: py
-#
-
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-import apache.airavata.model.data.movement.ttypes
-
-
-from thrift.transport import TTransport
-from thrift.protocol import TBinaryProtocol, TProtocol
-try:
-  from thrift.protocol import fastbinary
-except:
-  fastbinary = None
-
-
-class FileModelType:
-  FILE = 0
-  DIRECTORY = 1
-
-  _VALUES_TO_NAMES = {
-    0: "FILE",
-    1: "DIRECTORY",
-  }
-
-  _NAMES_TO_VALUES = {
-    "FILE": 0,
-    "DIRECTORY": 1,
-  }
-
-class StorageResourceType:
-  GATEWAY_DATA_STORE = 0
-  BACKUP_GATEWAY_DATA_STORE = 1
-  COMPUTE_RESOURCE = 2
-  LONG_TERM_STORAGE_RESOURCE = 3
-  OTHER = 4
-
-  _VALUES_TO_NAMES = {
-    0: "GATEWAY_DATA_STORE",
-    1: "BACKUP_GATEWAY_DATA_STORE",
-    2: "COMPUTE_RESOURCE",
-    3: "LONG_TERM_STORAGE_RESOURCE",
-    4: "OTHER",
-  }
-
-  _NAMES_TO_VALUES = {
-    "GATEWAY_DATA_STORE": 0,
-    "BACKUP_GATEWAY_DATA_STORE": 1,
-    "COMPUTE_RESOURCE": 2,
-    "LONG_TERM_STORAGE_RESOURCE": 3,
-    "OTHER": 4,
-  }
-
-class ReplicaPersistentType:
-  TRANSIENT = 0
-  PERSISTENT = 1
-
-  _VALUES_TO_NAMES = {
-    0: "TRANSIENT",
-    1: "PERSISTENT",
-  }
-
-  _NAMES_TO_VALUES = {
-    "TRANSIENT": 0,
-    "PERSISTENT": 1,
-  }
-
-
-class FileCollectionModel:
-  """
-  Attributes:
-   - collectionId
-   - gatewayId
-   - username
-   - sharedUsers
-   - sharedPublic
-   - collectionName
-   - collectionDescription
-   - fileIdList
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'collectionId', None, None, ), # 1
-    (2, TType.STRING, 'gatewayId', None, None, ), # 2
-    (3, TType.STRING, 'username', None, None, ), # 3
-    (4, TType.LIST, 'sharedUsers', (TType.STRING,None), None, ), # 4
-    (5, TType.BOOL, 'sharedPublic', None, None, ), # 5
-    (6, TType.STRING, 'collectionName', None, None, ), # 6
-    (7, TType.STRING, 'collectionDescription', None, None, ), # 7
-    (8, TType.LIST, 'fileIdList', (TType.STRING,None), None, ), # 8
-  )
-
-  def __init__(self, collectionId=None, gatewayId=None, username=None, sharedUsers=None, sharedPublic=None, collectionName=None, collectionDescription=None, fileIdList=None,):
-    self.collectionId = collectionId
-    self.gatewayId = gatewayId
-    self.username = username
-    self.sharedUsers = sharedUsers
-    self.sharedPublic = sharedPublic
-    self.collectionName = collectionName
-    self.collectionDescription = collectionDescription
-    self.fileIdList = fileIdList
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.collectionId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.STRING:
-          self.gatewayId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.username = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
-        if ftype == TType.LIST:
-          self.sharedUsers = []
-          (_etype3, _size0) = iprot.readListBegin()
-          for _i4 in xrange(_size0):
-            _elem5 = iprot.readString()
-            self.sharedUsers.append(_elem5)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      elif fid == 5:
-        if ftype == TType.BOOL:
-          self.sharedPublic = iprot.readBool()
-        else:
-          iprot.skip(ftype)
-      elif fid == 6:
-        if ftype == TType.STRING:
-          self.collectionName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 7:
-        if ftype == TType.STRING:
-          self.collectionDescription = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 8:
-        if ftype == TType.LIST:
-          self.fileIdList = []
-          (_etype9, _size6) = iprot.readListBegin()
-          for _i10 in xrange(_size6):
-            _elem11 = iprot.readString()
-            self.fileIdList.append(_elem11)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('FileCollectionModel')
-    if self.collectionId is not None:
-      oprot.writeFieldBegin('collectionId', TType.STRING, 1)
-      oprot.writeString(self.collectionId)
-      oprot.writeFieldEnd()
-    if self.gatewayId is not None:
-      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
-      oprot.writeString(self.gatewayId)
-      oprot.writeFieldEnd()
-    if self.username is not None:
-      oprot.writeFieldBegin('username', TType.STRING, 3)
-      oprot.writeString(self.username)
-      oprot.writeFieldEnd()
-    if self.sharedUsers is not None:
-      oprot.writeFieldBegin('sharedUsers', TType.LIST, 4)
-      oprot.writeListBegin(TType.STRING, len(self.sharedUsers))
-      for iter12 in self.sharedUsers:
-        oprot.writeString(iter12)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    if self.sharedPublic is not None:
-      oprot.writeFieldBegin('sharedPublic', TType.BOOL, 5)
-      oprot.writeBool(self.sharedPublic)
-      oprot.writeFieldEnd()
-    if self.collectionName is not None:
-      oprot.writeFieldBegin('collectionName', TType.STRING, 6)
-      oprot.writeString(self.collectionName)
-      oprot.writeFieldEnd()
-    if self.collectionDescription is not None:
-      oprot.writeFieldBegin('collectionDescription', TType.STRING, 7)
-      oprot.writeString(self.collectionDescription)
-      oprot.writeFieldEnd()
-    if self.fileIdList is not None:
-      oprot.writeFieldBegin('fileIdList', TType.LIST, 8)
-      oprot.writeListBegin(TType.STRING, len(self.fileIdList))
-      for iter13 in self.fileIdList:
-        oprot.writeString(iter13)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.collectionId)
-    value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.username)
-    value = (value * 31) ^ hash(self.sharedUsers)
-    value = (value * 31) ^ hash(self.sharedPublic)
-    value = (value * 31) ^ hash(self.collectionName)
-    value = (value * 31) ^ hash(self.collectionDescription)
-    value = (value * 31) ^ hash(self.fileIdList)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
-
-class FileModel:
-  """
-  Attributes:
-   - fileId
-   - gatewayId
-   - username
-   - sharedUsers
-   - sharedPublic
-   - fileName
-   - fileDescription
-   - sha256Checksum
-   - fileType
-   - fileSize
-   - dataType
-   - creationTime
-   - lastModifiedTime
-   - fileReplicas
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'fileId', None, None, ), # 1
-    (2, TType.STRING, 'gatewayId', None, None, ), # 2
-    (3, TType.STRING, 'username', None, None, ), # 3
-    (4, TType.LIST, 'sharedUsers', (TType.STRING,None), None, ), # 4
-    (5, TType.BOOL, 'sharedPublic', None, None, ), # 5
-    (6, TType.STRING, 'fileName', None, None, ), # 6
-    (7, TType.STRING, 'fileDescription', None, None, ), # 7
-    (8, TType.STRING, 'sha256Checksum', None, None, ), # 8
-    (9, TType.I32, 'fileType', None, None, ), # 9
-    (10, TType.I32, 'fileSize', None, None, ), # 10
-    (11, TType.STRING, 'dataType', None, None, ), # 11
-    (12, TType.I64, 'creationTime', None, None, ), # 12
-    (13, TType.I64, 'lastModifiedTime', None, None, ), # 13
-    (14, TType.LIST, 'fileReplicas', (TType.STRUCT,(FileReplicaModel, FileReplicaModel.thrift_spec)), None, ), # 14
-  )
-
-  def __init__(self, fileId=None, gatewayId=None, username=None, sharedUsers=None, sharedPublic=None, fileName=None, fileDescription=None, sha256Checksum=None, fileType=None, fileSize=None, dataType=None, creationTime=None, lastModifiedTime=None, fileReplicas=None,):
-    self.fileId = fileId
-    self.gatewayId = gatewayId
-    self.username = username
-    self.sharedUsers = sharedUsers
-    self.sharedPublic = sharedPublic
-    self.fileName = fileName
-    self.fileDescription = fileDescription
-    self.sha256Checksum = sha256Checksum
-    self.fileType = fileType
-    self.fileSize = fileSize
-    self.dataType = dataType
-    self.creationTime = creationTime
-    self.lastModifiedTime = lastModifiedTime
-    self.fileReplicas = fileReplicas
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.fileId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.STRING:
-          self.gatewayId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.username = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
-        if ftype == TType.LIST:
-          self.sharedUsers = []
-          (_etype17, _size14) = iprot.readListBegin()
-          for _i18 in xrange(_size14):
-            _elem19 = iprot.readString()
-            self.sharedUsers.append(_elem19)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      elif fid == 5:
-        if ftype == TType.BOOL:
-          self.sharedPublic = iprot.readBool()
-        else:
-          iprot.skip(ftype)
-      elif fid == 6:
-        if ftype == TType.STRING:
-          self.fileName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 7:
-        if ftype == TType.STRING:
-          self.fileDescription = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 8:
-        if ftype == TType.STRING:
-          self.sha256Checksum = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 9:
-        if ftype == TType.I32:
-          self.fileType = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 10:
-        if ftype == TType.I32:
-          self.fileSize = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 11:
-        if ftype == TType.STRING:
-          self.dataType = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 12:
-        if ftype == TType.I64:
-          self.creationTime = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 13:
-        if ftype == TType.I64:
-          self.lastModifiedTime = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 14:
-        if ftype == TType.LIST:
-          self.fileReplicas = []
-          (_etype23, _size20) = iprot.readListBegin()
-          for _i24 in xrange(_size20):
-            _elem25 = FileReplicaModel()
-            _elem25.read(iprot)
-            self.fileReplicas.append(_elem25)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('FileModel')
-    if self.fileId is not None:
-      oprot.writeFieldBegin('fileId', TType.STRING, 1)
-      oprot.writeString(self.fileId)
-      oprot.writeFieldEnd()
-    if self.gatewayId is not None:
-      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
-      oprot.writeString(self.gatewayId)
-      oprot.writeFieldEnd()
-    if self.username is not None:
-      oprot.writeFieldBegin('username', TType.STRING, 3)
-      oprot.writeString(self.username)
-      oprot.writeFieldEnd()
-    if self.sharedUsers is not None:
-      oprot.writeFieldBegin('sharedUsers', TType.LIST, 4)
-      oprot.writeListBegin(TType.STRING, len(self.sharedUsers))
-      for iter26 in self.sharedUsers:
-        oprot.writeString(iter26)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    if self.sharedPublic is not None:
-      oprot.writeFieldBegin('sharedPublic', TType.BOOL, 5)
-      oprot.writeBool(self.sharedPublic)
-      oprot.writeFieldEnd()
-    if self.fileName is not None:
-      oprot.writeFieldBegin('fileName', TType.STRING, 6)
-      oprot.writeString(self.fileName)
-      oprot.writeFieldEnd()
-    if self.fileDescription is not None:
-      oprot.writeFieldBegin('fileDescription', TType.STRING, 7)
-      oprot.writeString(self.fileDescription)
-      oprot.writeFieldEnd()
-    if self.sha256Checksum is not None:
-      oprot.writeFieldBegin('sha256Checksum', TType.STRING, 8)
-      oprot.writeString(self.sha256Checksum)
-      oprot.writeFieldEnd()
-    if self.fileType is not None:
-      oprot.writeFieldBegin('fileType', TType.I32, 9)
-      oprot.writeI32(self.fileType)
-      oprot.writeFieldEnd()
-    if self.fileSize is not None:
-      oprot.writeFieldBegin('fileSize', TType.I32, 10)
-      oprot.writeI32(self.fileSize)
-      oprot.writeFieldEnd()
-    if self.dataType is not None:
-      oprot.writeFieldBegin('dataType', TType.STRING, 11)
-      oprot.writeString(self.dataType)
-      oprot.writeFieldEnd()
-    if self.creationTime is not None:
-      oprot.writeFieldBegin('creationTime', TType.I64, 12)
-      oprot.writeI64(self.creationTime)
-      oprot.writeFieldEnd()
-    if self.lastModifiedTime is not None:
-      oprot.writeFieldBegin('lastModifiedTime', TType.I64, 13)
-      oprot.writeI64(self.lastModifiedTime)
-      oprot.writeFieldEnd()
-    if self.fileReplicas is not None:
-      oprot.writeFieldBegin('fileReplicas', TType.LIST, 14)
-      oprot.writeListBegin(TType.STRUCT, len(self.fileReplicas))
-      for iter27 in self.fileReplicas:
-        iter27.write(oprot)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.fileId)
-    value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.username)
-    value = (value * 31) ^ hash(self.sharedUsers)
-    value = (value * 31) ^ hash(self.sharedPublic)
-    value = (value * 31) ^ hash(self.fileName)
-    value = (value * 31) ^ hash(self.fileDescription)
-    value = (value * 31) ^ hash(self.sha256Checksum)
-    value = (value * 31) ^ hash(self.fileType)
-    value = (value * 31) ^ hash(self.fileSize)
-    value = (value * 31) ^ hash(self.dataType)
-    value = (value * 31) ^ hash(self.creationTime)
-    value = (value * 31) ^ hash(self.lastModifiedTime)
-    value = (value * 31) ^ hash(self.fileReplicas)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
-
-class FileReplicaModel:
-  """
-  Attributes:
-   - replicaName
-   - replicaDescription
-   - storageHostname
-   - storageResourceId
-   - filePath
-   - creationTime
-   - validUntilTime
-   - storageResourceType
-   - replicaPersistentType
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'replicaName', None, None, ), # 1
-    (2, TType.STRING, 'replicaDescription', None, None, ), # 2
-    (3, TType.STRING, 'storageHostname', None, None, ), # 3
-    (4, TType.STRING, 'storageResourceId', None, None, ), # 4
-    (5, TType.STRING, 'filePath', None, None, ), # 5
-    (6, TType.I64, 'creationTime', None, None, ), # 6
-    (7, TType.I64, 'validUntilTime', None, None, ), # 7
-    (8, TType.I32, 'storageResourceType', None, None, ), # 8
-    (9, TType.I32, 'replicaPersistentType', None, None, ), # 9
-  )
-
-  def __init__(self, replicaName=None, replicaDescription=None, storageHostname=None, storageResourceId=None, filePath=None, creationTime=None, validUntilTime=None, storageResourceType=None, replicaPersistentType=None,):
-    self.replicaName = replicaName
-    self.replicaDescription = replicaDescription
-    self.storageHostname = storageHostname
-    self.storageResourceId = storageResourceId
-    self.filePath = filePath
-    self.creationTime = creationTime
-    self.validUntilTime = validUntilTime
-    self.storageResourceType = storageResourceType
-    self.replicaPersistentType = replicaPersistentType
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.replicaName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.STRING:
-          self.replicaDescription = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.storageHostname = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
-        if ftype == TType.STRING:
-          self.storageResourceId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 5:
-        if ftype == TType.STRING:
-          self.filePath = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 6:
-        if ftype == TType.I64:
-          self.creationTime = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 7:
-        if ftype == TType.I64:
-          self.validUntilTime = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 8:
-        if ftype == TType.I32:
-          self.storageResourceType = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 9:
-        if ftype == TType.I32:
-          self.replicaPersistentType = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('FileReplicaModel')
-    if self.replicaName is not None:
-      oprot.writeFieldBegin('replicaName', TType.STRING, 1)
-      oprot.writeString(self.replicaName)
-      oprot.writeFieldEnd()
-    if self.replicaDescription is not None:
-      oprot.writeFieldBegin('replicaDescription', TType.STRING, 2)
-      oprot.writeString(self.replicaDescription)
-      oprot.writeFieldEnd()
-    if self.storageHostname is not None:
-      oprot.writeFieldBegin('storageHostname', TType.STRING, 3)
-      oprot.writeString(self.storageHostname)
-      oprot.writeFieldEnd()
-    if self.storageResourceId is not None:
-      oprot.writeFieldBegin('storageResourceId', TType.STRING, 4)
-      oprot.writeString(self.storageResourceId)
-      oprot.writeFieldEnd()
-    if self.filePath is not None:
-      oprot.writeFieldBegin('filePath', TType.STRING, 5)
-      oprot.writeString(self.filePath)
-      oprot.writeFieldEnd()
-    if self.creationTime is not None:
-      oprot.writeFieldBegin('creationTime', TType.I64, 6)
-      oprot.writeI64(self.creationTime)
-      oprot.writeFieldEnd()
-    if self.validUntilTime is not None:
-      oprot.writeFieldBegin('validUntilTime', TType.I64, 7)
-      oprot.writeI64(self.validUntilTime)
-      oprot.writeFieldEnd()
-    if self.storageResourceType is not None:
-      oprot.writeFieldBegin('storageResourceType', TType.I32, 8)
-      oprot.writeI32(self.storageResourceType)
-      oprot.writeFieldEnd()
-    if self.replicaPersistentType is not None:
-      oprot.writeFieldBegin('replicaPersistentType', TType.I32, 9)
-      oprot.writeI32(self.replicaPersistentType)
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.replicaName)
-    value = (value * 31) ^ hash(self.replicaDescription)
-    value = (value * 31) ^ hash(self.storageHostname)
-    value = (value * 31) ^ hash(self.storageResourceId)
-    value = (value * 31) ^ hash(self.filePath)
-    value = (value * 31) ^ hash(self.creationTime)
-    value = (value * 31) ^ hash(self.validUntilTime)
-    value = (value * 31) ^ hash(self.storageResourceType)
-    value = (value * 31) ^ hash(self.replicaPersistentType)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/__init__.py
deleted file mode 100644
index adefd8e..0000000
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/constants.py
deleted file mode 100644
index 4a6492b..0000000
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/constants.py
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Autogenerated by Thrift Compiler (0.9.3)
-#
-# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
-#
-#  options string: py
-#
-
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-from ttypes import *
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/ttypes.py
deleted file mode 100644
index ae35462..0000000
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/file/transfer/ttypes.py
+++ /dev/null
@@ -1,597 +0,0 @@
-#
-# Autogenerated by Thrift Compiler (0.9.3)
-#
-# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
-#
-#  options string: py
-#
-
-from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-
-from thrift.transport import TTransport
-from thrift.protocol import TBinaryProtocol, TProtocol
-try:
-  from thrift.protocol import fastbinary
-except:
-  fastbinary = None
-
-
-class StorageResourceProtocol:
-  SCP = 0
-  SFTP = 1
-  HTTP = 2
-  HTTPS = 3
-  GridFTP = 4
-  LOCAL = 5
-
-  _VALUES_TO_NAMES = {
-    0: "SCP",
-    1: "SFTP",
-    2: "HTTP",
-    3: "HTTPS",
-    4: "GridFTP",
-    5: "LOCAL",
-  }
-
-  _NAMES_TO_VALUES = {
-    "SCP": 0,
-    "SFTP": 1,
-    "HTTP": 2,
-    "HTTPS": 3,
-    "GridFTP": 4,
-    "LOCAL": 5,
-  }
-
-class LSEntryType:
-  DIRECTORY = 0
-  FILE = 1
-
-  _VALUES_TO_NAMES = {
-    0: "DIRECTORY",
-    1: "FILE",
-  }
-
-  _NAMES_TO_VALUES = {
-    "DIRECTORY": 0,
-    "FILE": 1,
-  }
-
-class FileTransferMode:
-  SYNC = 0
-  ASYNC = 1
-
-  _VALUES_TO_NAMES = {
-    0: "SYNC",
-    1: "ASYNC",
-  }
-
-  _NAMES_TO_VALUES = {
-    "SYNC": 0,
-    "ASYNC": 1,
-  }
-
-class FileTransferStatus:
-  CREATED = 0
-  QUEUED = 1
-  RUNNING = 2
-  COMPLETED = 3
-  FAILED = 4
-
-  _VALUES_TO_NAMES = {
-    0: "CREATED",
-    1: "QUEUED",
-    2: "RUNNING",
-    3: "COMPLETED",
-    4: "FAILED",
-  }
-
-  _NAMES_TO_VALUES = {
-    "CREATED": 0,
-    "QUEUED": 1,
-    "RUNNING": 2,
-    "COMPLETED": 3,
-    "FAILED": 4,
-  }
-
-
-class FileTransferRequestModel:
-  """
-  Attributes:
-   - transferId
-   - gatewayId
-   - username
-   - srcHostname
-   - srcLoginName
-   - srcPort
-   - srcProtocol
-   - srcFilePath
-   - srcHostCredToken
-   - destHostname
-   - destLoginName
-   - destPort
-   - destProtocol
-   - destFilePath
-   - destHostCredToken
-   - fileTransferMode
-   - transferStatus
-   - fileSize
-   - transferTime
-   - createdTime
-   - lastModifiedType
-   - callbackEmails
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.STRING, 'transferId', None, None, ), # 1
-    (2, TType.STRING, 'gatewayId', None, None, ), # 2
-    (3, TType.STRING, 'username', None, None, ), # 3
-    (4, TType.STRING, 'srcHostname', None, None, ), # 4
-    (5, TType.STRING, 'srcLoginName', None, None, ), # 5
-    (6, TType.I64, 'srcPort', None, None, ), # 6
-    (7, TType.I32, 'srcProtocol', None, None, ), # 7
-    (8, TType.STRING, 'srcFilePath', None, None, ), # 8
-    (9, TType.STRING, 'srcHostCredToken', None, None, ), # 9
-    (10, TType.STRING, 'destHostname', None, None, ), # 10
-    (11, TType.STRING, 'destLoginName', None, None, ), # 11
-    (12, TType.I64, 'destPort', None, None, ), # 12
-    (13, TType.I32, 'destProtocol', None, None, ), # 13
-    (14, TType.STRING, 'destFilePath', None, None, ), # 14
-    (15, TType.STRING, 'destHostCredToken', None, None, ), # 15
-    (16, TType.I32, 'fileTransferMode', None, None, ), # 16
-    (17, TType.I32, 'transferStatus', None, None, ), # 17
-    (18, TType.I64, 'fileSize', None, None, ), # 18
-    (19, TType.I64, 'transferTime', None, None, ), # 19
-    (20, TType.I64, 'createdTime', None, None, ), # 20
-    (21, TType.I64, 'lastModifiedType', None, None, ), # 21
-    (22, TType.LIST, 'callbackEmails', (TType.STRING,None), None, ), # 22
-  )
-
-  def __init__(self, transferId=None, gatewayId=None, username=None, srcHostname=None, srcLoginName=None, srcPort=None, srcProtocol=None, srcFilePath=None, srcHostCredToken=None, destHostname=None, destLoginName=None, destPort=None, destProtocol=None, destFilePath=None, destHostCredToken=None, fileTransferMode=None, transferStatus=None, fileSize=None, transferTime=None, createdTime=None, lastModifiedType=None, callbackEmails=None,):
-    self.transferId = transferId
-    self.gatewayId = gatewayId
-    self.username = username
-    self.srcHostname = srcHostname
-    self.srcLoginName = srcLoginName
-    self.srcPort = srcPort
-    self.srcProtocol = srcProtocol
-    self.srcFilePath = srcFilePath
-    self.srcHostCredToken = srcHostCredToken
-    self.destHostname = destHostname
-    self.destLoginName = destLoginName
-    self.destPort = destPort
-    self.destProtocol = destProtocol
-    self.destFilePath = destFilePath
-    self.destHostCredToken = destHostCredToken
-    self.fileTransferMode = fileTransferMode
-    self.transferStatus = transferStatus
-    self.fileSize = fileSize
-    self.transferTime = transferTime
-    self.createdTime = createdTime
-    self.lastModifiedType = lastModifiedType
-    self.callbackEmails = callbackEmails
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.STRING:
-          self.transferId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.STRING:
-          self.gatewayId = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.username = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
-        if ftype == TType.STRING:
-          self.srcHostname = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 5:
-        if ftype == TType.STRING:
-          self.srcLoginName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 6:
-        if ftype == TType.I64:
-          self.srcPort = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 7:
-        if ftype == TType.I32:
-          self.srcProtocol = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 8:
-        if ftype == TType.STRING:
-          self.srcFilePath = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 9:
-        if ftype == TType.STRING:
-          self.srcHostCredToken = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 10:
-        if ftype == TType.STRING:
-          self.destHostname = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 11:
-        if ftype == TType.STRING:
-          self.destLoginName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 12:
-        if ftype == TType.I64:
-          self.destPort = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 13:
-        if ftype == TType.I32:
-          self.destProtocol = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 14:
-        if ftype == TType.STRING:
-          self.destFilePath = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 15:
-        if ftype == TType.STRING:
-          self.destHostCredToken = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 16:
-        if ftype == TType.I32:
-          self.fileTransferMode = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 17:
-        if ftype == TType.I32:
-          self.transferStatus = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 18:
-        if ftype == TType.I64:
-          self.fileSize = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 19:
-        if ftype == TType.I64:
-          self.transferTime = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 20:
-        if ftype == TType.I64:
-          self.createdTime = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 21:
-        if ftype == TType.I64:
-          self.lastModifiedType = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 22:
-        if ftype == TType.LIST:
-          self.callbackEmails = []
-          (_etype3, _size0) = iprot.readListBegin()
-          for _i4 in xrange(_size0):
-            _elem5 = iprot.readString()
-            self.callbackEmails.append(_elem5)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('FileTransferRequestModel')
-    if self.transferId is not None:
-      oprot.writeFieldBegin('transferId', TType.STRING, 1)
-      oprot.writeString(self.transferId)
-      oprot.writeFieldEnd()
-    if self.gatewayId is not None:
-      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
-      oprot.writeString(self.gatewayId)
-      oprot.writeFieldEnd()
-    if self.username is not None:
-      oprot.writeFieldBegin('username', TType.STRING, 3)
-      oprot.writeString(self.username)
-      oprot.writeFieldEnd()
-    if self.srcHostname is not None:
-      oprot.writeFieldBegin('srcHostname', TType.STRING, 4)
-      oprot.writeString(self.srcHostname)
-      oprot.writeFieldEnd()
-    if self.srcLoginName is not None:
-      oprot.writeFieldBegin('srcLoginName', TType.STRING, 5)
-      oprot.writeString(self.srcLoginName)
-      oprot.writeFieldEnd()
-    if self.srcPort is not None:
-      oprot.writeFieldBegin('srcPort', TType.I64, 6)
-      oprot.writeI64(self.srcPort)
-      oprot.writeFieldEnd()
-    if self.srcProtocol is not None:
-      oprot.writeFieldBegin('srcProtocol', TType.I32, 7)
-      oprot.writeI32(self.srcProtocol)
-      oprot.writeFieldEnd()
-    if self.srcFilePath is not None:
-      oprot.writeFieldBegin('srcFilePath', TType.STRING, 8)
-      oprot.writeString(self.srcFilePath)
-      oprot.writeFieldEnd()
-    if self.srcHostCredToken is not None:
-      oprot.writeFieldBegin('srcHostCredToken', TType.STRING, 9)
-      oprot.writeString(self.srcHostCredToken)
-      oprot.writeFieldEnd()
-    if self.destHostname is not None:
-      oprot.writeFieldBegin('destHostname', TType.STRING, 10)
-      oprot.writeString(self.destHostname)
-      oprot.writeFieldEnd()
-    if self.destLoginName is not None:
-      oprot.writeFieldBegin('destLoginName', TType.STRING, 11)
-      oprot.writeString(self.destLoginName)
-      oprot.writeFieldEnd()
-    if self.destPort is not None:
-      oprot.writeFieldBegin('destPort', TType.I64, 12)
-      oprot.writeI64(self.destPort)
-      oprot.writeFieldEnd()
-    if self.destProtocol is not None:
-      oprot.writeFieldBegin('destProtocol', TType.I32, 13)
-      oprot.writeI32(self.destProtocol)
-      oprot.writeFieldEnd()
-    if self.destFilePath is not None:
-      oprot.writeFieldBegin('destFilePath', TType.STRING, 14)
-      oprot.writeString(self.destFilePath)
-      oprot.writeFieldEnd()
-    if self.destHostCredToken is not None:
-      oprot.writeFieldBegin('destHostCredToken', TType.STRING, 15)
-      oprot.writeString(self.destHostCredToken)
-      oprot.writeFieldEnd()
-    if self.fileTransferMode is not None:
-      oprot.writeFieldBegin('fileTransferMode', TType.I32, 16)
-      oprot.writeI32(self.fileTransferMode)
-      oprot.writeFieldEnd()
-    if self.transferStatus is not None:
-      oprot.writeFieldBegin('transferStatus', TType.I32, 17)
-      oprot.writeI32(self.transferStatus)
-      oprot.writeFieldEnd()
-    if self.fileSize is not None:
-      oprot.writeFieldBegin('fileSize', TType.I64, 18)
-      oprot.writeI64(self.fileSize)
-      oprot.writeFieldEnd()
-    if self.transferTime is not None:
-      oprot.writeFieldBegin('transferTime', TType.I64, 19)
-      oprot.writeI64(self.transferTime)
-      oprot.writeFieldEnd()
-    if self.createdTime is not None:
-      oprot.writeFieldBegin('createdTime', TType.I64, 20)
-      oprot.writeI64(self.createdTime)
-      oprot.writeFieldEnd()
-    if self.lastModifiedType is not None:
-      oprot.writeFieldBegin('lastModifiedType', TType.I64, 21)
-      oprot.writeI64(self.lastModifiedType)
-      oprot.writeFieldEnd()
-    if self.callbackEmails is not None:
-      oprot.writeFieldBegin('callbackEmails', TType.LIST, 22)
-      oprot.writeListBegin(TType.STRING, len(self.callbackEmails))
-      for iter6 in self.callbackEmails:
-        oprot.writeString(iter6)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.transferId)
-    value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.username)
-    value = (value * 31) ^ hash(self.srcHostname)
-    value = (value * 31) ^ hash(self.srcLoginName)
-    value = (value * 31) ^ hash(self.srcPort)
-    value = (value * 31) ^ hash(self.srcProtocol)
-    value = (value * 31) ^ hash(self.srcFilePath)
-    value = (value * 31) ^ hash(self.srcHostCredToken)
-    value = (value * 31) ^ hash(self.destHostname)
-    value = (value * 31) ^ hash(self.destLoginName)
-    value = (value * 31) ^ hash(self.destPort)
-    value = (value * 31) ^ hash(self.destProtocol)
-    value = (value * 31) ^ hash(self.destFilePath)
-    value = (value * 31) ^ hash(self.destHostCredToken)
-    value = (value * 31) ^ hash(self.fileTransferMode)
-    value = (value * 31) ^ hash(self.transferStatus)
-    value = (value * 31) ^ hash(self.fileSize)
-    value = (value * 31) ^ hash(self.transferTime)
-    value = (value * 31) ^ hash(self.createdTime)
-    value = (value * 31) ^ hash(self.lastModifiedType)
-    value = (value * 31) ^ hash(self.callbackEmails)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)
-
-class LSEntryModel:
-  """
-  Attributes:
-   - type
-   - size
-   - nativeType
-   - name
-   - path
-   - storageHostName
-   - lastModifiedType
-   - createdTime
-  """
-
-  thrift_spec = (
-    None, # 0
-    (1, TType.I32, 'type', None, None, ), # 1
-    (2, TType.I64, 'size', None, None, ), # 2
-    (3, TType.STRING, 'nativeType', None, None, ), # 3
-    (4, TType.STRING, 'name', None, None, ), # 4
-    (5, TType.STRING, 'path', None, None, ), # 5
-    (6, TType.STRING, 'storageHostName', None, None, ), # 6
-    (7, TType.I64, 'lastModifiedType', None, None, ), # 7
-    (8, TType.I64, 'createdTime', None, None, ), # 8
-  )
-
-  def __init__(self, type=None, size=None, nativeType=None, name=None, path=None, storageHostName=None, lastModifiedType=None, createdTime=None,):
-    self.type = type
-    self.size = size
-    self.nativeType = nativeType
-    self.name = name
-    self.path = path
-    self.storageHostName = storageHostName
-    self.lastModifiedType = lastModifiedType
-    self.createdTime = createdTime
-
-  def read(self, iprot):
-    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-      return
-    iprot.readStructBegin()
-    while True:
-      (fname, ftype, fid) = iprot.readFieldBegin()
-      if ftype == TType.STOP:
-        break
-      if fid == 1:
-        if ftype == TType.I32:
-          self.type = iprot.readI32()
-        else:
-          iprot.skip(ftype)
-      elif fid == 2:
-        if ftype == TType.I64:
-          self.size = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.nativeType = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 4:
-        if ftype == TType.STRING:
-          self.name = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 5:
-        if ftype == TType.STRING:
-          self.path = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 6:
-        if ftype == TType.STRING:
-          self.storageHostName = iprot.readString()
-        else:
-          iprot.skip(ftype)
-      elif fid == 7:
-        if ftype == TType.I64:
-          self.lastModifiedType = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      elif fid == 8:
-        if ftype == TType.I64:
-          self.createdTime = iprot.readI64()
-        else:
-          iprot.skip(ftype)
-      else:
-        iprot.skip(ftype)
-      iprot.readFieldEnd()
-    iprot.readStructEnd()
-
-  def write(self, oprot):
-    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-      return
-    oprot.writeStructBegin('LSEntryModel')
-    if self.type is not None:
-      oprot.writeFieldBegin('type', TType.I32, 1)
-      oprot.writeI32(self.type)
-      oprot.writeFieldEnd()
-    if self.size is not None:
-      oprot.writeFieldBegin('size', TType.I64, 2)
-      oprot.writeI64(self.size)
-      oprot.writeFieldEnd()
-    if self.nativeType is not None:
-      oprot.writeFieldBegin('nativeType', TType.STRING, 3)
-      oprot.writeString(self.nativeType)
-      oprot.writeFieldEnd()
-    if self.name is not None:
-      oprot.writeFieldBegin('name', TType.STRING, 4)
-      oprot.writeString(self.name)
-      oprot.writeFieldEnd()
-    if self.path is not None:
-      oprot.writeFieldBegin('path', TType.STRING, 5)
-      oprot.writeString(self.path)
-      oprot.writeFieldEnd()
-    if self.storageHostName is not None:
-      oprot.writeFieldBegin('storageHostName', TType.STRING, 6)
-      oprot.writeString(self.storageHostName)
-      oprot.writeFieldEnd()
-    if self.lastModifiedType is not None:
-      oprot.writeFieldBegin('lastModifiedType', TType.I64, 7)
-      oprot.writeI64(self.lastModifiedType)
-      oprot.writeFieldEnd()
-    if self.createdTime is not None:
-      oprot.writeFieldBegin('createdTime', TType.I64, 8)
-      oprot.writeI64(self.createdTime)
-      oprot.writeFieldEnd()
-    oprot.writeFieldStop()
-    oprot.writeStructEnd()
-
-  def validate(self):
-    return
-
-
-  def __hash__(self):
-    value = 17
-    value = (value * 31) ^ hash(self.type)
-    value = (value * 31) ^ hash(self.size)
-    value = (value * 31) ^ hash(self.nativeType)
-    value = (value * 31) ^ hash(self.name)
-    value = (value * 31) ^ hash(self.path)
-    value = (value * 31) ^ hash(self.storageHostName)
-    value = (value * 31) ^ hash(self.lastModifiedType)
-    value = (value * 31) ^ hash(self.createdTime)
-    return value
-
-  def __repr__(self):
-    L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
-    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
-  def __eq__(self, other):
-    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
-  def __ne__(self, other):
-    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
index ddb7404..7ed9998 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
@@ -19,9 +19,9 @@ import apache.airavata.model.process.ttypes
 import apache.airavata.model.scheduling.ttypes
 import apache.airavata.model.status.ttypes
 import apache.airavata.model.data.movement.ttypes
-import apache.airavata.model.file.replica.ttypes
-import apache.airavata.model.file.transfer.ttypes
-import apache.airavata.model.file.metadata.ttypes
+import apache.airavata.model.data.replica.ttypes
+import apache.airavata.model.data.transfer.ttypes
+import apache.airavata.model.data.metadata.ttypes
 
 
 from thrift.transport import TTransport

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
index 912eb2d..eed0531 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/Workflow.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class Workflow implements org.apache.thrift.TBase<Workflow, Workflow._Fields>, java.io.Serializable, Cloneable, Comparable<Workflow> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Workflow");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
index 583fb0e..e65f18a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *  assigns to the environment variable "NAME" the value
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ApplicationDeploymentDescription implements org.apache.thrift.TBase<ApplicationDeploymentDescription, ApplicationDeploymentDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationDeploymentDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationDeploymentDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
index 02eb6d6..1692a20 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  *    Descriprion of the Module
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ApplicationModule implements org.apache.thrift.TBase<ApplicationModule, ApplicationModule._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationModule> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationModule");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
index eef9023..6982392 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * commandOrder:
  *   Order of the command in the multiple command situation
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class CommandObject implements org.apache.thrift.TBase<CommandObject, CommandObject._Fields>, java.io.Serializable, Cloneable, Comparable<CommandObject> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CommandObject");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
index df4bfbe..7de029e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
@@ -63,7 +63,7 @@ import org.slf4j.LoggerFactory;
  * envPathOrder:
  *   The order of the setting of the env variables when there are multiple env variables
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class SetEnvPaths implements org.apache.thrift.TBase<SetEnvPaths, SetEnvPaths._Fields>, java.io.Serializable, Cloneable, Comparable<SetEnvPaths> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetEnvPaths");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
index 0833f0a..ce41c9e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   Outputs generated from the application
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ApplicationInterfaceDescription implements org.apache.thrift.TBase<ApplicationInterfaceDescription, ApplicationInterfaceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationInterfaceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationInterfaceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
index f9e3b15..99370ff 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * maxRunTime:
  *  Maximum allowed run time in hours.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueue._Fields>, java.io.Serializable, Cloneable, Comparable<BatchQueue> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BatchQueue");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
index c3a86c9..29be8fc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmission, CloudJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<CloudJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CloudJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index 8297934..305ba02 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -80,7 +80,7 @@ import org.slf4j.LoggerFactory;
  *  Map of file systems type and the path.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
index c8f6d3f..29b4e8e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
index cbfaf6d..2e7b688 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class JobSubmissionInterface implements org.apache.thrift.TBase<JobSubmissionInterface, JobSubmissionInterface._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
index a1f7e03..5ef3389 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class LOCALSubmission implements org.apache.thrift.TBase<LOCALSubmission, LOCALSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALSubmission");
 


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferStatus.java
new file mode 100644
index 0000000..70449bb
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferStatus.java
@@ -0,0 +1,71 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.transfer;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum FileTransferStatus implements org.apache.thrift.TEnum {
+  CREATED(0),
+  QUEUED(1),
+  RUNNING(2),
+  COMPLETED(3),
+  FAILED(4);
+
+  private final int value;
+
+  private FileTransferStatus(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 FileTransferStatus findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return CREATED;
+      case 1:
+        return QUEUED;
+      case 2:
+        return RUNNING;
+      case 3:
+        return COMPLETED;
+      case 4:
+        return FAILED;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/LSEntryModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/LSEntryModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/LSEntryModel.java
new file mode 100644
index 0000000..930819a
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/LSEntryModel.java
@@ -0,0 +1,1147 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.transfer;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
+public class LSEntryModel implements org.apache.thrift.TBase<LSEntryModel, LSEntryModel._Fields>, java.io.Serializable, Cloneable, Comparable<LSEntryModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LSEntryModel");
+
+  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("size", org.apache.thrift.protocol.TType.I64, (short)2);
+  private static final org.apache.thrift.protocol.TField NATIVE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("nativeType", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("path", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField STORAGE_HOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("storageHostName", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedType", org.apache.thrift.protocol.TType.I64, (short)7);
+  private static final org.apache.thrift.protocol.TField CREATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("createdTime", org.apache.thrift.protocol.TType.I64, (short)8);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new LSEntryModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new LSEntryModelTupleSchemeFactory());
+  }
+
+  private LSEntryType type; // optional
+  private long size; // optional
+  private String nativeType; // optional
+  private String name; // optional
+  private String path; // optional
+  private String storageHostName; // optional
+  private long lastModifiedType; // optional
+  private long createdTime; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see LSEntryType
+     */
+    TYPE((short)1, "type"),
+    SIZE((short)2, "size"),
+    NATIVE_TYPE((short)3, "nativeType"),
+    NAME((short)4, "name"),
+    PATH((short)5, "path"),
+    STORAGE_HOST_NAME((short)6, "storageHostName"),
+    LAST_MODIFIED_TYPE((short)7, "lastModifiedType"),
+    CREATED_TIME((short)8, "createdTime");
+
+    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: // TYPE
+          return TYPE;
+        case 2: // SIZE
+          return SIZE;
+        case 3: // NATIVE_TYPE
+          return NATIVE_TYPE;
+        case 4: // NAME
+          return NAME;
+        case 5: // PATH
+          return PATH;
+        case 6: // STORAGE_HOST_NAME
+          return STORAGE_HOST_NAME;
+        case 7: // LAST_MODIFIED_TYPE
+          return LAST_MODIFIED_TYPE;
+        case 8: // CREATED_TIME
+          return CREATED_TIME;
+        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 __SIZE_ISSET_ID = 0;
+  private static final int __LASTMODIFIEDTYPE_ISSET_ID = 1;
+  private static final int __CREATEDTIME_ISSET_ID = 2;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.TYPE,_Fields.SIZE,_Fields.NATIVE_TYPE,_Fields.NAME,_Fields.PATH,_Fields.STORAGE_HOST_NAME,_Fields.LAST_MODIFIED_TYPE,_Fields.CREATED_TIME};
+  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.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, LSEntryType.class)));
+    tmpMap.put(_Fields.SIZE, new org.apache.thrift.meta_data.FieldMetaData("size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.NATIVE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("nativeType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PATH, new org.apache.thrift.meta_data.FieldMetaData("path", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STORAGE_HOST_NAME, new org.apache.thrift.meta_data.FieldMetaData("storageHostName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.LAST_MODIFIED_TYPE, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.CREATED_TIME, new org.apache.thrift.meta_data.FieldMetaData("createdTime", 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(LSEntryModel.class, metaDataMap);
+  }
+
+  public LSEntryModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public LSEntryModel(LSEntryModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetType()) {
+      this.type = other.type;
+    }
+    this.size = other.size;
+    if (other.isSetNativeType()) {
+      this.nativeType = other.nativeType;
+    }
+    if (other.isSetName()) {
+      this.name = other.name;
+    }
+    if (other.isSetPath()) {
+      this.path = other.path;
+    }
+    if (other.isSetStorageHostName()) {
+      this.storageHostName = other.storageHostName;
+    }
+    this.lastModifiedType = other.lastModifiedType;
+    this.createdTime = other.createdTime;
+  }
+
+  public LSEntryModel deepCopy() {
+    return new LSEntryModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.type = null;
+    setSizeIsSet(false);
+    this.size = 0;
+    this.nativeType = null;
+    this.name = null;
+    this.path = null;
+    this.storageHostName = null;
+    setLastModifiedTypeIsSet(false);
+    this.lastModifiedType = 0;
+    setCreatedTimeIsSet(false);
+    this.createdTime = 0;
+  }
+
+  /**
+   * 
+   * @see LSEntryType
+   */
+  public LSEntryType getType() {
+    return this.type;
+  }
+
+  /**
+   * 
+   * @see LSEntryType
+   */
+  public void setType(LSEntryType 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 long getSize() {
+    return this.size;
+  }
+
+  public void setSize(long size) {
+    this.size = size;
+    setSizeIsSet(true);
+  }
+
+  public void unsetSize() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SIZE_ISSET_ID);
+  }
+
+  /** Returns true if field size is set (has been assigned a value) and false otherwise */
+  public boolean isSetSize() {
+    return EncodingUtils.testBit(__isset_bitfield, __SIZE_ISSET_ID);
+  }
+
+  public void setSizeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SIZE_ISSET_ID, value);
+  }
+
+  public String getNativeType() {
+    return this.nativeType;
+  }
+
+  public void setNativeType(String nativeType) {
+    this.nativeType = nativeType;
+  }
+
+  public void unsetNativeType() {
+    this.nativeType = null;
+  }
+
+  /** Returns true if field nativeType is set (has been assigned a value) and false otherwise */
+  public boolean isSetNativeType() {
+    return this.nativeType != null;
+  }
+
+  public void setNativeTypeIsSet(boolean value) {
+    if (!value) {
+      this.nativeType = null;
+    }
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public void unsetName() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false otherwise */
+  public boolean isSetName() {
+    return this.name != null;
+  }
+
+  public void setNameIsSet(boolean value) {
+    if (!value) {
+      this.name = null;
+    }
+  }
+
+  public String getPath() {
+    return this.path;
+  }
+
+  public void setPath(String path) {
+    this.path = path;
+  }
+
+  public void unsetPath() {
+    this.path = null;
+  }
+
+  /** Returns true if field path is set (has been assigned a value) and false otherwise */
+  public boolean isSetPath() {
+    return this.path != null;
+  }
+
+  public void setPathIsSet(boolean value) {
+    if (!value) {
+      this.path = null;
+    }
+  }
+
+  public String getStorageHostName() {
+    return this.storageHostName;
+  }
+
+  public void setStorageHostName(String storageHostName) {
+    this.storageHostName = storageHostName;
+  }
+
+  public void unsetStorageHostName() {
+    this.storageHostName = null;
+  }
+
+  /** Returns true if field storageHostName is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageHostName() {
+    return this.storageHostName != null;
+  }
+
+  public void setStorageHostNameIsSet(boolean value) {
+    if (!value) {
+      this.storageHostName = null;
+    }
+  }
+
+  public long getLastModifiedType() {
+    return this.lastModifiedType;
+  }
+
+  public void setLastModifiedType(long lastModifiedType) {
+    this.lastModifiedType = lastModifiedType;
+    setLastModifiedTypeIsSet(true);
+  }
+
+  public void unsetLastModifiedType() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID);
+  }
+
+  /** Returns true if field lastModifiedType is set (has been assigned a value) and false otherwise */
+  public boolean isSetLastModifiedType() {
+    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID);
+  }
+
+  public void setLastModifiedTypeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID, value);
+  }
+
+  public long getCreatedTime() {
+    return this.createdTime;
+  }
+
+  public void setCreatedTime(long createdTime) {
+    this.createdTime = createdTime;
+    setCreatedTimeIsSet(true);
+  }
+
+  public void unsetCreatedTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
+  }
+
+  /** Returns true if field createdTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreatedTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
+  }
+
+  public void setCreatedTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATEDTIME_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TYPE:
+      if (value == null) {
+        unsetType();
+      } else {
+        setType((LSEntryType)value);
+      }
+      break;
+
+    case SIZE:
+      if (value == null) {
+        unsetSize();
+      } else {
+        setSize((Long)value);
+      }
+      break;
+
+    case NATIVE_TYPE:
+      if (value == null) {
+        unsetNativeType();
+      } else {
+        setNativeType((String)value);
+      }
+      break;
+
+    case NAME:
+      if (value == null) {
+        unsetName();
+      } else {
+        setName((String)value);
+      }
+      break;
+
+    case PATH:
+      if (value == null) {
+        unsetPath();
+      } else {
+        setPath((String)value);
+      }
+      break;
+
+    case STORAGE_HOST_NAME:
+      if (value == null) {
+        unsetStorageHostName();
+      } else {
+        setStorageHostName((String)value);
+      }
+      break;
+
+    case LAST_MODIFIED_TYPE:
+      if (value == null) {
+        unsetLastModifiedType();
+      } else {
+        setLastModifiedType((Long)value);
+      }
+      break;
+
+    case CREATED_TIME:
+      if (value == null) {
+        unsetCreatedTime();
+      } else {
+        setCreatedTime((Long)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TYPE:
+      return getType();
+
+    case SIZE:
+      return getSize();
+
+    case NATIVE_TYPE:
+      return getNativeType();
+
+    case NAME:
+      return getName();
+
+    case PATH:
+      return getPath();
+
+    case STORAGE_HOST_NAME:
+      return getStorageHostName();
+
+    case LAST_MODIFIED_TYPE:
+      return getLastModifiedType();
+
+    case CREATED_TIME:
+      return getCreatedTime();
+
+    }
+    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 TYPE:
+      return isSetType();
+    case SIZE:
+      return isSetSize();
+    case NATIVE_TYPE:
+      return isSetNativeType();
+    case NAME:
+      return isSetName();
+    case PATH:
+      return isSetPath();
+    case STORAGE_HOST_NAME:
+      return isSetStorageHostName();
+    case LAST_MODIFIED_TYPE:
+      return isSetLastModifiedType();
+    case CREATED_TIME:
+      return isSetCreatedTime();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof LSEntryModel)
+      return this.equals((LSEntryModel)that);
+    return false;
+  }
+
+  public boolean equals(LSEntryModel that) {
+    if (that == null)
+      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_size = true && this.isSetSize();
+    boolean that_present_size = true && that.isSetSize();
+    if (this_present_size || that_present_size) {
+      if (!(this_present_size && that_present_size))
+        return false;
+      if (this.size != that.size)
+        return false;
+    }
+
+    boolean this_present_nativeType = true && this.isSetNativeType();
+    boolean that_present_nativeType = true && that.isSetNativeType();
+    if (this_present_nativeType || that_present_nativeType) {
+      if (!(this_present_nativeType && that_present_nativeType))
+        return false;
+      if (!this.nativeType.equals(that.nativeType))
+        return false;
+    }
+
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
+        return false;
+      if (!this.name.equals(that.name))
+        return false;
+    }
+
+    boolean this_present_path = true && this.isSetPath();
+    boolean that_present_path = true && that.isSetPath();
+    if (this_present_path || that_present_path) {
+      if (!(this_present_path && that_present_path))
+        return false;
+      if (!this.path.equals(that.path))
+        return false;
+    }
+
+    boolean this_present_storageHostName = true && this.isSetStorageHostName();
+    boolean that_present_storageHostName = true && that.isSetStorageHostName();
+    if (this_present_storageHostName || that_present_storageHostName) {
+      if (!(this_present_storageHostName && that_present_storageHostName))
+        return false;
+      if (!this.storageHostName.equals(that.storageHostName))
+        return false;
+    }
+
+    boolean this_present_lastModifiedType = true && this.isSetLastModifiedType();
+    boolean that_present_lastModifiedType = true && that.isSetLastModifiedType();
+    if (this_present_lastModifiedType || that_present_lastModifiedType) {
+      if (!(this_present_lastModifiedType && that_present_lastModifiedType))
+        return false;
+      if (this.lastModifiedType != that.lastModifiedType)
+        return false;
+    }
+
+    boolean this_present_createdTime = true && this.isSetCreatedTime();
+    boolean that_present_createdTime = true && that.isSetCreatedTime();
+    if (this_present_createdTime || that_present_createdTime) {
+      if (!(this_present_createdTime && that_present_createdTime))
+        return false;
+      if (this.createdTime != that.createdTime)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_type = true && (isSetType());
+    list.add(present_type);
+    if (present_type)
+      list.add(type.getValue());
+
+    boolean present_size = true && (isSetSize());
+    list.add(present_size);
+    if (present_size)
+      list.add(size);
+
+    boolean present_nativeType = true && (isSetNativeType());
+    list.add(present_nativeType);
+    if (present_nativeType)
+      list.add(nativeType);
+
+    boolean present_name = true && (isSetName());
+    list.add(present_name);
+    if (present_name)
+      list.add(name);
+
+    boolean present_path = true && (isSetPath());
+    list.add(present_path);
+    if (present_path)
+      list.add(path);
+
+    boolean present_storageHostName = true && (isSetStorageHostName());
+    list.add(present_storageHostName);
+    if (present_storageHostName)
+      list.add(storageHostName);
+
+    boolean present_lastModifiedType = true && (isSetLastModifiedType());
+    list.add(present_lastModifiedType);
+    if (present_lastModifiedType)
+      list.add(lastModifiedType);
+
+    boolean present_createdTime = true && (isSetCreatedTime());
+    list.add(present_createdTime);
+    if (present_createdTime)
+      list.add(createdTime);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(LSEntryModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    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(isSetSize()).compareTo(other.isSetSize());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSize()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.size, other.size);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetNativeType()).compareTo(other.isSetNativeType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNativeType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nativeType, other.nativeType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPath()).compareTo(other.isSetPath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.path, other.path);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStorageHostName()).compareTo(other.isSetStorageHostName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageHostName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageHostName, other.storageHostName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLastModifiedType()).compareTo(other.isSetLastModifiedType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLastModifiedType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedType, other.lastModifiedType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCreatedTime()).compareTo(other.isSetCreatedTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCreatedTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.createdTime, other.createdTime);
+      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("LSEntryModel(");
+    boolean first = true;
+
+    if (isSetType()) {
+      sb.append("type:");
+      if (this.type == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.type);
+      }
+      first = false;
+    }
+    if (isSetSize()) {
+      if (!first) sb.append(", ");
+      sb.append("size:");
+      sb.append(this.size);
+      first = false;
+    }
+    if (isSetNativeType()) {
+      if (!first) sb.append(", ");
+      sb.append("nativeType:");
+      if (this.nativeType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.nativeType);
+      }
+      first = false;
+    }
+    if (isSetName()) {
+      if (!first) sb.append(", ");
+      sb.append("name:");
+      if (this.name == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.name);
+      }
+      first = false;
+    }
+    if (isSetPath()) {
+      if (!first) sb.append(", ");
+      sb.append("path:");
+      if (this.path == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.path);
+      }
+      first = false;
+    }
+    if (isSetStorageHostName()) {
+      if (!first) sb.append(", ");
+      sb.append("storageHostName:");
+      if (this.storageHostName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.storageHostName);
+      }
+      first = false;
+    }
+    if (isSetLastModifiedType()) {
+      if (!first) sb.append(", ");
+      sb.append("lastModifiedType:");
+      sb.append(this.lastModifiedType);
+      first = false;
+    }
+    if (isSetCreatedTime()) {
+      if (!first) sb.append(", ");
+      sb.append("createdTime:");
+      sb.append(this.createdTime);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 LSEntryModelStandardSchemeFactory implements SchemeFactory {
+    public LSEntryModelStandardScheme getScheme() {
+      return new LSEntryModelStandardScheme();
+    }
+  }
+
+  private static class LSEntryModelStandardScheme extends StandardScheme<LSEntryModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, LSEntryModel 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: // TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.type = org.apache.airavata.model.data.transfer.LSEntryType.findByValue(iprot.readI32());
+              struct.setTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SIZE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.size = iprot.readI64();
+              struct.setSizeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // NATIVE_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.nativeType = iprot.readString();
+              struct.setNativeTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.path = iprot.readString();
+              struct.setPathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // STORAGE_HOST_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageHostName = iprot.readString();
+              struct.setStorageHostNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // LAST_MODIFIED_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.lastModifiedType = iprot.readI64();
+              struct.setLastModifiedTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // CREATED_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.createdTime = iprot.readI64();
+              struct.setCreatedTimeIsSet(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, LSEntryModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.type != null) {
+        if (struct.isSetType()) {
+          oprot.writeFieldBegin(TYPE_FIELD_DESC);
+          oprot.writeI32(struct.type.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetSize()) {
+        oprot.writeFieldBegin(SIZE_FIELD_DESC);
+        oprot.writeI64(struct.size);
+        oprot.writeFieldEnd();
+      }
+      if (struct.nativeType != null) {
+        if (struct.isSetNativeType()) {
+          oprot.writeFieldBegin(NATIVE_TYPE_FIELD_DESC);
+          oprot.writeString(struct.nativeType);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.name != null) {
+        if (struct.isSetName()) {
+          oprot.writeFieldBegin(NAME_FIELD_DESC);
+          oprot.writeString(struct.name);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.path != null) {
+        if (struct.isSetPath()) {
+          oprot.writeFieldBegin(PATH_FIELD_DESC);
+          oprot.writeString(struct.path);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.storageHostName != null) {
+        if (struct.isSetStorageHostName()) {
+          oprot.writeFieldBegin(STORAGE_HOST_NAME_FIELD_DESC);
+          oprot.writeString(struct.storageHostName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetLastModifiedType()) {
+        oprot.writeFieldBegin(LAST_MODIFIED_TYPE_FIELD_DESC);
+        oprot.writeI64(struct.lastModifiedType);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCreatedTime()) {
+        oprot.writeFieldBegin(CREATED_TIME_FIELD_DESC);
+        oprot.writeI64(struct.createdTime);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class LSEntryModelTupleSchemeFactory implements SchemeFactory {
+    public LSEntryModelTupleScheme getScheme() {
+      return new LSEntryModelTupleScheme();
+    }
+  }
+
+  private static class LSEntryModelTupleScheme extends TupleScheme<LSEntryModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, LSEntryModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetType()) {
+        optionals.set(0);
+      }
+      if (struct.isSetSize()) {
+        optionals.set(1);
+      }
+      if (struct.isSetNativeType()) {
+        optionals.set(2);
+      }
+      if (struct.isSetName()) {
+        optionals.set(3);
+      }
+      if (struct.isSetPath()) {
+        optionals.set(4);
+      }
+      if (struct.isSetStorageHostName()) {
+        optionals.set(5);
+      }
+      if (struct.isSetLastModifiedType()) {
+        optionals.set(6);
+      }
+      if (struct.isSetCreatedTime()) {
+        optionals.set(7);
+      }
+      oprot.writeBitSet(optionals, 8);
+      if (struct.isSetType()) {
+        oprot.writeI32(struct.type.getValue());
+      }
+      if (struct.isSetSize()) {
+        oprot.writeI64(struct.size);
+      }
+      if (struct.isSetNativeType()) {
+        oprot.writeString(struct.nativeType);
+      }
+      if (struct.isSetName()) {
+        oprot.writeString(struct.name);
+      }
+      if (struct.isSetPath()) {
+        oprot.writeString(struct.path);
+      }
+      if (struct.isSetStorageHostName()) {
+        oprot.writeString(struct.storageHostName);
+      }
+      if (struct.isSetLastModifiedType()) {
+        oprot.writeI64(struct.lastModifiedType);
+      }
+      if (struct.isSetCreatedTime()) {
+        oprot.writeI64(struct.createdTime);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, LSEntryModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(8);
+      if (incoming.get(0)) {
+        struct.type = org.apache.airavata.model.data.transfer.LSEntryType.findByValue(iprot.readI32());
+        struct.setTypeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.size = iprot.readI64();
+        struct.setSizeIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.nativeType = iprot.readString();
+        struct.setNativeTypeIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.name = iprot.readString();
+        struct.setNameIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.path = iprot.readString();
+        struct.setPathIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.storageHostName = iprot.readString();
+        struct.setStorageHostNameIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.lastModifiedType = iprot.readI64();
+        struct.setLastModifiedTypeIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.createdTime = iprot.readI64();
+        struct.setCreatedTimeIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/LSEntryType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/LSEntryType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/LSEntryType.java
new file mode 100644
index 0000000..b905e0d
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/LSEntryType.java
@@ -0,0 +1,62 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.transfer;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum LSEntryType implements org.apache.thrift.TEnum {
+  DIRECTORY(0),
+  FILE(1);
+
+  private final int value;
+
+  private LSEntryType(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 LSEntryType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return DIRECTORY;
+      case 1:
+        return FILE;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/StorageResourceProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/StorageResourceProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/StorageResourceProtocol.java
new file mode 100644
index 0000000..06281e6
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/StorageResourceProtocol.java
@@ -0,0 +1,74 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.transfer;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum StorageResourceProtocol implements org.apache.thrift.TEnum {
+  SCP(0),
+  SFTP(1),
+  HTTP(2),
+  HTTPS(3),
+  GridFTP(4),
+  LOCAL(5);
+
+  private final int value;
+
+  private StorageResourceProtocol(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 StorageResourceProtocol findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return SCP;
+      case 1:
+        return SFTP;
+      case 2:
+        return HTTP;
+      case 3:
+        return HTTPS;
+      case 4:
+        return GridFTP;
+      case 5:
+        return LOCAL;
+      default:
+        return null;
+    }
+  }
+}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
new file mode 100644
index 0000000..5acc0e8
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
@@ -0,0 +1,1448 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.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 javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ExperimentSummaryModel implements org.apache.thrift.TBase<ExperimentSummaryModel, ExperimentSummaryModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentSummaryModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentSummaryModel");
+
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  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)4);
+  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField EXECUTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("executionId", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField RESOURCE_HOST_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceHostId", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentStatus", org.apache.thrift.protocol.TType.STRING, (short)10);
+  private static final org.apache.thrift.protocol.TField STATUS_UPDATE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("statusUpdateTime", org.apache.thrift.protocol.TType.I64, (short)12);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ExperimentSummaryModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ExperimentSummaryModelTupleSchemeFactory());
+  }
+
+  public String experimentId; // required
+  public String projectId; // required
+  public String gatewayId; // required
+  public long creationTime; // optional
+  public String userName; // required
+  public String name; // required
+  public String description; // optional
+  public String executionId; // optional
+  public String resourceHostId; // optional
+  public String experimentStatus; // optional
+  public long statusUpdateTime; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    EXPERIMENT_ID((short)1, "experimentId"),
+    PROJECT_ID((short)2, "projectId"),
+    GATEWAY_ID((short)3, "gatewayId"),
+    CREATION_TIME((short)4, "creationTime"),
+    USER_NAME((short)5, "userName"),
+    NAME((short)6, "name"),
+    DESCRIPTION((short)7, "description"),
+    EXECUTION_ID((short)8, "executionId"),
+    RESOURCE_HOST_ID((short)9, "resourceHostId"),
+    EXPERIMENT_STATUS((short)10, "experimentStatus"),
+    STATUS_UPDATE_TIME((short)12, "statusUpdateTime");
+
+    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: // EXPERIMENT_ID
+          return EXPERIMENT_ID;
+        case 2: // PROJECT_ID
+          return PROJECT_ID;
+        case 3: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 4: // CREATION_TIME
+          return CREATION_TIME;
+        case 5: // USER_NAME
+          return USER_NAME;
+        case 6: // NAME
+          return NAME;
+        case 7: // DESCRIPTION
+          return DESCRIPTION;
+        case 8: // EXECUTION_ID
+          return EXECUTION_ID;
+        case 9: // RESOURCE_HOST_ID
+          return RESOURCE_HOST_ID;
+        case 10: // EXPERIMENT_STATUS
+          return EXPERIMENT_STATUS;
+        case 12: // STATUS_UPDATE_TIME
+          return STATUS_UPDATE_TIME;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __CREATIONTIME_ISSET_ID = 0;
+  private static final int __STATUSUPDATETIME_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.DESCRIPTION,_Fields.EXECUTION_ID,_Fields.RESOURCE_HOST_ID,_Fields.EXPERIMENT_STATUS,_Fields.STATUS_UPDATE_TIME};
+  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.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", 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.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("description", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXECUTION_ID, new org.apache.thrift.meta_data.FieldMetaData("executionId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_HOST_ID, new org.apache.thrift.meta_data.FieldMetaData("resourceHostId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXPERIMENT_STATUS, new org.apache.thrift.meta_data.FieldMetaData("experimentStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STATUS_UPDATE_TIME, new org.apache.thrift.meta_data.FieldMetaData("statusUpdateTime", 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(ExperimentSummaryModel.class, metaDataMap);
+  }
+
+  public ExperimentSummaryModel() {
+  }
+
+  public ExperimentSummaryModel(
+    String experimentId,
+    String projectId,
+    String gatewayId,
+    String userName,
+    String name)
+  {
+    this();
+    this.experimentId = experimentId;
+    this.projectId = projectId;
+    this.gatewayId = gatewayId;
+    this.userName = userName;
+    this.name = name;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ExperimentSummaryModel(ExperimentSummaryModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetExperimentId()) {
+      this.experimentId = other.experimentId;
+    }
+    if (other.isSetProjectId()) {
+      this.projectId = other.projectId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    this.creationTime = other.creationTime;
+    if (other.isSetUserName()) {
+      this.userName = other.userName;
+    }
+    if (other.isSetName()) {
+      this.name = other.name;
+    }
+    if (other.isSetDescription()) {
+      this.description = other.description;
+    }
+    if (other.isSetExecutionId()) {
+      this.executionId = other.executionId;
+    }
+    if (other.isSetResourceHostId()) {
+      this.resourceHostId = other.resourceHostId;
+    }
+    if (other.isSetExperimentStatus()) {
+      this.experimentStatus = other.experimentStatus;
+    }
+    this.statusUpdateTime = other.statusUpdateTime;
+  }
+
+  public ExperimentSummaryModel deepCopy() {
+    return new ExperimentSummaryModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.experimentId = null;
+    this.projectId = null;
+    this.gatewayId = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    this.userName = null;
+    this.name = null;
+    this.description = null;
+    this.executionId = null;
+    this.resourceHostId = null;
+    this.experimentStatus = null;
+    setStatusUpdateTimeIsSet(false);
+    this.statusUpdateTime = 0;
+  }
+
+  public String getExperimentId() {
+    return this.experimentId;
+  }
+
+  public ExperimentSummaryModel setExperimentId(String experimentId) {
+    this.experimentId = experimentId;
+    return this;
+  }
+
+  public void unsetExperimentId() {
+    this.experimentId = null;
+  }
+
+  /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentId() {
+    return this.experimentId != null;
+  }
+
+  public void setExperimentIdIsSet(boolean value) {
+    if (!value) {
+      this.experimentId = null;
+    }
+  }
+
+  public String getProjectId() {
+    return this.projectId;
+  }
+
+  public ExperimentSummaryModel setProjectId(String projectId) {
+    this.projectId = projectId;
+    return this;
+  }
+
+  public void unsetProjectId() {
+    this.projectId = null;
+  }
+
+  /** Returns true if field projectId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProjectId() {
+    return this.projectId != null;
+  }
+
+  public void setProjectIdIsSet(boolean value) {
+    if (!value) {
+      this.projectId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public ExperimentSummaryModel setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+    return this;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public ExperimentSummaryModel setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetCreationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  public void setCreationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
+  }
+
+  public String getUserName() {
+    return this.userName;
+  }
+
+  public ExperimentSummaryModel setUserName(String userName) {
+    this.userName = userName;
+    return this;
+  }
+
+  public void unsetUserName() {
+    this.userName = null;
+  }
+
+  /** Returns true if field userName is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserName() {
+    return this.userName != null;
+  }
+
+  public void setUserNameIsSet(boolean value) {
+    if (!value) {
+      this.userName = null;
+    }
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public ExperimentSummaryModel setName(String name) {
+    this.name = name;
+    return this;
+  }
+
+  public void unsetName() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false otherwise */
+  public boolean isSetName() {
+    return this.name != null;
+  }
+
+  public void setNameIsSet(boolean value) {
+    if (!value) {
+      this.name = null;
+    }
+  }
+
+  public String getDescription() {
+    return this.description;
+  }
+
+  public ExperimentSummaryModel setDescription(String description) {
+    this.description = description;
+    return this;
+  }
+
+  public void unsetDescription() {
+    this.description = null;
+  }
+
+  /** Returns true if field description is set (has been assigned a value) and false otherwise */
+  public boolean isSetDescription() {
+    return this.description != null;
+  }
+
+  public void setDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.description = null;
+    }
+  }
+
+  public String getExecutionId() {
+    return this.executionId;
+  }
+
+  public ExperimentSummaryModel setExecutionId(String executionId) {
+    this.executionId = executionId;
+    return this;
+  }
+
+  public void unsetExecutionId() {
+    this.executionId = null;
+  }
+
+  /** Returns true if field executionId is set (has been assigned a value) and false otherwise */
+  public boolean isSetExecutionId() {
+    return this.executionId != null;
+  }
+
+  public void setExecutionIdIsSet(boolean value) {
+    if (!value) {
+      this.executionId = null;
+    }
+  }
+
+  public String getResourceHostId() {
+    return this.resourceHostId;
+  }
+
+  public ExperimentSummaryModel setResourceHostId(String resourceHostId) {
+    this.resourceHostId = resourceHostId;
+    return this;
+  }
+
+  public void unsetResourceHostId() {
+    this.resourceHostId = null;
+  }
+
+  /** Returns true if field resourceHostId is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceHostId() {
+    return this.resourceHostId != null;
+  }
+
+  public void setResourceHostIdIsSet(boolean value) {
+    if (!value) {
+      this.resourceHostId = null;
+    }
+  }
+
+  public String getExperimentStatus() {
+    return this.experimentStatus;
+  }
+
+  public ExperimentSummaryModel setExperimentStatus(String experimentStatus) {
+    this.experimentStatus = experimentStatus;
+    return this;
+  }
+
+  public void unsetExperimentStatus() {
+    this.experimentStatus = null;
+  }
+
+  /** Returns true if field experimentStatus is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentStatus() {
+    return this.experimentStatus != null;
+  }
+
+  public void setExperimentStatusIsSet(boolean value) {
+    if (!value) {
+      this.experimentStatus = null;
+    }
+  }
+
+  public long getStatusUpdateTime() {
+    return this.statusUpdateTime;
+  }
+
+  public ExperimentSummaryModel setStatusUpdateTime(long statusUpdateTime) {
+    this.statusUpdateTime = statusUpdateTime;
+    setStatusUpdateTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetStatusUpdateTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __STATUSUPDATETIME_ISSET_ID);
+  }
+
+  /** Returns true if field statusUpdateTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetStatusUpdateTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __STATUSUPDATETIME_ISSET_ID);
+  }
+
+  public void setStatusUpdateTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __STATUSUPDATETIME_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case EXPERIMENT_ID:
+      if (value == null) {
+        unsetExperimentId();
+      } else {
+        setExperimentId((String)value);
+      }
+      break;
+
+    case PROJECT_ID:
+      if (value == null) {
+        unsetProjectId();
+      } else {
+        setProjectId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case USER_NAME:
+      if (value == null) {
+        unsetUserName();
+      } else {
+        setUserName((String)value);
+      }
+      break;
+
+    case NAME:
+      if (value == null) {
+        unsetName();
+      } else {
+        setName((String)value);
+      }
+      break;
+
+    case DESCRIPTION:
+      if (value == null) {
+        unsetDescription();
+      } else {
+        setDescription((String)value);
+      }
+      break;
+
+    case EXECUTION_ID:
+      if (value == null) {
+        unsetExecutionId();
+      } else {
+        setExecutionId((String)value);
+      }
+      break;
+
+    case RESOURCE_HOST_ID:
+      if (value == null) {
+        unsetResourceHostId();
+      } else {
+        setResourceHostId((String)value);
+      }
+      break;
+
+    case EXPERIMENT_STATUS:
+      if (value == null) {
+        unsetExperimentStatus();
+      } else {
+        setExperimentStatus((String)value);
+      }
+      break;
+
+    case STATUS_UPDATE_TIME:
+      if (value == null) {
+        unsetStatusUpdateTime();
+      } else {
+        setStatusUpdateTime((Long)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case EXPERIMENT_ID:
+      return getExperimentId();
+
+    case PROJECT_ID:
+      return getProjectId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case CREATION_TIME:
+      return Long.valueOf(getCreationTime());
+
+    case USER_NAME:
+      return getUserName();
+
+    case NAME:
+      return getName();
+
+    case DESCRIPTION:
+      return getDescription();
+
+    case EXECUTION_ID:
+      return getExecutionId();
+
+    case RESOURCE_HOST_ID:
+      return getResourceHostId();
+
+    case EXPERIMENT_STATUS:
+      return getExperimentStatus();
+
+    case STATUS_UPDATE_TIME:
+      return Long.valueOf(getStatusUpdateTime());
+
+    }
+    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 EXPERIMENT_ID:
+      return isSetExperimentId();
+    case PROJECT_ID:
+      return isSetProjectId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case USER_NAME:
+      return isSetUserName();
+    case NAME:
+      return isSetName();
+    case DESCRIPTION:
+      return isSetDescription();
+    case EXECUTION_ID:
+      return isSetExecutionId();
+    case RESOURCE_HOST_ID:
+      return isSetResourceHostId();
+    case EXPERIMENT_STATUS:
+      return isSetExperimentStatus();
+    case STATUS_UPDATE_TIME:
+      return isSetStatusUpdateTime();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ExperimentSummaryModel)
+      return this.equals((ExperimentSummaryModel)that);
+    return false;
+  }
+
+  public boolean equals(ExperimentSummaryModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_experimentId = true && this.isSetExperimentId();
+    boolean that_present_experimentId = true && that.isSetExperimentId();
+    if (this_present_experimentId || that_present_experimentId) {
+      if (!(this_present_experimentId && that_present_experimentId))
+        return false;
+      if (!this.experimentId.equals(that.experimentId))
+        return false;
+    }
+
+    boolean this_present_projectId = true && this.isSetProjectId();
+    boolean that_present_projectId = true && that.isSetProjectId();
+    if (this_present_projectId || that_present_projectId) {
+      if (!(this_present_projectId && that_present_projectId))
+        return false;
+      if (!this.projectId.equals(that.projectId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        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_userName = true && this.isSetUserName();
+    boolean that_present_userName = true && that.isSetUserName();
+    if (this_present_userName || that_present_userName) {
+      if (!(this_present_userName && that_present_userName))
+        return false;
+      if (!this.userName.equals(that.userName))
+        return false;
+    }
+
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
+        return false;
+      if (!this.name.equals(that.name))
+        return false;
+    }
+
+    boolean this_present_description = true && this.isSetDescription();
+    boolean that_present_description = true && that.isSetDescription();
+    if (this_present_description || that_present_description) {
+      if (!(this_present_description && that_present_description))
+        return false;
+      if (!this.description.equals(that.description))
+        return false;
+    }
+
+    boolean this_present_executionId = true && this.isSetExecutionId();
+    boolean that_present_executionId = true && that.isSetExecutionId();
+    if (this_present_executionId || that_present_executionId) {
+      if (!(this_present_executionId && that_present_executionId))
+        return false;
+      if (!this.executionId.equals(that.executionId))
+        return false;
+    }
+
+    boolean this_present_resourceHostId = true && this.isSetResourceHostId();
+    boolean that_present_resourceHostId = true && that.isSetResourceHostId();
+    if (this_present_resourceHostId || that_present_resourceHostId) {
+      if (!(this_present_resourceHostId && that_present_resourceHostId))
+        return false;
+      if (!this.resourceHostId.equals(that.resourceHostId))
+        return false;
+    }
+
+    boolean this_present_experimentStatus = true && this.isSetExperimentStatus();
+    boolean that_present_experimentStatus = true && that.isSetExperimentStatus();
+    if (this_present_experimentStatus || that_present_experimentStatus) {
+      if (!(this_present_experimentStatus && that_present_experimentStatus))
+        return false;
+      if (!this.experimentStatus.equals(that.experimentStatus))
+        return false;
+    }
+
+    boolean this_present_statusUpdateTime = true && this.isSetStatusUpdateTime();
+    boolean that_present_statusUpdateTime = true && that.isSetStatusUpdateTime();
+    if (this_present_statusUpdateTime || that_present_statusUpdateTime) {
+      if (!(this_present_statusUpdateTime && that_present_statusUpdateTime))
+        return false;
+      if (this.statusUpdateTime != that.statusUpdateTime)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_experimentId = true && (isSetExperimentId());
+    list.add(present_experimentId);
+    if (present_experimentId)
+      list.add(experimentId);
+
+    boolean present_projectId = true && (isSetProjectId());
+    list.add(present_projectId);
+    if (present_projectId)
+      list.add(projectId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_userName = true && (isSetUserName());
+    list.add(present_userName);
+    if (present_userName)
+      list.add(userName);
+
+    boolean present_name = true && (isSetName());
+    list.add(present_name);
+    if (present_name)
+      list.add(name);
+
+    boolean present_description = true && (isSetDescription());
+    list.add(present_description);
+    if (present_description)
+      list.add(description);
+
+    boolean present_executionId = true && (isSetExecutionId());
+    list.add(present_executionId);
+    if (present_executionId)
+      list.add(executionId);
+
+    boolean present_resourceHostId = true && (isSetResourceHostId());
+    list.add(present_resourceHostId);
+    if (present_resourceHostId)
+      list.add(resourceHostId);
+
+    boolean present_experimentStatus = true && (isSetExperimentStatus());
+    list.add(present_experimentStatus);
+    if (present_experimentStatus)
+      list.add(experimentStatus);
+
+    boolean present_statusUpdateTime = true && (isSetStatusUpdateTime());
+    list.add(present_statusUpdateTime);
+    if (present_statusUpdateTime)
+      list.add(statusUpdateTime);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ExperimentSummaryModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProjectId()).compareTo(other.isSetProjectId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProjectId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.projectId, other.projectId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      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(isSetUserName()).compareTo(other.isSetUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDescription()).compareTo(other.isSetDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.description, other.description);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExecutionId()).compareTo(other.isSetExecutionId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExecutionId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executionId, other.executionId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceHostId()).compareTo(other.isSetResourceHostId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceHostId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceHostId, other.resourceHostId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentStatus()).compareTo(other.isSetExperimentStatus());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentStatus()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentStatus, other.experimentStatus);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStatusUpdateTime()).compareTo(other.isSetStatusUpdateTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStatusUpdateTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.statusUpdateTime, other.statusUpdateTime);
+      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("ExperimentSummaryModel(");
+    boolean first = true;
+
+    sb.append("experimentId:");
+    if (this.experimentId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("projectId:");
+    if (this.projectId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.projectId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (!first) sb.append(", ");
+    sb.append("userName:");
+    if (this.userName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.userName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("name:");
+    if (this.name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.name);
+    }
+    first = false;
+    if (isSetDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("description:");
+      if (this.description == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.description);
+      }
+      first = false;
+    }
+    if (isSetExecutionId()) {
+      if (!first) sb.append(", ");
+      sb.append("executionId:");
+      if (this.executionId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.executionId);
+      }
+      first = false;
+    }
+    if (isSetResourceHostId()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceHostId:");
+      if (this.resourceHostId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceHostId);
+      }
+      first = false;
+    }
+    if (isSetExperimentStatus()) {
+      if (!first) sb.append(", ");
+      sb.append("experimentStatus:");
+      if (this.experimentStatus == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.experimentStatus);
+      }
+      first = false;
+    }
+    if (isSetStatusUpdateTime()) {
+      if (!first) sb.append(", ");
+      sb.append("statusUpdateTime:");
+      sb.append(this.statusUpdateTime);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (experimentId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
+    }
+    if (projectId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'projectId' was not present! Struct: " + toString());
+    }
+    if (gatewayId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
+    }
+    if (userName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userName' was not present! Struct: " + toString());
+    }
+    if (name == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! 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 ExperimentSummaryModelStandardSchemeFactory implements SchemeFactory {
+    public ExperimentSummaryModelStandardScheme getScheme() {
+      return new ExperimentSummaryModelStandardScheme();
+    }
+  }
+
+  private static class ExperimentSummaryModelStandardScheme extends StandardScheme<ExperimentSummaryModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ExperimentSummaryModel struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // EXPERIMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentId = iprot.readString();
+              struct.setExperimentIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PROJECT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.projectId = iprot.readString();
+              struct.setProjectIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // 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 5: // USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userName = iprot.readString();
+              struct.setUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.description = iprot.readString();
+              struct.setDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // EXECUTION_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.executionId = iprot.readString();
+              struct.setExecutionIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // RESOURCE_HOST_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceHostId = iprot.readString();
+              struct.setResourceHostIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // EXPERIMENT_STATUS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentStatus = iprot.readString();
+              struct.setExperimentStatusIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // STATUS_UPDATE_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.statusUpdateTime = iprot.readI64();
+              struct.setStatusUpdateTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ExperimentSummaryModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.experimentId != null) {
+        oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.experimentId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.projectId != null) {
+        oprot.writeFieldBegin(PROJECT_ID_FIELD_DESC);
+        oprot.writeString(struct.projectId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.userName != null) {
+        oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
+        oprot.writeString(struct.userName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        oprot.writeFieldEnd();
+      }
+      if (struct.description != null) {
+        if (struct.isSetDescription()) {
+          oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.description);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.executionId != null) {
+        if (struct.isSetExecutionId()) {
+          oprot.writeFieldBegin(EXECUTION_ID_FIELD_DESC);
+          oprot.writeString(struct.executionId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceHostId != null) {
+        if (struct.isSetResourceHostId()) {
+          oprot.writeFieldBegin(RESOURCE_HOST_ID_FIELD_DESC);
+          oprot.writeString(struct.resourceHostId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.experimentStatus != null) {
+        if (struct.isSetExperimentStatus()) {
+          oprot.writeFieldBegin(EXPERIMENT_STATUS_FIELD_DESC);
+          oprot.writeString(struct.experimentStatus);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetStatusUpdateTime()) {
+        oprot.writeFieldBegin(STATUS_UPDATE_TIME_FIELD_DESC);
+        oprot.writeI64(struct.statusUpdateTime);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ExperimentSummaryModelTupleSchemeFactory implements SchemeFactory {
+    public ExperimentSummaryModelTupleScheme getScheme() {
+      return new ExperimentSummaryModelTupleScheme();
+    }
+  }
+
+  private static class ExperimentSummaryModelTupleScheme extends TupleScheme<ExperimentSummaryModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ExperimentSummaryModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.experimentId);
+      oprot.writeString(struct.projectId);
+      oprot.writeString(struct.gatewayId);
+      oprot.writeString(struct.userName);
+      oprot.writeString(struct.name);
+      BitSet optionals = new BitSet();
+      if (struct.isSetCreationTime()) {
+        optionals.set(0);
+      }
+      if (struct.isSetDescription()) {
+        optionals.set(1);
+      }
+      if (struct.isSetExecutionId()) {
+        optionals.set(2);
+      }
+      if (struct.isSetResourceHostId()) {
+        optionals.set(3);
+      }
+      if (struct.isSetExperimentStatus()) {
+        optionals.set(4);
+      }
+      if (struct.isSetStatusUpdateTime()) {
+        optionals.set(5);
+      }
+      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetDescription()) {
+        oprot.writeString(struct.description);
+      }
+      if (struct.isSetExecutionId()) {
+        oprot.writeString(struct.executionId);
+      }
+      if (struct.isSetResourceHostId()) {
+        oprot.writeString(struct.resourceHostId);
+      }
+      if (struct.isSetExperimentStatus()) {
+        oprot.writeString(struct.experimentStatus);
+      }
+      if (struct.isSetStatusUpdateTime()) {
+        oprot.writeI64(struct.statusUpdateTime);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ExperimentSummaryModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.experimentId = iprot.readString();
+      struct.setExperimentIdIsSet(true);
+      struct.projectId = iprot.readString();
+      struct.setProjectIdIsSet(true);
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
+      struct.userName = iprot.readString();
+      struct.setUserNameIsSet(true);
+      struct.name = iprot.readString();
+      struct.setNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(6);
+      if (incoming.get(0)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.description = iprot.readString();
+        struct.setDescriptionIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.executionId = iprot.readString();
+        struct.setExecutionIdIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.resourceHostId = iprot.readString();
+        struct.setResourceHostIdIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.experimentStatus = iprot.readString();
+        struct.setExperimentStatusIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.statusUpdateTime = iprot.readI64();
+        struct.setStatusUpdateTimeIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentType.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentType.java
new file mode 100644
index 0000000..8523833
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentType.java
@@ -0,0 +1,62 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.experiment;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum ExperimentType implements org.apache.thrift.TEnum {
+  SINGLE_APPLICATION(0),
+  WORKFLOW(1);
+
+  private final int value;
+
+  private ExperimentType(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 ExperimentType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return SINGLE_APPLICATION;
+      case 1:
+        return WORKFLOW;
+      default:
+        return null;
+    }
+  }
+}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
new file mode 100644
index 0000000..5fefe70
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
@@ -0,0 +1,812 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class JobIdentifier implements org.apache.thrift.TBase<JobIdentifier, JobIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<JobIdentifier> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobIdentifier");
+
+  private static final org.apache.thrift.protocol.TField JOB_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField TASK_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("taskId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)5);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobIdentifierStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobIdentifierTupleSchemeFactory());
+  }
+
+  public String jobId; // required
+  public String taskId; // required
+  public String processId; // required
+  public String experimentId; // required
+  public String gatewayId; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_ID((short)1, "jobId"),
+    TASK_ID((short)2, "taskId"),
+    PROCESS_ID((short)3, "processId"),
+    EXPERIMENT_ID((short)4, "experimentId"),
+    GATEWAY_ID((short)5, "gatewayId");
+
+    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: // JOB_ID
+          return JOB_ID;
+        case 2: // TASK_ID
+          return TASK_ID;
+        case 3: // PROCESS_ID
+          return PROCESS_ID;
+        case 4: // EXPERIMENT_ID
+          return EXPERIMENT_ID;
+        case 5: // GATEWAY_ID
+          return GATEWAY_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  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.JOB_ID, new org.apache.thrift.meta_data.FieldMetaData("jobId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TASK_ID, new org.apache.thrift.meta_data.FieldMetaData("taskId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobIdentifier.class, metaDataMap);
+  }
+
+  public JobIdentifier() {
+  }
+
+  public JobIdentifier(
+    String jobId,
+    String taskId,
+    String processId,
+    String experimentId,
+    String gatewayId)
+  {
+    this();
+    this.jobId = jobId;
+    this.taskId = taskId;
+    this.processId = processId;
+    this.experimentId = experimentId;
+    this.gatewayId = gatewayId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobIdentifier(JobIdentifier other) {
+    if (other.isSetJobId()) {
+      this.jobId = other.jobId;
+    }
+    if (other.isSetTaskId()) {
+      this.taskId = other.taskId;
+    }
+    if (other.isSetProcessId()) {
+      this.processId = other.processId;
+    }
+    if (other.isSetExperimentId()) {
+      this.experimentId = other.experimentId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+  }
+
+  public JobIdentifier deepCopy() {
+    return new JobIdentifier(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobId = null;
+    this.taskId = null;
+    this.processId = null;
+    this.experimentId = null;
+    this.gatewayId = null;
+  }
+
+  public String getJobId() {
+    return this.jobId;
+  }
+
+  public JobIdentifier setJobId(String jobId) {
+    this.jobId = jobId;
+    return this;
+  }
+
+  public void unsetJobId() {
+    this.jobId = null;
+  }
+
+  /** Returns true if field jobId is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobId() {
+    return this.jobId != null;
+  }
+
+  public void setJobIdIsSet(boolean value) {
+    if (!value) {
+      this.jobId = null;
+    }
+  }
+
+  public String getTaskId() {
+    return this.taskId;
+  }
+
+  public JobIdentifier setTaskId(String taskId) {
+    this.taskId = taskId;
+    return this;
+  }
+
+  public void unsetTaskId() {
+    this.taskId = null;
+  }
+
+  /** Returns true if field taskId is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskId() {
+    return this.taskId != null;
+  }
+
+  public void setTaskIdIsSet(boolean value) {
+    if (!value) {
+      this.taskId = null;
+    }
+  }
+
+  public String getProcessId() {
+    return this.processId;
+  }
+
+  public JobIdentifier setProcessId(String processId) {
+    this.processId = processId;
+    return this;
+  }
+
+  public void unsetProcessId() {
+    this.processId = null;
+  }
+
+  /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessId() {
+    return this.processId != null;
+  }
+
+  public void setProcessIdIsSet(boolean value) {
+    if (!value) {
+      this.processId = null;
+    }
+  }
+
+  public String getExperimentId() {
+    return this.experimentId;
+  }
+
+  public JobIdentifier setExperimentId(String experimentId) {
+    this.experimentId = experimentId;
+    return this;
+  }
+
+  public void unsetExperimentId() {
+    this.experimentId = null;
+  }
+
+  /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentId() {
+    return this.experimentId != null;
+  }
+
+  public void setExperimentIdIsSet(boolean value) {
+    if (!value) {
+      this.experimentId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public JobIdentifier setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+    return this;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_ID:
+      if (value == null) {
+        unsetJobId();
+      } else {
+        setJobId((String)value);
+      }
+      break;
+
+    case TASK_ID:
+      if (value == null) {
+        unsetTaskId();
+      } else {
+        setTaskId((String)value);
+      }
+      break;
+
+    case PROCESS_ID:
+      if (value == null) {
+        unsetProcessId();
+      } else {
+        setProcessId((String)value);
+      }
+      break;
+
+    case EXPERIMENT_ID:
+      if (value == null) {
+        unsetExperimentId();
+      } else {
+        setExperimentId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_ID:
+      return getJobId();
+
+    case TASK_ID:
+      return getTaskId();
+
+    case PROCESS_ID:
+      return getProcessId();
+
+    case EXPERIMENT_ID:
+      return getExperimentId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    }
+    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 JOB_ID:
+      return isSetJobId();
+    case TASK_ID:
+      return isSetTaskId();
+    case PROCESS_ID:
+      return isSetProcessId();
+    case EXPERIMENT_ID:
+      return isSetExperimentId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobIdentifier)
+      return this.equals((JobIdentifier)that);
+    return false;
+  }
+
+  public boolean equals(JobIdentifier that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobId = true && this.isSetJobId();
+    boolean that_present_jobId = true && that.isSetJobId();
+    if (this_present_jobId || that_present_jobId) {
+      if (!(this_present_jobId && that_present_jobId))
+        return false;
+      if (!this.jobId.equals(that.jobId))
+        return false;
+    }
+
+    boolean this_present_taskId = true && this.isSetTaskId();
+    boolean that_present_taskId = true && that.isSetTaskId();
+    if (this_present_taskId || that_present_taskId) {
+      if (!(this_present_taskId && that_present_taskId))
+        return false;
+      if (!this.taskId.equals(that.taskId))
+        return false;
+    }
+
+    boolean this_present_processId = true && this.isSetProcessId();
+    boolean that_present_processId = true && that.isSetProcessId();
+    if (this_present_processId || that_present_processId) {
+      if (!(this_present_processId && that_present_processId))
+        return false;
+      if (!this.processId.equals(that.processId))
+        return false;
+    }
+
+    boolean this_present_experimentId = true && this.isSetExperimentId();
+    boolean that_present_experimentId = true && that.isSetExperimentId();
+    if (this_present_experimentId || that_present_experimentId) {
+      if (!(this_present_experimentId && that_present_experimentId))
+        return false;
+      if (!this.experimentId.equals(that.experimentId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_jobId = true && (isSetJobId());
+    list.add(present_jobId);
+    if (present_jobId)
+      list.add(jobId);
+
+    boolean present_taskId = true && (isSetTaskId());
+    list.add(present_taskId);
+    if (present_taskId)
+      list.add(taskId);
+
+    boolean present_processId = true && (isSetProcessId());
+    list.add(present_processId);
+    if (present_processId)
+      list.add(processId);
+
+    boolean present_experimentId = true && (isSetExperimentId());
+    list.add(present_experimentId);
+    if (present_experimentId)
+      list.add(experimentId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobIdentifier other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobId()).compareTo(other.isSetJobId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobId, other.jobId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTaskId()).compareTo(other.isSetTaskId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskId, other.taskId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      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("JobIdentifier(");
+    boolean first = true;
+
+    sb.append("jobId:");
+    if (this.jobId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("taskId:");
+    if (this.taskId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.taskId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("processId:");
+    if (this.processId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.processId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("experimentId:");
+    if (this.experimentId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (jobId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobId' was not present! Struct: " + toString());
+    }
+    if (taskId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskId' was not present! Struct: " + toString());
+    }
+    if (processId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
+    }
+    if (experimentId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
+    }
+    if (gatewayId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! 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 JobIdentifierStandardSchemeFactory implements SchemeFactory {
+    public JobIdentifierStandardScheme getScheme() {
+      return new JobIdentifierStandardScheme();
+    }
+  }
+
+  private static class JobIdentifierStandardScheme extends StandardScheme<JobIdentifier> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobIdentifier struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobId = iprot.readString();
+              struct.setJobIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TASK_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.taskId = iprot.readString();
+              struct.setTaskIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // PROCESS_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.processId = iprot.readString();
+              struct.setProcessIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // EXPERIMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentId = iprot.readString();
+              struct.setExperimentIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, JobIdentifier struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobId != null) {
+        oprot.writeFieldBegin(JOB_ID_FIELD_DESC);
+        oprot.writeString(struct.jobId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.taskId != null) {
+        oprot.writeFieldBegin(TASK_ID_FIELD_DESC);
+        oprot.writeString(struct.taskId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.processId != null) {
+        oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+        oprot.writeString(struct.processId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentId != null) {
+        oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.experimentId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobIdentifierTupleSchemeFactory implements SchemeFactory {
+    public JobIdentifierTupleScheme getScheme() {
+      return new JobIdentifierTupleScheme();
+    }
+  }
+
+  private static class JobIdentifierTupleScheme extends TupleScheme<JobIdentifier> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobIdentifier struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobId);
+      oprot.writeString(struct.taskId);
+      oprot.writeString(struct.processId);
+      oprot.writeString(struct.experimentId);
+      oprot.writeString(struct.gatewayId);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobIdentifier struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobId = iprot.readString();
+      struct.setJobIdIsSet(true);
+      struct.taskId = iprot.readString();
+      struct.setTaskIdIsSet(true);
+      struct.processId = iprot.readString();
+      struct.setProcessIdIsSet(true);
+      struct.experimentId = iprot.readString();
+      struct.setExperimentIdIsSet(true);
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
new file mode 100644
index 0000000..4d6855a
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
@@ -0,0 +1,530 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class JobStatusChangeEvent implements org.apache.thrift.TBase<JobStatusChangeEvent, JobStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeEvent");
+
+  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField JOB_IDENTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("jobIdentity", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobStatusChangeEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobStatusChangeEventTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.JobState
+   */
+  public org.apache.airavata.model.status.JobState state; // required
+  public JobIdentifier jobIdentity; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see org.apache.airavata.model.status.JobState
+     */
+    STATE((short)1, "state"),
+    JOB_IDENTITY((short)2, "jobIdentity");
+
+    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: // STATE
+          return STATE;
+        case 2: // JOB_IDENTITY
+          return JOB_IDENTITY;
+        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
+  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.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.status.JobState.class)));
+    tmpMap.put(_Fields.JOB_IDENTITY, new org.apache.thrift.meta_data.FieldMetaData("jobIdentity", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JobIdentifier.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobStatusChangeEvent.class, metaDataMap);
+  }
+
+  public JobStatusChangeEvent() {
+  }
+
+  public JobStatusChangeEvent(
+    org.apache.airavata.model.status.JobState state,
+    JobIdentifier jobIdentity)
+  {
+    this();
+    this.state = state;
+    this.jobIdentity = jobIdentity;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobStatusChangeEvent(JobStatusChangeEvent other) {
+    if (other.isSetState()) {
+      this.state = other.state;
+    }
+    if (other.isSetJobIdentity()) {
+      this.jobIdentity = new JobIdentifier(other.jobIdentity);
+    }
+  }
+
+  public JobStatusChangeEvent deepCopy() {
+    return new JobStatusChangeEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state = null;
+    this.jobIdentity = null;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.JobState
+   */
+  public org.apache.airavata.model.status.JobState getState() {
+    return this.state;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.JobState
+   */
+  public JobStatusChangeEvent setState(org.apache.airavata.model.status.JobState state) {
+    this.state = state;
+    return this;
+  }
+
+  public void unsetState() {
+    this.state = null;
+  }
+
+  /** Returns true if field state is set (has been assigned a value) and false otherwise */
+  public boolean isSetState() {
+    return this.state != null;
+  }
+
+  public void setStateIsSet(boolean value) {
+    if (!value) {
+      this.state = null;
+    }
+  }
+
+  public JobIdentifier getJobIdentity() {
+    return this.jobIdentity;
+  }
+
+  public JobStatusChangeEvent setJobIdentity(JobIdentifier jobIdentity) {
+    this.jobIdentity = jobIdentity;
+    return this;
+  }
+
+  public void unsetJobIdentity() {
+    this.jobIdentity = null;
+  }
+
+  /** Returns true if field jobIdentity is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobIdentity() {
+    return this.jobIdentity != null;
+  }
+
+  public void setJobIdentityIsSet(boolean value) {
+    if (!value) {
+      this.jobIdentity = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE:
+      if (value == null) {
+        unsetState();
+      } else {
+        setState((org.apache.airavata.model.status.JobState)value);
+      }
+      break;
+
+    case JOB_IDENTITY:
+      if (value == null) {
+        unsetJobIdentity();
+      } else {
+        setJobIdentity((JobIdentifier)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE:
+      return getState();
+
+    case JOB_IDENTITY:
+      return getJobIdentity();
+
+    }
+    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 STATE:
+      return isSetState();
+    case JOB_IDENTITY:
+      return isSetJobIdentity();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobStatusChangeEvent)
+      return this.equals((JobStatusChangeEvent)that);
+    return false;
+  }
+
+  public boolean equals(JobStatusChangeEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_state = true && this.isSetState();
+    boolean that_present_state = true && that.isSetState();
+    if (this_present_state || that_present_state) {
+      if (!(this_present_state && that_present_state))
+        return false;
+      if (!this.state.equals(that.state))
+        return false;
+    }
+
+    boolean this_present_jobIdentity = true && this.isSetJobIdentity();
+    boolean that_present_jobIdentity = true && that.isSetJobIdentity();
+    if (this_present_jobIdentity || that_present_jobIdentity) {
+      if (!(this_present_jobIdentity && that_present_jobIdentity))
+        return false;
+      if (!this.jobIdentity.equals(that.jobIdentity))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state = true && (isSetState());
+    list.add(present_state);
+    if (present_state)
+      list.add(state.getValue());
+
+    boolean present_jobIdentity = true && (isSetJobIdentity());
+    list.add(present_jobIdentity);
+    if (present_jobIdentity)
+      list.add(jobIdentity);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobStatusChangeEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetState()).compareTo(other.isSetState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobIdentity()).compareTo(other.isSetJobIdentity());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobIdentity()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobIdentity, other.jobIdentity);
+      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("JobStatusChangeEvent(");
+    boolean first = true;
+
+    sb.append("state:");
+    if (this.state == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("jobIdentity:");
+    if (this.jobIdentity == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobIdentity);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (state == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state' was not present! Struct: " + toString());
+    }
+    if (jobIdentity == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobIdentity' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (jobIdentity != null) {
+      jobIdentity.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 {
+      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 JobStatusChangeEventStandardSchemeFactory implements SchemeFactory {
+    public JobStatusChangeEventStandardScheme getScheme() {
+      return new JobStatusChangeEventStandardScheme();
+    }
+  }
+
+  private static class JobStatusChangeEventStandardScheme extends StandardScheme<JobStatusChangeEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobStatusChangeEvent 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: // STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.state = org.apache.airavata.model.status.JobState.findByValue(iprot.readI32());
+              struct.setStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // JOB_IDENTITY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.jobIdentity = new JobIdentifier();
+              struct.jobIdentity.read(iprot);
+              struct.setJobIdentityIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, JobStatusChangeEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state != null) {
+        oprot.writeFieldBegin(STATE_FIELD_DESC);
+        oprot.writeI32(struct.state.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.jobIdentity != null) {
+        oprot.writeFieldBegin(JOB_IDENTITY_FIELD_DESC);
+        struct.jobIdentity.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobStatusChangeEventTupleSchemeFactory implements SchemeFactory {
+    public JobStatusChangeEventTupleScheme getScheme() {
+      return new JobStatusChangeEventTupleScheme();
+    }
+  }
+
+  private static class JobStatusChangeEventTupleScheme extends TupleScheme<JobStatusChangeEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobStatusChangeEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.state.getValue());
+      struct.jobIdentity.write(oprot);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobStatusChangeEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state = org.apache.airavata.model.status.JobState.findByValue(iprot.readI32());
+      struct.setStateIsSet(true);
+      struct.jobIdentity = new JobIdentifier();
+      struct.jobIdentity.read(iprot);
+      struct.setJobIdentityIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
new file mode 100644
index 0000000..a481293
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
@@ -0,0 +1,530 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class JobStatusChangeRequestEvent implements org.apache.thrift.TBase<JobStatusChangeRequestEvent, JobStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeRequestEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeRequestEvent");
+
+  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField JOB_IDENTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("jobIdentity", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobStatusChangeRequestEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobStatusChangeRequestEventTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.JobState
+   */
+  public org.apache.airavata.model.status.JobState state; // required
+  public JobIdentifier jobIdentity; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see org.apache.airavata.model.status.JobState
+     */
+    STATE((short)1, "state"),
+    JOB_IDENTITY((short)2, "jobIdentity");
+
+    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: // STATE
+          return STATE;
+        case 2: // JOB_IDENTITY
+          return JOB_IDENTITY;
+        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
+  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.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.status.JobState.class)));
+    tmpMap.put(_Fields.JOB_IDENTITY, new org.apache.thrift.meta_data.FieldMetaData("jobIdentity", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JobIdentifier.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobStatusChangeRequestEvent.class, metaDataMap);
+  }
+
+  public JobStatusChangeRequestEvent() {
+  }
+
+  public JobStatusChangeRequestEvent(
+    org.apache.airavata.model.status.JobState state,
+    JobIdentifier jobIdentity)
+  {
+    this();
+    this.state = state;
+    this.jobIdentity = jobIdentity;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobStatusChangeRequestEvent(JobStatusChangeRequestEvent other) {
+    if (other.isSetState()) {
+      this.state = other.state;
+    }
+    if (other.isSetJobIdentity()) {
+      this.jobIdentity = new JobIdentifier(other.jobIdentity);
+    }
+  }
+
+  public JobStatusChangeRequestEvent deepCopy() {
+    return new JobStatusChangeRequestEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state = null;
+    this.jobIdentity = null;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.JobState
+   */
+  public org.apache.airavata.model.status.JobState getState() {
+    return this.state;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.JobState
+   */
+  public JobStatusChangeRequestEvent setState(org.apache.airavata.model.status.JobState state) {
+    this.state = state;
+    return this;
+  }
+
+  public void unsetState() {
+    this.state = null;
+  }
+
+  /** Returns true if field state is set (has been assigned a value) and false otherwise */
+  public boolean isSetState() {
+    return this.state != null;
+  }
+
+  public void setStateIsSet(boolean value) {
+    if (!value) {
+      this.state = null;
+    }
+  }
+
+  public JobIdentifier getJobIdentity() {
+    return this.jobIdentity;
+  }
+
+  public JobStatusChangeRequestEvent setJobIdentity(JobIdentifier jobIdentity) {
+    this.jobIdentity = jobIdentity;
+    return this;
+  }
+
+  public void unsetJobIdentity() {
+    this.jobIdentity = null;
+  }
+
+  /** Returns true if field jobIdentity is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobIdentity() {
+    return this.jobIdentity != null;
+  }
+
+  public void setJobIdentityIsSet(boolean value) {
+    if (!value) {
+      this.jobIdentity = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE:
+      if (value == null) {
+        unsetState();
+      } else {
+        setState((org.apache.airavata.model.status.JobState)value);
+      }
+      break;
+
+    case JOB_IDENTITY:
+      if (value == null) {
+        unsetJobIdentity();
+      } else {
+        setJobIdentity((JobIdentifier)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE:
+      return getState();
+
+    case JOB_IDENTITY:
+      return getJobIdentity();
+
+    }
+    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 STATE:
+      return isSetState();
+    case JOB_IDENTITY:
+      return isSetJobIdentity();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobStatusChangeRequestEvent)
+      return this.equals((JobStatusChangeRequestEvent)that);
+    return false;
+  }
+
+  public boolean equals(JobStatusChangeRequestEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_state = true && this.isSetState();
+    boolean that_present_state = true && that.isSetState();
+    if (this_present_state || that_present_state) {
+      if (!(this_present_state && that_present_state))
+        return false;
+      if (!this.state.equals(that.state))
+        return false;
+    }
+
+    boolean this_present_jobIdentity = true && this.isSetJobIdentity();
+    boolean that_present_jobIdentity = true && that.isSetJobIdentity();
+    if (this_present_jobIdentity || that_present_jobIdentity) {
+      if (!(this_present_jobIdentity && that_present_jobIdentity))
+        return false;
+      if (!this.jobIdentity.equals(that.jobIdentity))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state = true && (isSetState());
+    list.add(present_state);
+    if (present_state)
+      list.add(state.getValue());
+
+    boolean present_jobIdentity = true && (isSetJobIdentity());
+    list.add(present_jobIdentity);
+    if (present_jobIdentity)
+      list.add(jobIdentity);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobStatusChangeRequestEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetState()).compareTo(other.isSetState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobIdentity()).compareTo(other.isSetJobIdentity());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobIdentity()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobIdentity, other.jobIdentity);
+      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("JobStatusChangeRequestEvent(");
+    boolean first = true;
+
+    sb.append("state:");
+    if (this.state == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("jobIdentity:");
+    if (this.jobIdentity == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobIdentity);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (state == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state' was not present! Struct: " + toString());
+    }
+    if (jobIdentity == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobIdentity' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (jobIdentity != null) {
+      jobIdentity.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 {
+      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 JobStatusChangeRequestEventStandardSchemeFactory implements SchemeFactory {
+    public JobStatusChangeRequestEventStandardScheme getScheme() {
+      return new JobStatusChangeRequestEventStandardScheme();
+    }
+  }
+
+  private static class JobStatusChangeRequestEventStandardScheme extends StandardScheme<JobStatusChangeRequestEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobStatusChangeRequestEvent 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: // STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.state = org.apache.airavata.model.status.JobState.findByValue(iprot.readI32());
+              struct.setStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // JOB_IDENTITY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.jobIdentity = new JobIdentifier();
+              struct.jobIdentity.read(iprot);
+              struct.setJobIdentityIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, JobStatusChangeRequestEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state != null) {
+        oprot.writeFieldBegin(STATE_FIELD_DESC);
+        oprot.writeI32(struct.state.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.jobIdentity != null) {
+        oprot.writeFieldBegin(JOB_IDENTITY_FIELD_DESC);
+        struct.jobIdentity.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobStatusChangeRequestEventTupleSchemeFactory implements SchemeFactory {
+    public JobStatusChangeRequestEventTupleScheme getScheme() {
+      return new JobStatusChangeRequestEventTupleScheme();
+    }
+  }
+
+  private static class JobStatusChangeRequestEventTupleScheme extends TupleScheme<JobStatusChangeRequestEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobStatusChangeRequestEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.state.getValue());
+      struct.jobIdentity.write(oprot);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobStatusChangeRequestEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state = org.apache.airavata.model.status.JobState.findByValue(iprot.readI32());
+      struct.setStateIsSet(true);
+      struct.jobIdentity = new JobIdentifier();
+      struct.jobIdentity.read(iprot);
+      struct.setJobIdentityIsSet(true);
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
new file mode 100644
index 0000000..da436b2
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
@@ -0,0 +1,568 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class TaskOutputChangeEvent implements org.apache.thrift.TBase<TaskOutputChangeEvent, TaskOutputChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskOutputChangeEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskOutputChangeEvent");
+
+  private static final org.apache.thrift.protocol.TField OUTPUT_FIELD_DESC = new org.apache.thrift.protocol.TField("output", org.apache.thrift.protocol.TType.LIST, (short)1);
+  private static final org.apache.thrift.protocol.TField TASK_IDENTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("taskIdentity", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TaskOutputChangeEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TaskOutputChangeEventTupleSchemeFactory());
+  }
+
+  public List<org.apache.airavata.model.application.io.OutputDataObjectType> output; // required
+  public TaskIdentifier taskIdentity; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    OUTPUT((short)1, "output"),
+    TASK_IDENTITY((short)2, "taskIdentity");
+
+    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: // OUTPUT
+          return OUTPUT;
+        case 2: // TASK_IDENTITY
+          return TASK_IDENTITY;
+        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
+  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.OUTPUT, new org.apache.thrift.meta_data.FieldMetaData("output", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.OutputDataObjectType.class))));
+    tmpMap.put(_Fields.TASK_IDENTITY, new org.apache.thrift.meta_data.FieldMetaData("taskIdentity", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TaskIdentifier.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TaskOutputChangeEvent.class, metaDataMap);
+  }
+
+  public TaskOutputChangeEvent() {
+  }
+
+  public TaskOutputChangeEvent(
+    List<org.apache.airavata.model.application.io.OutputDataObjectType> output,
+    TaskIdentifier taskIdentity)
+  {
+    this();
+    this.output = output;
+    this.taskIdentity = taskIdentity;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TaskOutputChangeEvent(TaskOutputChangeEvent other) {
+    if (other.isSetOutput()) {
+      List<org.apache.airavata.model.application.io.OutputDataObjectType> __this__output = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(other.output.size());
+      for (org.apache.airavata.model.application.io.OutputDataObjectType other_element : other.output) {
+        __this__output.add(new org.apache.airavata.model.application.io.OutputDataObjectType(other_element));
+      }
+      this.output = __this__output;
+    }
+    if (other.isSetTaskIdentity()) {
+      this.taskIdentity = new TaskIdentifier(other.taskIdentity);
+    }
+  }
+
+  public TaskOutputChangeEvent deepCopy() {
+    return new TaskOutputChangeEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.output = null;
+    this.taskIdentity = null;
+  }
+
+  public int getOutputSize() {
+    return (this.output == null) ? 0 : this.output.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.application.io.OutputDataObjectType> getOutputIterator() {
+    return (this.output == null) ? null : this.output.iterator();
+  }
+
+  public void addToOutput(org.apache.airavata.model.application.io.OutputDataObjectType elem) {
+    if (this.output == null) {
+      this.output = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>();
+    }
+    this.output.add(elem);
+  }
+
+  public List<org.apache.airavata.model.application.io.OutputDataObjectType> getOutput() {
+    return this.output;
+  }
+
+  public TaskOutputChangeEvent setOutput(List<org.apache.airavata.model.application.io.OutputDataObjectType> output) {
+    this.output = output;
+    return this;
+  }
+
+  public void unsetOutput() {
+    this.output = null;
+  }
+
+  /** Returns true if field output is set (has been assigned a value) and false otherwise */
+  public boolean isSetOutput() {
+    return this.output != null;
+  }
+
+  public void setOutputIsSet(boolean value) {
+    if (!value) {
+      this.output = null;
+    }
+  }
+
+  public TaskIdentifier getTaskIdentity() {
+    return this.taskIdentity;
+  }
+
+  public TaskOutputChangeEvent setTaskIdentity(TaskIdentifier taskIdentity) {
+    this.taskIdentity = taskIdentity;
+    return this;
+  }
+
+  public void unsetTaskIdentity() {
+    this.taskIdentity = null;
+  }
+
+  /** Returns true if field taskIdentity is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskIdentity() {
+    return this.taskIdentity != null;
+  }
+
+  public void setTaskIdentityIsSet(boolean value) {
+    if (!value) {
+      this.taskIdentity = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case OUTPUT:
+      if (value == null) {
+        unsetOutput();
+      } else {
+        setOutput((List<org.apache.airavata.model.application.io.OutputDataObjectType>)value);
+      }
+      break;
+
+    case TASK_IDENTITY:
+      if (value == null) {
+        unsetTaskIdentity();
+      } else {
+        setTaskIdentity((TaskIdentifier)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case OUTPUT:
+      return getOutput();
+
+    case TASK_IDENTITY:
+      return getTaskIdentity();
+
+    }
+    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 OUTPUT:
+      return isSetOutput();
+    case TASK_IDENTITY:
+      return isSetTaskIdentity();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TaskOutputChangeEvent)
+      return this.equals((TaskOutputChangeEvent)that);
+    return false;
+  }
+
+  public boolean equals(TaskOutputChangeEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_output = true && this.isSetOutput();
+    boolean that_present_output = true && that.isSetOutput();
+    if (this_present_output || that_present_output) {
+      if (!(this_present_output && that_present_output))
+        return false;
+      if (!this.output.equals(that.output))
+        return false;
+    }
+
+    boolean this_present_taskIdentity = true && this.isSetTaskIdentity();
+    boolean that_present_taskIdentity = true && that.isSetTaskIdentity();
+    if (this_present_taskIdentity || that_present_taskIdentity) {
+      if (!(this_present_taskIdentity && that_present_taskIdentity))
+        return false;
+      if (!this.taskIdentity.equals(that.taskIdentity))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_output = true && (isSetOutput());
+    list.add(present_output);
+    if (present_output)
+      list.add(output);
+
+    boolean present_taskIdentity = true && (isSetTaskIdentity());
+    list.add(present_taskIdentity);
+    if (present_taskIdentity)
+      list.add(taskIdentity);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(TaskOutputChangeEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetOutput()).compareTo(other.isSetOutput());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOutput()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.output, other.output);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTaskIdentity()).compareTo(other.isSetTaskIdentity());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskIdentity()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskIdentity, other.taskIdentity);
+      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("TaskOutputChangeEvent(");
+    boolean first = true;
+
+    sb.append("output:");
+    if (this.output == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.output);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("taskIdentity:");
+    if (this.taskIdentity == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.taskIdentity);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (output == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'output' was not present! Struct: " + toString());
+    }
+    if (taskIdentity == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskIdentity' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (taskIdentity != null) {
+      taskIdentity.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 {
+      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 TaskOutputChangeEventStandardSchemeFactory implements SchemeFactory {
+    public TaskOutputChangeEventStandardScheme getScheme() {
+      return new TaskOutputChangeEventStandardScheme();
+    }
+  }
+
+  private static class TaskOutputChangeEventStandardScheme extends StandardScheme<TaskOutputChangeEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TaskOutputChangeEvent 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: // OUTPUT
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.output = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list0.size);
+                org.apache.airavata.model.application.io.OutputDataObjectType _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+                  _elem1.read(iprot);
+                  struct.output.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setOutputIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TASK_IDENTITY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.taskIdentity = new TaskIdentifier();
+              struct.taskIdentity.read(iprot);
+              struct.setTaskIdentityIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, TaskOutputChangeEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.output != null) {
+        oprot.writeFieldBegin(OUTPUT_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.output.size()));
+          for (org.apache.airavata.model.application.io.OutputDataObjectType _iter3 : struct.output)
+          {
+            _iter3.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.taskIdentity != null) {
+        oprot.writeFieldBegin(TASK_IDENTITY_FIELD_DESC);
+        struct.taskIdentity.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TaskOutputChangeEventTupleSchemeFactory implements SchemeFactory {
+    public TaskOutputChangeEventTupleScheme getScheme() {
+      return new TaskOutputChangeEventTupleScheme();
+    }
+  }
+
+  private static class TaskOutputChangeEventTupleScheme extends TupleScheme<TaskOutputChangeEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TaskOutputChangeEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      {
+        oprot.writeI32(struct.output.size());
+        for (org.apache.airavata.model.application.io.OutputDataObjectType _iter4 : struct.output)
+        {
+          _iter4.write(oprot);
+        }
+      }
+      struct.taskIdentity.write(oprot);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TaskOutputChangeEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      {
+        org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+        struct.output = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list5.size);
+        org.apache.airavata.model.application.io.OutputDataObjectType _elem6;
+        for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+        {
+          _elem6 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+          _elem6.read(iprot);
+          struct.output.add(_elem6);
+        }
+      }
+      struct.setOutputIsSet(true);
+      struct.taskIdentity = new TaskIdentifier();
+      struct.taskIdentity.read(iprot);
+      struct.setTaskIdentityIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
new file mode 100644
index 0000000..8420e72
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
@@ -0,0 +1,530 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class TaskStatusChangeEvent implements org.apache.thrift.TBase<TaskStatusChangeEvent, TaskStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeEvent");
+
+  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField TASK_IDENTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("taskIdentity", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TaskStatusChangeEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TaskStatusChangeEventTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.TaskState
+   */
+  public org.apache.airavata.model.status.TaskState state; // required
+  public TaskIdentifier taskIdentity; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see org.apache.airavata.model.status.TaskState
+     */
+    STATE((short)1, "state"),
+    TASK_IDENTITY((short)2, "taskIdentity");
+
+    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: // STATE
+          return STATE;
+        case 2: // TASK_IDENTITY
+          return TASK_IDENTITY;
+        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
+  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.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.status.TaskState.class)));
+    tmpMap.put(_Fields.TASK_IDENTITY, new org.apache.thrift.meta_data.FieldMetaData("taskIdentity", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TaskIdentifier.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TaskStatusChangeEvent.class, metaDataMap);
+  }
+
+  public TaskStatusChangeEvent() {
+  }
+
+  public TaskStatusChangeEvent(
+    org.apache.airavata.model.status.TaskState state,
+    TaskIdentifier taskIdentity)
+  {
+    this();
+    this.state = state;
+    this.taskIdentity = taskIdentity;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TaskStatusChangeEvent(TaskStatusChangeEvent other) {
+    if (other.isSetState()) {
+      this.state = other.state;
+    }
+    if (other.isSetTaskIdentity()) {
+      this.taskIdentity = new TaskIdentifier(other.taskIdentity);
+    }
+  }
+
+  public TaskStatusChangeEvent deepCopy() {
+    return new TaskStatusChangeEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state = null;
+    this.taskIdentity = null;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.TaskState
+   */
+  public org.apache.airavata.model.status.TaskState getState() {
+    return this.state;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.TaskState
+   */
+  public TaskStatusChangeEvent setState(org.apache.airavata.model.status.TaskState state) {
+    this.state = state;
+    return this;
+  }
+
+  public void unsetState() {
+    this.state = null;
+  }
+
+  /** Returns true if field state is set (has been assigned a value) and false otherwise */
+  public boolean isSetState() {
+    return this.state != null;
+  }
+
+  public void setStateIsSet(boolean value) {
+    if (!value) {
+      this.state = null;
+    }
+  }
+
+  public TaskIdentifier getTaskIdentity() {
+    return this.taskIdentity;
+  }
+
+  public TaskStatusChangeEvent setTaskIdentity(TaskIdentifier taskIdentity) {
+    this.taskIdentity = taskIdentity;
+    return this;
+  }
+
+  public void unsetTaskIdentity() {
+    this.taskIdentity = null;
+  }
+
+  /** Returns true if field taskIdentity is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskIdentity() {
+    return this.taskIdentity != null;
+  }
+
+  public void setTaskIdentityIsSet(boolean value) {
+    if (!value) {
+      this.taskIdentity = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE:
+      if (value == null) {
+        unsetState();
+      } else {
+        setState((org.apache.airavata.model.status.TaskState)value);
+      }
+      break;
+
+    case TASK_IDENTITY:
+      if (value == null) {
+        unsetTaskIdentity();
+      } else {
+        setTaskIdentity((TaskIdentifier)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE:
+      return getState();
+
+    case TASK_IDENTITY:
+      return getTaskIdentity();
+
+    }
+    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 STATE:
+      return isSetState();
+    case TASK_IDENTITY:
+      return isSetTaskIdentity();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TaskStatusChangeEvent)
+      return this.equals((TaskStatusChangeEvent)that);
+    return false;
+  }
+
+  public boolean equals(TaskStatusChangeEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_state = true && this.isSetState();
+    boolean that_present_state = true && that.isSetState();
+    if (this_present_state || that_present_state) {
+      if (!(this_present_state && that_present_state))
+        return false;
+      if (!this.state.equals(that.state))
+        return false;
+    }
+
+    boolean this_present_taskIdentity = true && this.isSetTaskIdentity();
+    boolean that_present_taskIdentity = true && that.isSetTaskIdentity();
+    if (this_present_taskIdentity || that_present_taskIdentity) {
+      if (!(this_present_taskIdentity && that_present_taskIdentity))
+        return false;
+      if (!this.taskIdentity.equals(that.taskIdentity))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state = true && (isSetState());
+    list.add(present_state);
+    if (present_state)
+      list.add(state.getValue());
+
+    boolean present_taskIdentity = true && (isSetTaskIdentity());
+    list.add(present_taskIdentity);
+    if (present_taskIdentity)
+      list.add(taskIdentity);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(TaskStatusChangeEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetState()).compareTo(other.isSetState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTaskIdentity()).compareTo(other.isSetTaskIdentity());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskIdentity()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskIdentity, other.taskIdentity);
+      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("TaskStatusChangeEvent(");
+    boolean first = true;
+
+    sb.append("state:");
+    if (this.state == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("taskIdentity:");
+    if (this.taskIdentity == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.taskIdentity);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (state == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state' was not present! Struct: " + toString());
+    }
+    if (taskIdentity == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskIdentity' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (taskIdentity != null) {
+      taskIdentity.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 {
+      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 TaskStatusChangeEventStandardSchemeFactory implements SchemeFactory {
+    public TaskStatusChangeEventStandardScheme getScheme() {
+      return new TaskStatusChangeEventStandardScheme();
+    }
+  }
+
+  private static class TaskStatusChangeEventStandardScheme extends StandardScheme<TaskStatusChangeEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TaskStatusChangeEvent 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: // STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.state = org.apache.airavata.model.status.TaskState.findByValue(iprot.readI32());
+              struct.setStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TASK_IDENTITY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.taskIdentity = new TaskIdentifier();
+              struct.taskIdentity.read(iprot);
+              struct.setTaskIdentityIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, TaskStatusChangeEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state != null) {
+        oprot.writeFieldBegin(STATE_FIELD_DESC);
+        oprot.writeI32(struct.state.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.taskIdentity != null) {
+        oprot.writeFieldBegin(TASK_IDENTITY_FIELD_DESC);
+        struct.taskIdentity.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TaskStatusChangeEventTupleSchemeFactory implements SchemeFactory {
+    public TaskStatusChangeEventTupleScheme getScheme() {
+      return new TaskStatusChangeEventTupleScheme();
+    }
+  }
+
+  private static class TaskStatusChangeEventTupleScheme extends TupleScheme<TaskStatusChangeEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TaskStatusChangeEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.state.getValue());
+      struct.taskIdentity.write(oprot);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TaskStatusChangeEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state = org.apache.airavata.model.status.TaskState.findByValue(iprot.readI32());
+      struct.setStateIsSet(true);
+      struct.taskIdentity = new TaskIdentifier();
+      struct.taskIdentity.read(iprot);
+      struct.setTaskIdentityIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
new file mode 100644
index 0000000..d880807
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
@@ -0,0 +1,530 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class TaskStatusChangeRequestEvent implements org.apache.thrift.TBase<TaskStatusChangeRequestEvent, TaskStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeRequestEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeRequestEvent");
+
+  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField TASK_IDENTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("taskIdentity", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TaskStatusChangeRequestEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TaskStatusChangeRequestEventTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.TaskState
+   */
+  public org.apache.airavata.model.status.TaskState state; // required
+  public TaskIdentifier taskIdentity; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see org.apache.airavata.model.status.TaskState
+     */
+    STATE((short)1, "state"),
+    TASK_IDENTITY((short)2, "taskIdentity");
+
+    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: // STATE
+          return STATE;
+        case 2: // TASK_IDENTITY
+          return TASK_IDENTITY;
+        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
+  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.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.status.TaskState.class)));
+    tmpMap.put(_Fields.TASK_IDENTITY, new org.apache.thrift.meta_data.FieldMetaData("taskIdentity", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TaskIdentifier.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TaskStatusChangeRequestEvent.class, metaDataMap);
+  }
+
+  public TaskStatusChangeRequestEvent() {
+  }
+
+  public TaskStatusChangeRequestEvent(
+    org.apache.airavata.model.status.TaskState state,
+    TaskIdentifier taskIdentity)
+  {
+    this();
+    this.state = state;
+    this.taskIdentity = taskIdentity;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TaskStatusChangeRequestEvent(TaskStatusChangeRequestEvent other) {
+    if (other.isSetState()) {
+      this.state = other.state;
+    }
+    if (other.isSetTaskIdentity()) {
+      this.taskIdentity = new TaskIdentifier(other.taskIdentity);
+    }
+  }
+
+  public TaskStatusChangeRequestEvent deepCopy() {
+    return new TaskStatusChangeRequestEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state = null;
+    this.taskIdentity = null;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.TaskState
+   */
+  public org.apache.airavata.model.status.TaskState getState() {
+    return this.state;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.TaskState
+   */
+  public TaskStatusChangeRequestEvent setState(org.apache.airavata.model.status.TaskState state) {
+    this.state = state;
+    return this;
+  }
+
+  public void unsetState() {
+    this.state = null;
+  }
+
+  /** Returns true if field state is set (has been assigned a value) and false otherwise */
+  public boolean isSetState() {
+    return this.state != null;
+  }
+
+  public void setStateIsSet(boolean value) {
+    if (!value) {
+      this.state = null;
+    }
+  }
+
+  public TaskIdentifier getTaskIdentity() {
+    return this.taskIdentity;
+  }
+
+  public TaskStatusChangeRequestEvent setTaskIdentity(TaskIdentifier taskIdentity) {
+    this.taskIdentity = taskIdentity;
+    return this;
+  }
+
+  public void unsetTaskIdentity() {
+    this.taskIdentity = null;
+  }
+
+  /** Returns true if field taskIdentity is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskIdentity() {
+    return this.taskIdentity != null;
+  }
+
+  public void setTaskIdentityIsSet(boolean value) {
+    if (!value) {
+      this.taskIdentity = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE:
+      if (value == null) {
+        unsetState();
+      } else {
+        setState((org.apache.airavata.model.status.TaskState)value);
+      }
+      break;
+
+    case TASK_IDENTITY:
+      if (value == null) {
+        unsetTaskIdentity();
+      } else {
+        setTaskIdentity((TaskIdentifier)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE:
+      return getState();
+
+    case TASK_IDENTITY:
+      return getTaskIdentity();
+
+    }
+    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 STATE:
+      return isSetState();
+    case TASK_IDENTITY:
+      return isSetTaskIdentity();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TaskStatusChangeRequestEvent)
+      return this.equals((TaskStatusChangeRequestEvent)that);
+    return false;
+  }
+
+  public boolean equals(TaskStatusChangeRequestEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_state = true && this.isSetState();
+    boolean that_present_state = true && that.isSetState();
+    if (this_present_state || that_present_state) {
+      if (!(this_present_state && that_present_state))
+        return false;
+      if (!this.state.equals(that.state))
+        return false;
+    }
+
+    boolean this_present_taskIdentity = true && this.isSetTaskIdentity();
+    boolean that_present_taskIdentity = true && that.isSetTaskIdentity();
+    if (this_present_taskIdentity || that_present_taskIdentity) {
+      if (!(this_present_taskIdentity && that_present_taskIdentity))
+        return false;
+      if (!this.taskIdentity.equals(that.taskIdentity))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state = true && (isSetState());
+    list.add(present_state);
+    if (present_state)
+      list.add(state.getValue());
+
+    boolean present_taskIdentity = true && (isSetTaskIdentity());
+    list.add(present_taskIdentity);
+    if (present_taskIdentity)
+      list.add(taskIdentity);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(TaskStatusChangeRequestEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetState()).compareTo(other.isSetState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTaskIdentity()).compareTo(other.isSetTaskIdentity());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskIdentity()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskIdentity, other.taskIdentity);
+      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("TaskStatusChangeRequestEvent(");
+    boolean first = true;
+
+    sb.append("state:");
+    if (this.state == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("taskIdentity:");
+    if (this.taskIdentity == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.taskIdentity);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (state == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state' was not present! Struct: " + toString());
+    }
+    if (taskIdentity == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskIdentity' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (taskIdentity != null) {
+      taskIdentity.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 {
+      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 TaskStatusChangeRequestEventStandardSchemeFactory implements SchemeFactory {
+    public TaskStatusChangeRequestEventStandardScheme getScheme() {
+      return new TaskStatusChangeRequestEventStandardScheme();
+    }
+  }
+
+  private static class TaskStatusChangeRequestEventStandardScheme extends StandardScheme<TaskStatusChangeRequestEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TaskStatusChangeRequestEvent 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: // STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.state = org.apache.airavata.model.status.TaskState.findByValue(iprot.readI32());
+              struct.setStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TASK_IDENTITY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.taskIdentity = new TaskIdentifier();
+              struct.taskIdentity.read(iprot);
+              struct.setTaskIdentityIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, TaskStatusChangeRequestEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state != null) {
+        oprot.writeFieldBegin(STATE_FIELD_DESC);
+        oprot.writeI32(struct.state.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.taskIdentity != null) {
+        oprot.writeFieldBegin(TASK_IDENTITY_FIELD_DESC);
+        struct.taskIdentity.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TaskStatusChangeRequestEventTupleSchemeFactory implements SchemeFactory {
+    public TaskStatusChangeRequestEventTupleScheme getScheme() {
+      return new TaskStatusChangeRequestEventTupleScheme();
+    }
+  }
+
+  private static class TaskStatusChangeRequestEventTupleScheme extends TupleScheme<TaskStatusChangeRequestEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TaskStatusChangeRequestEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.state.getValue());
+      struct.taskIdentity.write(oprot);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TaskStatusChangeRequestEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state = org.apache.airavata.model.status.TaskState.findByValue(iprot.readI32());
+      struct.setStateIsSet(true);
+      struct.taskIdentity = new TaskIdentifier();
+      struct.taskIdentity.read(iprot);
+      struct.setTaskIdentityIsSet(true);
+    }
+  }
+
+}
+


[13/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/metadata/MetadataModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/metadata/MetadataModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/metadata/MetadataModel.java
deleted file mode 100644
index 5edf8d5..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/metadata/MetadataModel.java
+++ /dev/null
@@ -1,1474 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.metadata;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
-public class MetadataModel implements org.apache.thrift.TBase<MetadataModel, MetadataModel._Fields>, java.io.Serializable, Cloneable, Comparable<MetadataModel> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MetadataModel");
-
-  private static final org.apache.thrift.protocol.TField METADATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("metadataId", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField SHARED_USERS_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedUsers", org.apache.thrift.protocol.TType.LIST, (short)4);
-  private static final org.apache.thrift.protocol.TField SHARED_PUBLIC_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedPublic", org.apache.thrift.protocol.TType.BOOL, (short)5);
-  private static final org.apache.thrift.protocol.TField USER_FRIENDLY_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userFriendlyName", org.apache.thrift.protocol.TType.STRING, (short)6);
-  private static final org.apache.thrift.protocol.TField USER_FRIENDLY_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("userFriendlyDescription", org.apache.thrift.protocol.TType.STRING, (short)7);
-  private static final org.apache.thrift.protocol.TField METADATA_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("metadataType", org.apache.thrift.protocol.TType.I32, (short)8);
-  private static final org.apache.thrift.protocol.TField ASSOCIATED_ENTITY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("associatedEntityId", org.apache.thrift.protocol.TType.STRING, (short)9);
-  private static final org.apache.thrift.protocol.TField CUSTOM_INFORMATION_FIELD_DESC = new org.apache.thrift.protocol.TField("customInformation", org.apache.thrift.protocol.TType.MAP, (short)10);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new MetadataModelStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new MetadataModelTupleSchemeFactory());
-  }
-
-  private String metadataId; // optional
-  private String gatewayId; // optional
-  private String username; // optional
-  private List<String> sharedUsers; // optional
-  private boolean sharedPublic; // optional
-  private String userFriendlyName; // optional
-  private String userFriendlyDescription; // optional
-  private MetadataType metadataType; // optional
-  private String associatedEntityId; // optional
-  private Map<String,String> customInformation; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    METADATA_ID((short)1, "metadataId"),
-    GATEWAY_ID((short)2, "gatewayId"),
-    USERNAME((short)3, "username"),
-    SHARED_USERS((short)4, "sharedUsers"),
-    SHARED_PUBLIC((short)5, "sharedPublic"),
-    USER_FRIENDLY_NAME((short)6, "userFriendlyName"),
-    USER_FRIENDLY_DESCRIPTION((short)7, "userFriendlyDescription"),
-    /**
-     * 
-     * @see MetadataType
-     */
-    METADATA_TYPE((short)8, "metadataType"),
-    ASSOCIATED_ENTITY_ID((short)9, "associatedEntityId"),
-    CUSTOM_INFORMATION((short)10, "customInformation");
-
-    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: // METADATA_ID
-          return METADATA_ID;
-        case 2: // GATEWAY_ID
-          return GATEWAY_ID;
-        case 3: // USERNAME
-          return USERNAME;
-        case 4: // SHARED_USERS
-          return SHARED_USERS;
-        case 5: // SHARED_PUBLIC
-          return SHARED_PUBLIC;
-        case 6: // USER_FRIENDLY_NAME
-          return USER_FRIENDLY_NAME;
-        case 7: // USER_FRIENDLY_DESCRIPTION
-          return USER_FRIENDLY_DESCRIPTION;
-        case 8: // METADATA_TYPE
-          return METADATA_TYPE;
-        case 9: // ASSOCIATED_ENTITY_ID
-          return ASSOCIATED_ENTITY_ID;
-        case 10: // CUSTOM_INFORMATION
-          return CUSTOM_INFORMATION;
-        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 __SHAREDPUBLIC_ISSET_ID = 0;
-  private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.METADATA_ID,_Fields.GATEWAY_ID,_Fields.USERNAME,_Fields.SHARED_USERS,_Fields.SHARED_PUBLIC,_Fields.USER_FRIENDLY_NAME,_Fields.USER_FRIENDLY_DESCRIPTION,_Fields.METADATA_TYPE,_Fields.ASSOCIATED_ENTITY_ID,_Fields.CUSTOM_INFORMATION};
-  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.METADATA_ID, new org.apache.thrift.meta_data.FieldMetaData("metadataId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SHARED_USERS, new org.apache.thrift.meta_data.FieldMetaData("sharedUsers", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.SHARED_PUBLIC, new org.apache.thrift.meta_data.FieldMetaData("sharedPublic", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
-    tmpMap.put(_Fields.USER_FRIENDLY_NAME, new org.apache.thrift.meta_data.FieldMetaData("userFriendlyName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.USER_FRIENDLY_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("userFriendlyDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.METADATA_TYPE, new org.apache.thrift.meta_data.FieldMetaData("metadataType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, MetadataType.class)));
-    tmpMap.put(_Fields.ASSOCIATED_ENTITY_ID, new org.apache.thrift.meta_data.FieldMetaData("associatedEntityId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.CUSTOM_INFORMATION, new org.apache.thrift.meta_data.FieldMetaData("customInformation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(MetadataModel.class, metaDataMap);
-  }
-
-  public MetadataModel() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public MetadataModel(MetadataModel other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetMetadataId()) {
-      this.metadataId = other.metadataId;
-    }
-    if (other.isSetGatewayId()) {
-      this.gatewayId = other.gatewayId;
-    }
-    if (other.isSetUsername()) {
-      this.username = other.username;
-    }
-    if (other.isSetSharedUsers()) {
-      List<String> __this__sharedUsers = new ArrayList<String>(other.sharedUsers);
-      this.sharedUsers = __this__sharedUsers;
-    }
-    this.sharedPublic = other.sharedPublic;
-    if (other.isSetUserFriendlyName()) {
-      this.userFriendlyName = other.userFriendlyName;
-    }
-    if (other.isSetUserFriendlyDescription()) {
-      this.userFriendlyDescription = other.userFriendlyDescription;
-    }
-    if (other.isSetMetadataType()) {
-      this.metadataType = other.metadataType;
-    }
-    if (other.isSetAssociatedEntityId()) {
-      this.associatedEntityId = other.associatedEntityId;
-    }
-    if (other.isSetCustomInformation()) {
-      Map<String,String> __this__customInformation = new HashMap<String,String>(other.customInformation);
-      this.customInformation = __this__customInformation;
-    }
-  }
-
-  public MetadataModel deepCopy() {
-    return new MetadataModel(this);
-  }
-
-  @Override
-  public void clear() {
-    this.metadataId = null;
-    this.gatewayId = null;
-    this.username = null;
-    this.sharedUsers = null;
-    setSharedPublicIsSet(false);
-    this.sharedPublic = false;
-    this.userFriendlyName = null;
-    this.userFriendlyDescription = null;
-    this.metadataType = null;
-    this.associatedEntityId = null;
-    this.customInformation = null;
-  }
-
-  public String getMetadataId() {
-    return this.metadataId;
-  }
-
-  public void setMetadataId(String metadataId) {
-    this.metadataId = metadataId;
-  }
-
-  public void unsetMetadataId() {
-    this.metadataId = null;
-  }
-
-  /** Returns true if field metadataId is set (has been assigned a value) and false otherwise */
-  public boolean isSetMetadataId() {
-    return this.metadataId != null;
-  }
-
-  public void setMetadataIdIsSet(boolean value) {
-    if (!value) {
-      this.metadataId = null;
-    }
-  }
-
-  public String getGatewayId() {
-    return this.gatewayId;
-  }
-
-  public void setGatewayId(String gatewayId) {
-    this.gatewayId = gatewayId;
-  }
-
-  public void unsetGatewayId() {
-    this.gatewayId = null;
-  }
-
-  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
-  public boolean isSetGatewayId() {
-    return this.gatewayId != null;
-  }
-
-  public void setGatewayIdIsSet(boolean value) {
-    if (!value) {
-      this.gatewayId = null;
-    }
-  }
-
-  public String getUsername() {
-    return this.username;
-  }
-
-  public void setUsername(String username) {
-    this.username = username;
-  }
-
-  public void unsetUsername() {
-    this.username = null;
-  }
-
-  /** Returns true if field username is set (has been assigned a value) and false otherwise */
-  public boolean isSetUsername() {
-    return this.username != null;
-  }
-
-  public void setUsernameIsSet(boolean value) {
-    if (!value) {
-      this.username = null;
-    }
-  }
-
-  public int getSharedUsersSize() {
-    return (this.sharedUsers == null) ? 0 : this.sharedUsers.size();
-  }
-
-  public java.util.Iterator<String> getSharedUsersIterator() {
-    return (this.sharedUsers == null) ? null : this.sharedUsers.iterator();
-  }
-
-  public void addToSharedUsers(String elem) {
-    if (this.sharedUsers == null) {
-      this.sharedUsers = new ArrayList<String>();
-    }
-    this.sharedUsers.add(elem);
-  }
-
-  public List<String> getSharedUsers() {
-    return this.sharedUsers;
-  }
-
-  public void setSharedUsers(List<String> sharedUsers) {
-    this.sharedUsers = sharedUsers;
-  }
-
-  public void unsetSharedUsers() {
-    this.sharedUsers = null;
-  }
-
-  /** Returns true if field sharedUsers is set (has been assigned a value) and false otherwise */
-  public boolean isSetSharedUsers() {
-    return this.sharedUsers != null;
-  }
-
-  public void setSharedUsersIsSet(boolean value) {
-    if (!value) {
-      this.sharedUsers = null;
-    }
-  }
-
-  public boolean isSharedPublic() {
-    return this.sharedPublic;
-  }
-
-  public void setSharedPublic(boolean sharedPublic) {
-    this.sharedPublic = sharedPublic;
-    setSharedPublicIsSet(true);
-  }
-
-  public void unsetSharedPublic() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
-  }
-
-  /** Returns true if field sharedPublic is set (has been assigned a value) and false otherwise */
-  public boolean isSetSharedPublic() {
-    return EncodingUtils.testBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
-  }
-
-  public void setSharedPublicIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID, value);
-  }
-
-  public String getUserFriendlyName() {
-    return this.userFriendlyName;
-  }
-
-  public void setUserFriendlyName(String userFriendlyName) {
-    this.userFriendlyName = userFriendlyName;
-  }
-
-  public void unsetUserFriendlyName() {
-    this.userFriendlyName = null;
-  }
-
-  /** Returns true if field userFriendlyName is set (has been assigned a value) and false otherwise */
-  public boolean isSetUserFriendlyName() {
-    return this.userFriendlyName != null;
-  }
-
-  public void setUserFriendlyNameIsSet(boolean value) {
-    if (!value) {
-      this.userFriendlyName = null;
-    }
-  }
-
-  public String getUserFriendlyDescription() {
-    return this.userFriendlyDescription;
-  }
-
-  public void setUserFriendlyDescription(String userFriendlyDescription) {
-    this.userFriendlyDescription = userFriendlyDescription;
-  }
-
-  public void unsetUserFriendlyDescription() {
-    this.userFriendlyDescription = null;
-  }
-
-  /** Returns true if field userFriendlyDescription is set (has been assigned a value) and false otherwise */
-  public boolean isSetUserFriendlyDescription() {
-    return this.userFriendlyDescription != null;
-  }
-
-  public void setUserFriendlyDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.userFriendlyDescription = null;
-    }
-  }
-
-  /**
-   * 
-   * @see MetadataType
-   */
-  public MetadataType getMetadataType() {
-    return this.metadataType;
-  }
-
-  /**
-   * 
-   * @see MetadataType
-   */
-  public void setMetadataType(MetadataType metadataType) {
-    this.metadataType = metadataType;
-  }
-
-  public void unsetMetadataType() {
-    this.metadataType = null;
-  }
-
-  /** Returns true if field metadataType is set (has been assigned a value) and false otherwise */
-  public boolean isSetMetadataType() {
-    return this.metadataType != null;
-  }
-
-  public void setMetadataTypeIsSet(boolean value) {
-    if (!value) {
-      this.metadataType = null;
-    }
-  }
-
-  public String getAssociatedEntityId() {
-    return this.associatedEntityId;
-  }
-
-  public void setAssociatedEntityId(String associatedEntityId) {
-    this.associatedEntityId = associatedEntityId;
-  }
-
-  public void unsetAssociatedEntityId() {
-    this.associatedEntityId = null;
-  }
-
-  /** Returns true if field associatedEntityId is set (has been assigned a value) and false otherwise */
-  public boolean isSetAssociatedEntityId() {
-    return this.associatedEntityId != null;
-  }
-
-  public void setAssociatedEntityIdIsSet(boolean value) {
-    if (!value) {
-      this.associatedEntityId = null;
-    }
-  }
-
-  public int getCustomInformationSize() {
-    return (this.customInformation == null) ? 0 : this.customInformation.size();
-  }
-
-  public void putToCustomInformation(String key, String val) {
-    if (this.customInformation == null) {
-      this.customInformation = new HashMap<String,String>();
-    }
-    this.customInformation.put(key, val);
-  }
-
-  public Map<String,String> getCustomInformation() {
-    return this.customInformation;
-  }
-
-  public void setCustomInformation(Map<String,String> customInformation) {
-    this.customInformation = customInformation;
-  }
-
-  public void unsetCustomInformation() {
-    this.customInformation = null;
-  }
-
-  /** Returns true if field customInformation is set (has been assigned a value) and false otherwise */
-  public boolean isSetCustomInformation() {
-    return this.customInformation != null;
-  }
-
-  public void setCustomInformationIsSet(boolean value) {
-    if (!value) {
-      this.customInformation = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case METADATA_ID:
-      if (value == null) {
-        unsetMetadataId();
-      } else {
-        setMetadataId((String)value);
-      }
-      break;
-
-    case GATEWAY_ID:
-      if (value == null) {
-        unsetGatewayId();
-      } else {
-        setGatewayId((String)value);
-      }
-      break;
-
-    case USERNAME:
-      if (value == null) {
-        unsetUsername();
-      } else {
-        setUsername((String)value);
-      }
-      break;
-
-    case SHARED_USERS:
-      if (value == null) {
-        unsetSharedUsers();
-      } else {
-        setSharedUsers((List<String>)value);
-      }
-      break;
-
-    case SHARED_PUBLIC:
-      if (value == null) {
-        unsetSharedPublic();
-      } else {
-        setSharedPublic((Boolean)value);
-      }
-      break;
-
-    case USER_FRIENDLY_NAME:
-      if (value == null) {
-        unsetUserFriendlyName();
-      } else {
-        setUserFriendlyName((String)value);
-      }
-      break;
-
-    case USER_FRIENDLY_DESCRIPTION:
-      if (value == null) {
-        unsetUserFriendlyDescription();
-      } else {
-        setUserFriendlyDescription((String)value);
-      }
-      break;
-
-    case METADATA_TYPE:
-      if (value == null) {
-        unsetMetadataType();
-      } else {
-        setMetadataType((MetadataType)value);
-      }
-      break;
-
-    case ASSOCIATED_ENTITY_ID:
-      if (value == null) {
-        unsetAssociatedEntityId();
-      } else {
-        setAssociatedEntityId((String)value);
-      }
-      break;
-
-    case CUSTOM_INFORMATION:
-      if (value == null) {
-        unsetCustomInformation();
-      } else {
-        setCustomInformation((Map<String,String>)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case METADATA_ID:
-      return getMetadataId();
-
-    case GATEWAY_ID:
-      return getGatewayId();
-
-    case USERNAME:
-      return getUsername();
-
-    case SHARED_USERS:
-      return getSharedUsers();
-
-    case SHARED_PUBLIC:
-      return isSharedPublic();
-
-    case USER_FRIENDLY_NAME:
-      return getUserFriendlyName();
-
-    case USER_FRIENDLY_DESCRIPTION:
-      return getUserFriendlyDescription();
-
-    case METADATA_TYPE:
-      return getMetadataType();
-
-    case ASSOCIATED_ENTITY_ID:
-      return getAssociatedEntityId();
-
-    case CUSTOM_INFORMATION:
-      return getCustomInformation();
-
-    }
-    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 METADATA_ID:
-      return isSetMetadataId();
-    case GATEWAY_ID:
-      return isSetGatewayId();
-    case USERNAME:
-      return isSetUsername();
-    case SHARED_USERS:
-      return isSetSharedUsers();
-    case SHARED_PUBLIC:
-      return isSetSharedPublic();
-    case USER_FRIENDLY_NAME:
-      return isSetUserFriendlyName();
-    case USER_FRIENDLY_DESCRIPTION:
-      return isSetUserFriendlyDescription();
-    case METADATA_TYPE:
-      return isSetMetadataType();
-    case ASSOCIATED_ENTITY_ID:
-      return isSetAssociatedEntityId();
-    case CUSTOM_INFORMATION:
-      return isSetCustomInformation();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof MetadataModel)
-      return this.equals((MetadataModel)that);
-    return false;
-  }
-
-  public boolean equals(MetadataModel that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_metadataId = true && this.isSetMetadataId();
-    boolean that_present_metadataId = true && that.isSetMetadataId();
-    if (this_present_metadataId || that_present_metadataId) {
-      if (!(this_present_metadataId && that_present_metadataId))
-        return false;
-      if (!this.metadataId.equals(that.metadataId))
-        return false;
-    }
-
-    boolean this_present_gatewayId = true && this.isSetGatewayId();
-    boolean that_present_gatewayId = true && that.isSetGatewayId();
-    if (this_present_gatewayId || that_present_gatewayId) {
-      if (!(this_present_gatewayId && that_present_gatewayId))
-        return false;
-      if (!this.gatewayId.equals(that.gatewayId))
-        return false;
-    }
-
-    boolean this_present_username = true && this.isSetUsername();
-    boolean that_present_username = true && that.isSetUsername();
-    if (this_present_username || that_present_username) {
-      if (!(this_present_username && that_present_username))
-        return false;
-      if (!this.username.equals(that.username))
-        return false;
-    }
-
-    boolean this_present_sharedUsers = true && this.isSetSharedUsers();
-    boolean that_present_sharedUsers = true && that.isSetSharedUsers();
-    if (this_present_sharedUsers || that_present_sharedUsers) {
-      if (!(this_present_sharedUsers && that_present_sharedUsers))
-        return false;
-      if (!this.sharedUsers.equals(that.sharedUsers))
-        return false;
-    }
-
-    boolean this_present_sharedPublic = true && this.isSetSharedPublic();
-    boolean that_present_sharedPublic = true && that.isSetSharedPublic();
-    if (this_present_sharedPublic || that_present_sharedPublic) {
-      if (!(this_present_sharedPublic && that_present_sharedPublic))
-        return false;
-      if (this.sharedPublic != that.sharedPublic)
-        return false;
-    }
-
-    boolean this_present_userFriendlyName = true && this.isSetUserFriendlyName();
-    boolean that_present_userFriendlyName = true && that.isSetUserFriendlyName();
-    if (this_present_userFriendlyName || that_present_userFriendlyName) {
-      if (!(this_present_userFriendlyName && that_present_userFriendlyName))
-        return false;
-      if (!this.userFriendlyName.equals(that.userFriendlyName))
-        return false;
-    }
-
-    boolean this_present_userFriendlyDescription = true && this.isSetUserFriendlyDescription();
-    boolean that_present_userFriendlyDescription = true && that.isSetUserFriendlyDescription();
-    if (this_present_userFriendlyDescription || that_present_userFriendlyDescription) {
-      if (!(this_present_userFriendlyDescription && that_present_userFriendlyDescription))
-        return false;
-      if (!this.userFriendlyDescription.equals(that.userFriendlyDescription))
-        return false;
-    }
-
-    boolean this_present_metadataType = true && this.isSetMetadataType();
-    boolean that_present_metadataType = true && that.isSetMetadataType();
-    if (this_present_metadataType || that_present_metadataType) {
-      if (!(this_present_metadataType && that_present_metadataType))
-        return false;
-      if (!this.metadataType.equals(that.metadataType))
-        return false;
-    }
-
-    boolean this_present_associatedEntityId = true && this.isSetAssociatedEntityId();
-    boolean that_present_associatedEntityId = true && that.isSetAssociatedEntityId();
-    if (this_present_associatedEntityId || that_present_associatedEntityId) {
-      if (!(this_present_associatedEntityId && that_present_associatedEntityId))
-        return false;
-      if (!this.associatedEntityId.equals(that.associatedEntityId))
-        return false;
-    }
-
-    boolean this_present_customInformation = true && this.isSetCustomInformation();
-    boolean that_present_customInformation = true && that.isSetCustomInformation();
-    if (this_present_customInformation || that_present_customInformation) {
-      if (!(this_present_customInformation && that_present_customInformation))
-        return false;
-      if (!this.customInformation.equals(that.customInformation))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    List<Object> list = new ArrayList<Object>();
-
-    boolean present_metadataId = true && (isSetMetadataId());
-    list.add(present_metadataId);
-    if (present_metadataId)
-      list.add(metadataId);
-
-    boolean present_gatewayId = true && (isSetGatewayId());
-    list.add(present_gatewayId);
-    if (present_gatewayId)
-      list.add(gatewayId);
-
-    boolean present_username = true && (isSetUsername());
-    list.add(present_username);
-    if (present_username)
-      list.add(username);
-
-    boolean present_sharedUsers = true && (isSetSharedUsers());
-    list.add(present_sharedUsers);
-    if (present_sharedUsers)
-      list.add(sharedUsers);
-
-    boolean present_sharedPublic = true && (isSetSharedPublic());
-    list.add(present_sharedPublic);
-    if (present_sharedPublic)
-      list.add(sharedPublic);
-
-    boolean present_userFriendlyName = true && (isSetUserFriendlyName());
-    list.add(present_userFriendlyName);
-    if (present_userFriendlyName)
-      list.add(userFriendlyName);
-
-    boolean present_userFriendlyDescription = true && (isSetUserFriendlyDescription());
-    list.add(present_userFriendlyDescription);
-    if (present_userFriendlyDescription)
-      list.add(userFriendlyDescription);
-
-    boolean present_metadataType = true && (isSetMetadataType());
-    list.add(present_metadataType);
-    if (present_metadataType)
-      list.add(metadataType.getValue());
-
-    boolean present_associatedEntityId = true && (isSetAssociatedEntityId());
-    list.add(present_associatedEntityId);
-    if (present_associatedEntityId)
-      list.add(associatedEntityId);
-
-    boolean present_customInformation = true && (isSetCustomInformation());
-    list.add(present_customInformation);
-    if (present_customInformation)
-      list.add(customInformation);
-
-    return list.hashCode();
-  }
-
-  @Override
-  public int compareTo(MetadataModel other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetMetadataId()).compareTo(other.isSetMetadataId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetMetadataId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.metadataId, other.metadataId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetGatewayId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetUsername()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSharedUsers()).compareTo(other.isSetSharedUsers());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSharedUsers()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedUsers, other.sharedUsers);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSharedPublic()).compareTo(other.isSetSharedPublic());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSharedPublic()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedPublic, other.sharedPublic);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetUserFriendlyName()).compareTo(other.isSetUserFriendlyName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetUserFriendlyName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userFriendlyName, other.userFriendlyName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetUserFriendlyDescription()).compareTo(other.isSetUserFriendlyDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetUserFriendlyDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userFriendlyDescription, other.userFriendlyDescription);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetMetadataType()).compareTo(other.isSetMetadataType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetMetadataType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.metadataType, other.metadataType);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetAssociatedEntityId()).compareTo(other.isSetAssociatedEntityId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetAssociatedEntityId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.associatedEntityId, other.associatedEntityId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetCustomInformation()).compareTo(other.isSetCustomInformation());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCustomInformation()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.customInformation, other.customInformation);
-      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("MetadataModel(");
-    boolean first = true;
-
-    if (isSetMetadataId()) {
-      sb.append("metadataId:");
-      if (this.metadataId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.metadataId);
-      }
-      first = false;
-    }
-    if (isSetGatewayId()) {
-      if (!first) sb.append(", ");
-      sb.append("gatewayId:");
-      if (this.gatewayId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.gatewayId);
-      }
-      first = false;
-    }
-    if (isSetUsername()) {
-      if (!first) sb.append(", ");
-      sb.append("username:");
-      if (this.username == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.username);
-      }
-      first = false;
-    }
-    if (isSetSharedUsers()) {
-      if (!first) sb.append(", ");
-      sb.append("sharedUsers:");
-      if (this.sharedUsers == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.sharedUsers);
-      }
-      first = false;
-    }
-    if (isSetSharedPublic()) {
-      if (!first) sb.append(", ");
-      sb.append("sharedPublic:");
-      sb.append(this.sharedPublic);
-      first = false;
-    }
-    if (isSetUserFriendlyName()) {
-      if (!first) sb.append(", ");
-      sb.append("userFriendlyName:");
-      if (this.userFriendlyName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.userFriendlyName);
-      }
-      first = false;
-    }
-    if (isSetUserFriendlyDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("userFriendlyDescription:");
-      if (this.userFriendlyDescription == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.userFriendlyDescription);
-      }
-      first = false;
-    }
-    if (isSetMetadataType()) {
-      if (!first) sb.append(", ");
-      sb.append("metadataType:");
-      if (this.metadataType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.metadataType);
-      }
-      first = false;
-    }
-    if (isSetAssociatedEntityId()) {
-      if (!first) sb.append(", ");
-      sb.append("associatedEntityId:");
-      if (this.associatedEntityId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.associatedEntityId);
-      }
-      first = false;
-    }
-    if (isSetCustomInformation()) {
-      if (!first) sb.append(", ");
-      sb.append("customInformation:");
-      if (this.customInformation == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.customInformation);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // 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 MetadataModelStandardSchemeFactory implements SchemeFactory {
-    public MetadataModelStandardScheme getScheme() {
-      return new MetadataModelStandardScheme();
-    }
-  }
-
-  private static class MetadataModelStandardScheme extends StandardScheme<MetadataModel> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, MetadataModel 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: // METADATA_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.metadataId = iprot.readString();
-              struct.setMetadataIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // GATEWAY_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.gatewayId = iprot.readString();
-              struct.setGatewayIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // USERNAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.username = iprot.readString();
-              struct.setUsernameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // SHARED_USERS
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
-                struct.sharedUsers = new ArrayList<String>(_list0.size);
-                String _elem1;
-                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
-                {
-                  _elem1 = iprot.readString();
-                  struct.sharedUsers.add(_elem1);
-                }
-                iprot.readListEnd();
-              }
-              struct.setSharedUsersIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // SHARED_PUBLIC
-            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
-              struct.sharedPublic = iprot.readBool();
-              struct.setSharedPublicIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // USER_FRIENDLY_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.userFriendlyName = iprot.readString();
-              struct.setUserFriendlyNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 7: // USER_FRIENDLY_DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.userFriendlyDescription = iprot.readString();
-              struct.setUserFriendlyDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // METADATA_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.metadataType = org.apache.airavata.model.file.metadata.MetadataType.findByValue(iprot.readI32());
-              struct.setMetadataTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 9: // ASSOCIATED_ENTITY_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.associatedEntityId = iprot.readString();
-              struct.setAssociatedEntityIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 10: // CUSTOM_INFORMATION
-            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
-              {
-                org.apache.thrift.protocol.TMap _map3 = iprot.readMapBegin();
-                struct.customInformation = new HashMap<String,String>(2*_map3.size);
-                String _key4;
-                String _val5;
-                for (int _i6 = 0; _i6 < _map3.size; ++_i6)
-                {
-                  _key4 = iprot.readString();
-                  _val5 = iprot.readString();
-                  struct.customInformation.put(_key4, _val5);
-                }
-                iprot.readMapEnd();
-              }
-              struct.setCustomInformationIsSet(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, MetadataModel struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.metadataId != null) {
-        if (struct.isSetMetadataId()) {
-          oprot.writeFieldBegin(METADATA_ID_FIELD_DESC);
-          oprot.writeString(struct.metadataId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.gatewayId != null) {
-        if (struct.isSetGatewayId()) {
-          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
-          oprot.writeString(struct.gatewayId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.username != null) {
-        if (struct.isSetUsername()) {
-          oprot.writeFieldBegin(USERNAME_FIELD_DESC);
-          oprot.writeString(struct.username);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.sharedUsers != null) {
-        if (struct.isSetSharedUsers()) {
-          oprot.writeFieldBegin(SHARED_USERS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.sharedUsers.size()));
-            for (String _iter7 : struct.sharedUsers)
-            {
-              oprot.writeString(_iter7);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetSharedPublic()) {
-        oprot.writeFieldBegin(SHARED_PUBLIC_FIELD_DESC);
-        oprot.writeBool(struct.sharedPublic);
-        oprot.writeFieldEnd();
-      }
-      if (struct.userFriendlyName != null) {
-        if (struct.isSetUserFriendlyName()) {
-          oprot.writeFieldBegin(USER_FRIENDLY_NAME_FIELD_DESC);
-          oprot.writeString(struct.userFriendlyName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.userFriendlyDescription != null) {
-        if (struct.isSetUserFriendlyDescription()) {
-          oprot.writeFieldBegin(USER_FRIENDLY_DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.userFriendlyDescription);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.metadataType != null) {
-        if (struct.isSetMetadataType()) {
-          oprot.writeFieldBegin(METADATA_TYPE_FIELD_DESC);
-          oprot.writeI32(struct.metadataType.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.associatedEntityId != null) {
-        if (struct.isSetAssociatedEntityId()) {
-          oprot.writeFieldBegin(ASSOCIATED_ENTITY_ID_FIELD_DESC);
-          oprot.writeString(struct.associatedEntityId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.customInformation != null) {
-        if (struct.isSetCustomInformation()) {
-          oprot.writeFieldBegin(CUSTOM_INFORMATION_FIELD_DESC);
-          {
-            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.customInformation.size()));
-            for (Map.Entry<String, String> _iter8 : struct.customInformation.entrySet())
-            {
-              oprot.writeString(_iter8.getKey());
-              oprot.writeString(_iter8.getValue());
-            }
-            oprot.writeMapEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class MetadataModelTupleSchemeFactory implements SchemeFactory {
-    public MetadataModelTupleScheme getScheme() {
-      return new MetadataModelTupleScheme();
-    }
-  }
-
-  private static class MetadataModelTupleScheme extends TupleScheme<MetadataModel> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, MetadataModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      BitSet optionals = new BitSet();
-      if (struct.isSetMetadataId()) {
-        optionals.set(0);
-      }
-      if (struct.isSetGatewayId()) {
-        optionals.set(1);
-      }
-      if (struct.isSetUsername()) {
-        optionals.set(2);
-      }
-      if (struct.isSetSharedUsers()) {
-        optionals.set(3);
-      }
-      if (struct.isSetSharedPublic()) {
-        optionals.set(4);
-      }
-      if (struct.isSetUserFriendlyName()) {
-        optionals.set(5);
-      }
-      if (struct.isSetUserFriendlyDescription()) {
-        optionals.set(6);
-      }
-      if (struct.isSetMetadataType()) {
-        optionals.set(7);
-      }
-      if (struct.isSetAssociatedEntityId()) {
-        optionals.set(8);
-      }
-      if (struct.isSetCustomInformation()) {
-        optionals.set(9);
-      }
-      oprot.writeBitSet(optionals, 10);
-      if (struct.isSetMetadataId()) {
-        oprot.writeString(struct.metadataId);
-      }
-      if (struct.isSetGatewayId()) {
-        oprot.writeString(struct.gatewayId);
-      }
-      if (struct.isSetUsername()) {
-        oprot.writeString(struct.username);
-      }
-      if (struct.isSetSharedUsers()) {
-        {
-          oprot.writeI32(struct.sharedUsers.size());
-          for (String _iter9 : struct.sharedUsers)
-          {
-            oprot.writeString(_iter9);
-          }
-        }
-      }
-      if (struct.isSetSharedPublic()) {
-        oprot.writeBool(struct.sharedPublic);
-      }
-      if (struct.isSetUserFriendlyName()) {
-        oprot.writeString(struct.userFriendlyName);
-      }
-      if (struct.isSetUserFriendlyDescription()) {
-        oprot.writeString(struct.userFriendlyDescription);
-      }
-      if (struct.isSetMetadataType()) {
-        oprot.writeI32(struct.metadataType.getValue());
-      }
-      if (struct.isSetAssociatedEntityId()) {
-        oprot.writeString(struct.associatedEntityId);
-      }
-      if (struct.isSetCustomInformation()) {
-        {
-          oprot.writeI32(struct.customInformation.size());
-          for (Map.Entry<String, String> _iter10 : struct.customInformation.entrySet())
-          {
-            oprot.writeString(_iter10.getKey());
-            oprot.writeString(_iter10.getValue());
-          }
-        }
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, MetadataModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(10);
-      if (incoming.get(0)) {
-        struct.metadataId = iprot.readString();
-        struct.setMetadataIdIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.gatewayId = iprot.readString();
-        struct.setGatewayIdIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.username = iprot.readString();
-        struct.setUsernameIsSet(true);
-      }
-      if (incoming.get(3)) {
-        {
-          org.apache.thrift.protocol.TList _list11 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.sharedUsers = new ArrayList<String>(_list11.size);
-          String _elem12;
-          for (int _i13 = 0; _i13 < _list11.size; ++_i13)
-          {
-            _elem12 = iprot.readString();
-            struct.sharedUsers.add(_elem12);
-          }
-        }
-        struct.setSharedUsersIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.sharedPublic = iprot.readBool();
-        struct.setSharedPublicIsSet(true);
-      }
-      if (incoming.get(5)) {
-        struct.userFriendlyName = iprot.readString();
-        struct.setUserFriendlyNameIsSet(true);
-      }
-      if (incoming.get(6)) {
-        struct.userFriendlyDescription = iprot.readString();
-        struct.setUserFriendlyDescriptionIsSet(true);
-      }
-      if (incoming.get(7)) {
-        struct.metadataType = org.apache.airavata.model.file.metadata.MetadataType.findByValue(iprot.readI32());
-        struct.setMetadataTypeIsSet(true);
-      }
-      if (incoming.get(8)) {
-        struct.associatedEntityId = iprot.readString();
-        struct.setAssociatedEntityIdIsSet(true);
-      }
-      if (incoming.get(9)) {
-        {
-          org.apache.thrift.protocol.TMap _map14 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.customInformation = new HashMap<String,String>(2*_map14.size);
-          String _key15;
-          String _val16;
-          for (int _i17 = 0; _i17 < _map14.size; ++_i17)
-          {
-            _key15 = iprot.readString();
-            _val16 = iprot.readString();
-            struct.customInformation.put(_key15, _val16);
-          }
-        }
-        struct.setCustomInformationIsSet(true);
-      }
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/metadata/MetadataType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/metadata/MetadataType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/metadata/MetadataType.java
deleted file mode 100644
index 7c10ce8..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/metadata/MetadataType.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.metadata;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum MetadataType implements org.apache.thrift.TEnum {
-  FILE(0),
-  COLLECTION(1);
-
-  private final int value;
-
-  private MetadataType(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 MetadataType findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return FILE;
-      case 1:
-        return COLLECTION;
-      default:
-        return null;
-    }
-  }
-}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
new file mode 100644
index 0000000..95ac0ed
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -0,0 +1,1821 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Computational Resource Description
+ * 
+ * computeResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.
+ * 
+ * hostName:
+ *   Fully Qualified Host Name.
+ * 
+ * hostAliases:
+ *   Aliases if any.
+ * 
+ * ipAddress:
+ *   IP Addresses of the Resource.
+ * 
+ * resourceDescription:
+ *  A user friendly description of the resource.
+ * 
+ * JobSubmissionProtocols:
+ *  A computational resources may have one or more ways of submitting Jobs. This structure
+ *    will hold all available mechanisms to interact with the resource.
+ *  The key is the priority
+ * 
+ * DataMovementProtocol:
+ *  Option to specify a prefered data movement mechanism of the available options.
+ * 
+ * fileSystems:
+ *  Map of file systems type and the path.
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
+
+  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField HOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("hostName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField HOST_ALIASES_FIELD_DESC = new org.apache.thrift.protocol.TField("hostAliases", org.apache.thrift.protocol.TType.LIST, (short)3);
+  private static final org.apache.thrift.protocol.TField IP_ADDRESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("ipAddresses", org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField RESOURCE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceDescription", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField ENABLED_FIELD_DESC = new org.apache.thrift.protocol.TField("enabled", org.apache.thrift.protocol.TType.BOOL, (short)6);
+  private static final org.apache.thrift.protocol.TField BATCH_QUEUES_FIELD_DESC = new org.apache.thrift.protocol.TField("batchQueues", org.apache.thrift.protocol.TType.LIST, (short)7);
+  private static final org.apache.thrift.protocol.TField FILE_SYSTEMS_FIELD_DESC = new org.apache.thrift.protocol.TField("fileSystems", org.apache.thrift.protocol.TType.MAP, (short)8);
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACES_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaces", org.apache.thrift.protocol.TType.LIST, (short)9);
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_INTERFACES_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementInterfaces", org.apache.thrift.protocol.TType.LIST, (short)10);
+  private static final org.apache.thrift.protocol.TField MAX_MEMORY_PER_NODE_FIELD_DESC = new org.apache.thrift.protocol.TField("maxMemoryPerNode", org.apache.thrift.protocol.TType.I32, (short)11);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ComputeResourceDescriptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ComputeResourceDescriptionTupleSchemeFactory());
+  }
+
+  public String computeResourceId; // required
+  public String hostName; // required
+  public List<String> hostAliases; // optional
+  public List<String> ipAddresses; // optional
+  public String resourceDescription; // optional
+  public boolean enabled; // optional
+  public List<BatchQueue> batchQueues; // optional
+  public Map<FileSystems,String> fileSystems; // optional
+  public List<JobSubmissionInterface> jobSubmissionInterfaces; // optional
+  public List<org.apache.airavata.model.data.movement.DataMovementInterface> dataMovementInterfaces; // optional
+  public int maxMemoryPerNode; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    COMPUTE_RESOURCE_ID((short)1, "computeResourceId"),
+    HOST_NAME((short)2, "hostName"),
+    HOST_ALIASES((short)3, "hostAliases"),
+    IP_ADDRESSES((short)4, "ipAddresses"),
+    RESOURCE_DESCRIPTION((short)5, "resourceDescription"),
+    ENABLED((short)6, "enabled"),
+    BATCH_QUEUES((short)7, "batchQueues"),
+    FILE_SYSTEMS((short)8, "fileSystems"),
+    JOB_SUBMISSION_INTERFACES((short)9, "jobSubmissionInterfaces"),
+    DATA_MOVEMENT_INTERFACES((short)10, "dataMovementInterfaces"),
+    MAX_MEMORY_PER_NODE((short)11, "maxMemoryPerNode");
+
+    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: // COMPUTE_RESOURCE_ID
+          return COMPUTE_RESOURCE_ID;
+        case 2: // HOST_NAME
+          return HOST_NAME;
+        case 3: // HOST_ALIASES
+          return HOST_ALIASES;
+        case 4: // IP_ADDRESSES
+          return IP_ADDRESSES;
+        case 5: // RESOURCE_DESCRIPTION
+          return RESOURCE_DESCRIPTION;
+        case 6: // ENABLED
+          return ENABLED;
+        case 7: // BATCH_QUEUES
+          return BATCH_QUEUES;
+        case 8: // FILE_SYSTEMS
+          return FILE_SYSTEMS;
+        case 9: // JOB_SUBMISSION_INTERFACES
+          return JOB_SUBMISSION_INTERFACES;
+        case 10: // DATA_MOVEMENT_INTERFACES
+          return DATA_MOVEMENT_INTERFACES;
+        case 11: // MAX_MEMORY_PER_NODE
+          return MAX_MEMORY_PER_NODE;
+        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 __ENABLED_ISSET_ID = 0;
+  private static final int __MAXMEMORYPERNODE_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.HOST_ALIASES,_Fields.IP_ADDRESSES,_Fields.RESOURCE_DESCRIPTION,_Fields.ENABLED,_Fields.BATCH_QUEUES,_Fields.FILE_SYSTEMS,_Fields.JOB_SUBMISSION_INTERFACES,_Fields.DATA_MOVEMENT_INTERFACES,_Fields.MAX_MEMORY_PER_NODE};
+  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.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.HOST_NAME, new org.apache.thrift.meta_data.FieldMetaData("hostName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.HOST_ALIASES, new org.apache.thrift.meta_data.FieldMetaData("hostAliases", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.IP_ADDRESSES, new org.apache.thrift.meta_data.FieldMetaData("ipAddresses", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.RESOURCE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("resourceDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.ENABLED, new org.apache.thrift.meta_data.FieldMetaData("enabled", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.BATCH_QUEUES, new org.apache.thrift.meta_data.FieldMetaData("batchQueues", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, BatchQueue.class))));
+    tmpMap.put(_Fields.FILE_SYSTEMS, new org.apache.thrift.meta_data.FieldMetaData("fileSystems", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, FileSystems.class), 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.JOB_SUBMISSION_INTERFACES, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionInterfaces", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JobSubmissionInterface.class))));
+    tmpMap.put(_Fields.DATA_MOVEMENT_INTERFACES, new org.apache.thrift.meta_data.FieldMetaData("dataMovementInterfaces", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.data.movement.DataMovementInterface.class))));
+    tmpMap.put(_Fields.MAX_MEMORY_PER_NODE, new org.apache.thrift.meta_data.FieldMetaData("maxMemoryPerNode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComputeResourceDescription.class, metaDataMap);
+  }
+
+  public ComputeResourceDescription() {
+    this.computeResourceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public ComputeResourceDescription(
+    String computeResourceId,
+    String hostName)
+  {
+    this();
+    this.computeResourceId = computeResourceId;
+    this.hostName = hostName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ComputeResourceDescription(ComputeResourceDescription other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetComputeResourceId()) {
+      this.computeResourceId = other.computeResourceId;
+    }
+    if (other.isSetHostName()) {
+      this.hostName = other.hostName;
+    }
+    if (other.isSetHostAliases()) {
+      List<String> __this__hostAliases = new ArrayList<String>(other.hostAliases);
+      this.hostAliases = __this__hostAliases;
+    }
+    if (other.isSetIpAddresses()) {
+      List<String> __this__ipAddresses = new ArrayList<String>(other.ipAddresses);
+      this.ipAddresses = __this__ipAddresses;
+    }
+    if (other.isSetResourceDescription()) {
+      this.resourceDescription = other.resourceDescription;
+    }
+    this.enabled = other.enabled;
+    if (other.isSetBatchQueues()) {
+      List<BatchQueue> __this__batchQueues = new ArrayList<BatchQueue>(other.batchQueues.size());
+      for (BatchQueue other_element : other.batchQueues) {
+        __this__batchQueues.add(new BatchQueue(other_element));
+      }
+      this.batchQueues = __this__batchQueues;
+    }
+    if (other.isSetFileSystems()) {
+      Map<FileSystems,String> __this__fileSystems = new HashMap<FileSystems,String>(other.fileSystems.size());
+      for (Map.Entry<FileSystems, String> other_element : other.fileSystems.entrySet()) {
+
+        FileSystems other_element_key = other_element.getKey();
+        String other_element_value = other_element.getValue();
+
+        FileSystems __this__fileSystems_copy_key = other_element_key;
+
+        String __this__fileSystems_copy_value = other_element_value;
+
+        __this__fileSystems.put(__this__fileSystems_copy_key, __this__fileSystems_copy_value);
+      }
+      this.fileSystems = __this__fileSystems;
+    }
+    if (other.isSetJobSubmissionInterfaces()) {
+      List<JobSubmissionInterface> __this__jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(other.jobSubmissionInterfaces.size());
+      for (JobSubmissionInterface other_element : other.jobSubmissionInterfaces) {
+        __this__jobSubmissionInterfaces.add(new JobSubmissionInterface(other_element));
+      }
+      this.jobSubmissionInterfaces = __this__jobSubmissionInterfaces;
+    }
+    if (other.isSetDataMovementInterfaces()) {
+      List<org.apache.airavata.model.data.movement.DataMovementInterface> __this__dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>(other.dataMovementInterfaces.size());
+      for (org.apache.airavata.model.data.movement.DataMovementInterface other_element : other.dataMovementInterfaces) {
+        __this__dataMovementInterfaces.add(new org.apache.airavata.model.data.movement.DataMovementInterface(other_element));
+      }
+      this.dataMovementInterfaces = __this__dataMovementInterfaces;
+    }
+    this.maxMemoryPerNode = other.maxMemoryPerNode;
+  }
+
+  public ComputeResourceDescription deepCopy() {
+    return new ComputeResourceDescription(this);
+  }
+
+  @Override
+  public void clear() {
+    this.computeResourceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.hostName = null;
+    this.hostAliases = null;
+    this.ipAddresses = null;
+    this.resourceDescription = null;
+    setEnabledIsSet(false);
+    this.enabled = false;
+    this.batchQueues = null;
+    this.fileSystems = null;
+    this.jobSubmissionInterfaces = null;
+    this.dataMovementInterfaces = null;
+    setMaxMemoryPerNodeIsSet(false);
+    this.maxMemoryPerNode = 0;
+  }
+
+  public String getComputeResourceId() {
+    return this.computeResourceId;
+  }
+
+  public ComputeResourceDescription setComputeResourceId(String computeResourceId) {
+    this.computeResourceId = computeResourceId;
+    return this;
+  }
+
+  public void unsetComputeResourceId() {
+    this.computeResourceId = null;
+  }
+
+  /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetComputeResourceId() {
+    return this.computeResourceId != null;
+  }
+
+  public void setComputeResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.computeResourceId = null;
+    }
+  }
+
+  public String getHostName() {
+    return this.hostName;
+  }
+
+  public ComputeResourceDescription setHostName(String hostName) {
+    this.hostName = hostName;
+    return this;
+  }
+
+  public void unsetHostName() {
+    this.hostName = null;
+  }
+
+  /** Returns true if field hostName is set (has been assigned a value) and false otherwise */
+  public boolean isSetHostName() {
+    return this.hostName != null;
+  }
+
+  public void setHostNameIsSet(boolean value) {
+    if (!value) {
+      this.hostName = null;
+    }
+  }
+
+  public int getHostAliasesSize() {
+    return (this.hostAliases == null) ? 0 : this.hostAliases.size();
+  }
+
+  public java.util.Iterator<String> getHostAliasesIterator() {
+    return (this.hostAliases == null) ? null : this.hostAliases.iterator();
+  }
+
+  public void addToHostAliases(String elem) {
+    if (this.hostAliases == null) {
+      this.hostAliases = new ArrayList<String>();
+    }
+    this.hostAliases.add(elem);
+  }
+
+  public List<String> getHostAliases() {
+    return this.hostAliases;
+  }
+
+  public ComputeResourceDescription setHostAliases(List<String> hostAliases) {
+    this.hostAliases = hostAliases;
+    return this;
+  }
+
+  public void unsetHostAliases() {
+    this.hostAliases = null;
+  }
+
+  /** Returns true if field hostAliases is set (has been assigned a value) and false otherwise */
+  public boolean isSetHostAliases() {
+    return this.hostAliases != null;
+  }
+
+  public void setHostAliasesIsSet(boolean value) {
+    if (!value) {
+      this.hostAliases = null;
+    }
+  }
+
+  public int getIpAddressesSize() {
+    return (this.ipAddresses == null) ? 0 : this.ipAddresses.size();
+  }
+
+  public java.util.Iterator<String> getIpAddressesIterator() {
+    return (this.ipAddresses == null) ? null : this.ipAddresses.iterator();
+  }
+
+  public void addToIpAddresses(String elem) {
+    if (this.ipAddresses == null) {
+      this.ipAddresses = new ArrayList<String>();
+    }
+    this.ipAddresses.add(elem);
+  }
+
+  public List<String> getIpAddresses() {
+    return this.ipAddresses;
+  }
+
+  public ComputeResourceDescription setIpAddresses(List<String> ipAddresses) {
+    this.ipAddresses = ipAddresses;
+    return this;
+  }
+
+  public void unsetIpAddresses() {
+    this.ipAddresses = null;
+  }
+
+  /** Returns true if field ipAddresses is set (has been assigned a value) and false otherwise */
+  public boolean isSetIpAddresses() {
+    return this.ipAddresses != null;
+  }
+
+  public void setIpAddressesIsSet(boolean value) {
+    if (!value) {
+      this.ipAddresses = null;
+    }
+  }
+
+  public String getResourceDescription() {
+    return this.resourceDescription;
+  }
+
+  public ComputeResourceDescription setResourceDescription(String resourceDescription) {
+    this.resourceDescription = resourceDescription;
+    return this;
+  }
+
+  public void unsetResourceDescription() {
+    this.resourceDescription = null;
+  }
+
+  /** Returns true if field resourceDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceDescription() {
+    return this.resourceDescription != null;
+  }
+
+  public void setResourceDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.resourceDescription = null;
+    }
+  }
+
+  public boolean isEnabled() {
+    return this.enabled;
+  }
+
+  public ComputeResourceDescription setEnabled(boolean enabled) {
+    this.enabled = enabled;
+    setEnabledIsSet(true);
+    return this;
+  }
+
+  public void unsetEnabled() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ENABLED_ISSET_ID);
+  }
+
+  /** Returns true if field enabled is set (has been assigned a value) and false otherwise */
+  public boolean isSetEnabled() {
+    return EncodingUtils.testBit(__isset_bitfield, __ENABLED_ISSET_ID);
+  }
+
+  public void setEnabledIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ENABLED_ISSET_ID, value);
+  }
+
+  public int getBatchQueuesSize() {
+    return (this.batchQueues == null) ? 0 : this.batchQueues.size();
+  }
+
+  public java.util.Iterator<BatchQueue> getBatchQueuesIterator() {
+    return (this.batchQueues == null) ? null : this.batchQueues.iterator();
+  }
+
+  public void addToBatchQueues(BatchQueue elem) {
+    if (this.batchQueues == null) {
+      this.batchQueues = new ArrayList<BatchQueue>();
+    }
+    this.batchQueues.add(elem);
+  }
+
+  public List<BatchQueue> getBatchQueues() {
+    return this.batchQueues;
+  }
+
+  public ComputeResourceDescription setBatchQueues(List<BatchQueue> batchQueues) {
+    this.batchQueues = batchQueues;
+    return this;
+  }
+
+  public void unsetBatchQueues() {
+    this.batchQueues = null;
+  }
+
+  /** Returns true if field batchQueues is set (has been assigned a value) and false otherwise */
+  public boolean isSetBatchQueues() {
+    return this.batchQueues != null;
+  }
+
+  public void setBatchQueuesIsSet(boolean value) {
+    if (!value) {
+      this.batchQueues = null;
+    }
+  }
+
+  public int getFileSystemsSize() {
+    return (this.fileSystems == null) ? 0 : this.fileSystems.size();
+  }
+
+  public void putToFileSystems(FileSystems key, String val) {
+    if (this.fileSystems == null) {
+      this.fileSystems = new HashMap<FileSystems,String>();
+    }
+    this.fileSystems.put(key, val);
+  }
+
+  public Map<FileSystems,String> getFileSystems() {
+    return this.fileSystems;
+  }
+
+  public ComputeResourceDescription setFileSystems(Map<FileSystems,String> fileSystems) {
+    this.fileSystems = fileSystems;
+    return this;
+  }
+
+  public void unsetFileSystems() {
+    this.fileSystems = null;
+  }
+
+  /** Returns true if field fileSystems is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileSystems() {
+    return this.fileSystems != null;
+  }
+
+  public void setFileSystemsIsSet(boolean value) {
+    if (!value) {
+      this.fileSystems = null;
+    }
+  }
+
+  public int getJobSubmissionInterfacesSize() {
+    return (this.jobSubmissionInterfaces == null) ? 0 : this.jobSubmissionInterfaces.size();
+  }
+
+  public java.util.Iterator<JobSubmissionInterface> getJobSubmissionInterfacesIterator() {
+    return (this.jobSubmissionInterfaces == null) ? null : this.jobSubmissionInterfaces.iterator();
+  }
+
+  public void addToJobSubmissionInterfaces(JobSubmissionInterface elem) {
+    if (this.jobSubmissionInterfaces == null) {
+      this.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>();
+    }
+    this.jobSubmissionInterfaces.add(elem);
+  }
+
+  public List<JobSubmissionInterface> getJobSubmissionInterfaces() {
+    return this.jobSubmissionInterfaces;
+  }
+
+  public ComputeResourceDescription setJobSubmissionInterfaces(List<JobSubmissionInterface> jobSubmissionInterfaces) {
+    this.jobSubmissionInterfaces = jobSubmissionInterfaces;
+    return this;
+  }
+
+  public void unsetJobSubmissionInterfaces() {
+    this.jobSubmissionInterfaces = null;
+  }
+
+  /** Returns true if field jobSubmissionInterfaces is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionInterfaces() {
+    return this.jobSubmissionInterfaces != null;
+  }
+
+  public void setJobSubmissionInterfacesIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionInterfaces = null;
+    }
+  }
+
+  public int getDataMovementInterfacesSize() {
+    return (this.dataMovementInterfaces == null) ? 0 : this.dataMovementInterfaces.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.data.movement.DataMovementInterface> getDataMovementInterfacesIterator() {
+    return (this.dataMovementInterfaces == null) ? null : this.dataMovementInterfaces.iterator();
+  }
+
+  public void addToDataMovementInterfaces(org.apache.airavata.model.data.movement.DataMovementInterface elem) {
+    if (this.dataMovementInterfaces == null) {
+      this.dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>();
+    }
+    this.dataMovementInterfaces.add(elem);
+  }
+
+  public List<org.apache.airavata.model.data.movement.DataMovementInterface> getDataMovementInterfaces() {
+    return this.dataMovementInterfaces;
+  }
+
+  public ComputeResourceDescription setDataMovementInterfaces(List<org.apache.airavata.model.data.movement.DataMovementInterface> dataMovementInterfaces) {
+    this.dataMovementInterfaces = dataMovementInterfaces;
+    return this;
+  }
+
+  public void unsetDataMovementInterfaces() {
+    this.dataMovementInterfaces = null;
+  }
+
+  /** Returns true if field dataMovementInterfaces is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementInterfaces() {
+    return this.dataMovementInterfaces != null;
+  }
+
+  public void setDataMovementInterfacesIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementInterfaces = null;
+    }
+  }
+
+  public int getMaxMemoryPerNode() {
+    return this.maxMemoryPerNode;
+  }
+
+  public ComputeResourceDescription setMaxMemoryPerNode(int maxMemoryPerNode) {
+    this.maxMemoryPerNode = maxMemoryPerNode;
+    setMaxMemoryPerNodeIsSet(true);
+    return this;
+  }
+
+  public void unsetMaxMemoryPerNode() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXMEMORYPERNODE_ISSET_ID);
+  }
+
+  /** Returns true if field maxMemoryPerNode is set (has been assigned a value) and false otherwise */
+  public boolean isSetMaxMemoryPerNode() {
+    return EncodingUtils.testBit(__isset_bitfield, __MAXMEMORYPERNODE_ISSET_ID);
+  }
+
+  public void setMaxMemoryPerNodeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXMEMORYPERNODE_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case COMPUTE_RESOURCE_ID:
+      if (value == null) {
+        unsetComputeResourceId();
+      } else {
+        setComputeResourceId((String)value);
+      }
+      break;
+
+    case HOST_NAME:
+      if (value == null) {
+        unsetHostName();
+      } else {
+        setHostName((String)value);
+      }
+      break;
+
+    case HOST_ALIASES:
+      if (value == null) {
+        unsetHostAliases();
+      } else {
+        setHostAliases((List<String>)value);
+      }
+      break;
+
+    case IP_ADDRESSES:
+      if (value == null) {
+        unsetIpAddresses();
+      } else {
+        setIpAddresses((List<String>)value);
+      }
+      break;
+
+    case RESOURCE_DESCRIPTION:
+      if (value == null) {
+        unsetResourceDescription();
+      } else {
+        setResourceDescription((String)value);
+      }
+      break;
+
+    case ENABLED:
+      if (value == null) {
+        unsetEnabled();
+      } else {
+        setEnabled((Boolean)value);
+      }
+      break;
+
+    case BATCH_QUEUES:
+      if (value == null) {
+        unsetBatchQueues();
+      } else {
+        setBatchQueues((List<BatchQueue>)value);
+      }
+      break;
+
+    case FILE_SYSTEMS:
+      if (value == null) {
+        unsetFileSystems();
+      } else {
+        setFileSystems((Map<FileSystems,String>)value);
+      }
+      break;
+
+    case JOB_SUBMISSION_INTERFACES:
+      if (value == null) {
+        unsetJobSubmissionInterfaces();
+      } else {
+        setJobSubmissionInterfaces((List<JobSubmissionInterface>)value);
+      }
+      break;
+
+    case DATA_MOVEMENT_INTERFACES:
+      if (value == null) {
+        unsetDataMovementInterfaces();
+      } else {
+        setDataMovementInterfaces((List<org.apache.airavata.model.data.movement.DataMovementInterface>)value);
+      }
+      break;
+
+    case MAX_MEMORY_PER_NODE:
+      if (value == null) {
+        unsetMaxMemoryPerNode();
+      } else {
+        setMaxMemoryPerNode((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case COMPUTE_RESOURCE_ID:
+      return getComputeResourceId();
+
+    case HOST_NAME:
+      return getHostName();
+
+    case HOST_ALIASES:
+      return getHostAliases();
+
+    case IP_ADDRESSES:
+      return getIpAddresses();
+
+    case RESOURCE_DESCRIPTION:
+      return getResourceDescription();
+
+    case ENABLED:
+      return Boolean.valueOf(isEnabled());
+
+    case BATCH_QUEUES:
+      return getBatchQueues();
+
+    case FILE_SYSTEMS:
+      return getFileSystems();
+
+    case JOB_SUBMISSION_INTERFACES:
+      return getJobSubmissionInterfaces();
+
+    case DATA_MOVEMENT_INTERFACES:
+      return getDataMovementInterfaces();
+
+    case MAX_MEMORY_PER_NODE:
+      return Integer.valueOf(getMaxMemoryPerNode());
+
+    }
+    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 COMPUTE_RESOURCE_ID:
+      return isSetComputeResourceId();
+    case HOST_NAME:
+      return isSetHostName();
+    case HOST_ALIASES:
+      return isSetHostAliases();
+    case IP_ADDRESSES:
+      return isSetIpAddresses();
+    case RESOURCE_DESCRIPTION:
+      return isSetResourceDescription();
+    case ENABLED:
+      return isSetEnabled();
+    case BATCH_QUEUES:
+      return isSetBatchQueues();
+    case FILE_SYSTEMS:
+      return isSetFileSystems();
+    case JOB_SUBMISSION_INTERFACES:
+      return isSetJobSubmissionInterfaces();
+    case DATA_MOVEMENT_INTERFACES:
+      return isSetDataMovementInterfaces();
+    case MAX_MEMORY_PER_NODE:
+      return isSetMaxMemoryPerNode();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ComputeResourceDescription)
+      return this.equals((ComputeResourceDescription)that);
+    return false;
+  }
+
+  public boolean equals(ComputeResourceDescription that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
+    boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
+    if (this_present_computeResourceId || that_present_computeResourceId) {
+      if (!(this_present_computeResourceId && that_present_computeResourceId))
+        return false;
+      if (!this.computeResourceId.equals(that.computeResourceId))
+        return false;
+    }
+
+    boolean this_present_hostName = true && this.isSetHostName();
+    boolean that_present_hostName = true && that.isSetHostName();
+    if (this_present_hostName || that_present_hostName) {
+      if (!(this_present_hostName && that_present_hostName))
+        return false;
+      if (!this.hostName.equals(that.hostName))
+        return false;
+    }
+
+    boolean this_present_hostAliases = true && this.isSetHostAliases();
+    boolean that_present_hostAliases = true && that.isSetHostAliases();
+    if (this_present_hostAliases || that_present_hostAliases) {
+      if (!(this_present_hostAliases && that_present_hostAliases))
+        return false;
+      if (!this.hostAliases.equals(that.hostAliases))
+        return false;
+    }
+
+    boolean this_present_ipAddresses = true && this.isSetIpAddresses();
+    boolean that_present_ipAddresses = true && that.isSetIpAddresses();
+    if (this_present_ipAddresses || that_present_ipAddresses) {
+      if (!(this_present_ipAddresses && that_present_ipAddresses))
+        return false;
+      if (!this.ipAddresses.equals(that.ipAddresses))
+        return false;
+    }
+
+    boolean this_present_resourceDescription = true && this.isSetResourceDescription();
+    boolean that_present_resourceDescription = true && that.isSetResourceDescription();
+    if (this_present_resourceDescription || that_present_resourceDescription) {
+      if (!(this_present_resourceDescription && that_present_resourceDescription))
+        return false;
+      if (!this.resourceDescription.equals(that.resourceDescription))
+        return false;
+    }
+
+    boolean this_present_enabled = true && this.isSetEnabled();
+    boolean that_present_enabled = true && that.isSetEnabled();
+    if (this_present_enabled || that_present_enabled) {
+      if (!(this_present_enabled && that_present_enabled))
+        return false;
+      if (this.enabled != that.enabled)
+        return false;
+    }
+
+    boolean this_present_batchQueues = true && this.isSetBatchQueues();
+    boolean that_present_batchQueues = true && that.isSetBatchQueues();
+    if (this_present_batchQueues || that_present_batchQueues) {
+      if (!(this_present_batchQueues && that_present_batchQueues))
+        return false;
+      if (!this.batchQueues.equals(that.batchQueues))
+        return false;
+    }
+
+    boolean this_present_fileSystems = true && this.isSetFileSystems();
+    boolean that_present_fileSystems = true && that.isSetFileSystems();
+    if (this_present_fileSystems || that_present_fileSystems) {
+      if (!(this_present_fileSystems && that_present_fileSystems))
+        return false;
+      if (!this.fileSystems.equals(that.fileSystems))
+        return false;
+    }
+
+    boolean this_present_jobSubmissionInterfaces = true && this.isSetJobSubmissionInterfaces();
+    boolean that_present_jobSubmissionInterfaces = true && that.isSetJobSubmissionInterfaces();
+    if (this_present_jobSubmissionInterfaces || that_present_jobSubmissionInterfaces) {
+      if (!(this_present_jobSubmissionInterfaces && that_present_jobSubmissionInterfaces))
+        return false;
+      if (!this.jobSubmissionInterfaces.equals(that.jobSubmissionInterfaces))
+        return false;
+    }
+
+    boolean this_present_dataMovementInterfaces = true && this.isSetDataMovementInterfaces();
+    boolean that_present_dataMovementInterfaces = true && that.isSetDataMovementInterfaces();
+    if (this_present_dataMovementInterfaces || that_present_dataMovementInterfaces) {
+      if (!(this_present_dataMovementInterfaces && that_present_dataMovementInterfaces))
+        return false;
+      if (!this.dataMovementInterfaces.equals(that.dataMovementInterfaces))
+        return false;
+    }
+
+    boolean this_present_maxMemoryPerNode = true && this.isSetMaxMemoryPerNode();
+    boolean that_present_maxMemoryPerNode = true && that.isSetMaxMemoryPerNode();
+    if (this_present_maxMemoryPerNode || that_present_maxMemoryPerNode) {
+      if (!(this_present_maxMemoryPerNode && that_present_maxMemoryPerNode))
+        return false;
+      if (this.maxMemoryPerNode != that.maxMemoryPerNode)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_computeResourceId = true && (isSetComputeResourceId());
+    list.add(present_computeResourceId);
+    if (present_computeResourceId)
+      list.add(computeResourceId);
+
+    boolean present_hostName = true && (isSetHostName());
+    list.add(present_hostName);
+    if (present_hostName)
+      list.add(hostName);
+
+    boolean present_hostAliases = true && (isSetHostAliases());
+    list.add(present_hostAliases);
+    if (present_hostAliases)
+      list.add(hostAliases);
+
+    boolean present_ipAddresses = true && (isSetIpAddresses());
+    list.add(present_ipAddresses);
+    if (present_ipAddresses)
+      list.add(ipAddresses);
+
+    boolean present_resourceDescription = true && (isSetResourceDescription());
+    list.add(present_resourceDescription);
+    if (present_resourceDescription)
+      list.add(resourceDescription);
+
+    boolean present_enabled = true && (isSetEnabled());
+    list.add(present_enabled);
+    if (present_enabled)
+      list.add(enabled);
+
+    boolean present_batchQueues = true && (isSetBatchQueues());
+    list.add(present_batchQueues);
+    if (present_batchQueues)
+      list.add(batchQueues);
+
+    boolean present_fileSystems = true && (isSetFileSystems());
+    list.add(present_fileSystems);
+    if (present_fileSystems)
+      list.add(fileSystems);
+
+    boolean present_jobSubmissionInterfaces = true && (isSetJobSubmissionInterfaces());
+    list.add(present_jobSubmissionInterfaces);
+    if (present_jobSubmissionInterfaces)
+      list.add(jobSubmissionInterfaces);
+
+    boolean present_dataMovementInterfaces = true && (isSetDataMovementInterfaces());
+    list.add(present_dataMovementInterfaces);
+    if (present_dataMovementInterfaces)
+      list.add(dataMovementInterfaces);
+
+    boolean present_maxMemoryPerNode = true && (isSetMaxMemoryPerNode());
+    list.add(present_maxMemoryPerNode);
+    if (present_maxMemoryPerNode)
+      list.add(maxMemoryPerNode);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ComputeResourceDescription other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetComputeResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetHostName()).compareTo(other.isSetHostName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetHostName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hostName, other.hostName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetHostAliases()).compareTo(other.isSetHostAliases());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetHostAliases()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.hostAliases, other.hostAliases);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetIpAddresses()).compareTo(other.isSetIpAddresses());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIpAddresses()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ipAddresses, other.ipAddresses);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceDescription()).compareTo(other.isSetResourceDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceDescription, other.resourceDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetEnabled()).compareTo(other.isSetEnabled());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEnabled()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enabled, other.enabled);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetBatchQueues()).compareTo(other.isSetBatchQueues());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetBatchQueues()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.batchQueues, other.batchQueues);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileSystems()).compareTo(other.isSetFileSystems());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileSystems()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileSystems, other.fileSystems);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobSubmissionInterfaces()).compareTo(other.isSetJobSubmissionInterfaces());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionInterfaces()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionInterfaces, other.jobSubmissionInterfaces);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataMovementInterfaces()).compareTo(other.isSetDataMovementInterfaces());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementInterfaces()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementInterfaces, other.dataMovementInterfaces);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMaxMemoryPerNode()).compareTo(other.isSetMaxMemoryPerNode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMaxMemoryPerNode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxMemoryPerNode, other.maxMemoryPerNode);
+      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("ComputeResourceDescription(");
+    boolean first = true;
+
+    sb.append("computeResourceId:");
+    if (this.computeResourceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.computeResourceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("hostName:");
+    if (this.hostName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.hostName);
+    }
+    first = false;
+    if (isSetHostAliases()) {
+      if (!first) sb.append(", ");
+      sb.append("hostAliases:");
+      if (this.hostAliases == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.hostAliases);
+      }
+      first = false;
+    }
+    if (isSetIpAddresses()) {
+      if (!first) sb.append(", ");
+      sb.append("ipAddresses:");
+      if (this.ipAddresses == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ipAddresses);
+      }
+      first = false;
+    }
+    if (isSetResourceDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceDescription:");
+      if (this.resourceDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceDescription);
+      }
+      first = false;
+    }
+    if (isSetEnabled()) {
+      if (!first) sb.append(", ");
+      sb.append("enabled:");
+      sb.append(this.enabled);
+      first = false;
+    }
+    if (isSetBatchQueues()) {
+      if (!first) sb.append(", ");
+      sb.append("batchQueues:");
+      if (this.batchQueues == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.batchQueues);
+      }
+      first = false;
+    }
+    if (isSetFileSystems()) {
+      if (!first) sb.append(", ");
+      sb.append("fileSystems:");
+      if (this.fileSystems == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileSystems);
+      }
+      first = false;
+    }
+    if (isSetJobSubmissionInterfaces()) {
+      if (!first) sb.append(", ");
+      sb.append("jobSubmissionInterfaces:");
+      if (this.jobSubmissionInterfaces == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.jobSubmissionInterfaces);
+      }
+      first = false;
+    }
+    if (isSetDataMovementInterfaces()) {
+      if (!first) sb.append(", ");
+      sb.append("dataMovementInterfaces:");
+      if (this.dataMovementInterfaces == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.dataMovementInterfaces);
+      }
+      first = false;
+    }
+    if (isSetMaxMemoryPerNode()) {
+      if (!first) sb.append(", ");
+      sb.append("maxMemoryPerNode:");
+      sb.append(this.maxMemoryPerNode);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (computeResourceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceId' was not present! Struct: " + toString());
+    }
+    if (hostName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'hostName' was not present! 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 ComputeResourceDescriptionStandardSchemeFactory implements SchemeFactory {
+    public ComputeResourceDescriptionStandardScheme getScheme() {
+      return new ComputeResourceDescriptionStandardScheme();
+    }
+  }
+
+  private static class ComputeResourceDescriptionStandardScheme extends StandardScheme<ComputeResourceDescription> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ComputeResourceDescription 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: // COMPUTE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.computeResourceId = iprot.readString();
+              struct.setComputeResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // HOST_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.hostName = iprot.readString();
+              struct.setHostNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // HOST_ALIASES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list26 = iprot.readListBegin();
+                struct.hostAliases = new ArrayList<String>(_list26.size);
+                String _elem27;
+                for (int _i28 = 0; _i28 < _list26.size; ++_i28)
+                {
+                  _elem27 = iprot.readString();
+                  struct.hostAliases.add(_elem27);
+                }
+                iprot.readListEnd();
+              }
+              struct.setHostAliasesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // IP_ADDRESSES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list29 = iprot.readListBegin();
+                struct.ipAddresses = new ArrayList<String>(_list29.size);
+                String _elem30;
+                for (int _i31 = 0; _i31 < _list29.size; ++_i31)
+                {
+                  _elem30 = iprot.readString();
+                  struct.ipAddresses.add(_elem30);
+                }
+                iprot.readListEnd();
+              }
+              struct.setIpAddressesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // RESOURCE_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceDescription = iprot.readString();
+              struct.setResourceDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // ENABLED
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.enabled = iprot.readBool();
+              struct.setEnabledIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // BATCH_QUEUES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list32 = iprot.readListBegin();
+                struct.batchQueues = new ArrayList<BatchQueue>(_list32.size);
+                BatchQueue _elem33;
+                for (int _i34 = 0; _i34 < _list32.size; ++_i34)
+                {
+                  _elem33 = new BatchQueue();
+                  _elem33.read(iprot);
+                  struct.batchQueues.add(_elem33);
+                }
+                iprot.readListEnd();
+              }
+              struct.setBatchQueuesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // FILE_SYSTEMS
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map35 = iprot.readMapBegin();
+                struct.fileSystems = new HashMap<FileSystems,String>(2*_map35.size);
+                FileSystems _key36;
+                String _val37;
+                for (int _i38 = 0; _i38 < _map35.size; ++_i38)
+                {
+                  _key36 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
+                  _val37 = iprot.readString();
+                  struct.fileSystems.put(_key36, _val37);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setFileSystemsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // JOB_SUBMISSION_INTERFACES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list39 = iprot.readListBegin();
+                struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list39.size);
+                JobSubmissionInterface _elem40;
+                for (int _i41 = 0; _i41 < _list39.size; ++_i41)
+                {
+                  _elem40 = new JobSubmissionInterface();
+                  _elem40.read(iprot);
+                  struct.jobSubmissionInterfaces.add(_elem40);
+                }
+                iprot.readListEnd();
+              }
+              struct.setJobSubmissionInterfacesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // DATA_MOVEMENT_INTERFACES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list42 = iprot.readListBegin();
+                struct.dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>(_list42.size);
+                org.apache.airavata.model.data.movement.DataMovementInterface _elem43;
+                for (int _i44 = 0; _i44 < _list42.size; ++_i44)
+                {
+                  _elem43 = new org.apache.airavata.model.data.movement.DataMovementInterface();
+                  _elem43.read(iprot);
+                  struct.dataMovementInterfaces.add(_elem43);
+                }
+                iprot.readListEnd();
+              }
+              struct.setDataMovementInterfacesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // MAX_MEMORY_PER_NODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.maxMemoryPerNode = iprot.readI32();
+              struct.setMaxMemoryPerNodeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ComputeResourceDescription struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.computeResourceId != null) {
+        oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
+        oprot.writeString(struct.computeResourceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.hostName != null) {
+        oprot.writeFieldBegin(HOST_NAME_FIELD_DESC);
+        oprot.writeString(struct.hostName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.hostAliases != null) {
+        if (struct.isSetHostAliases()) {
+          oprot.writeFieldBegin(HOST_ALIASES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.hostAliases.size()));
+            for (String _iter45 : struct.hostAliases)
+            {
+              oprot.writeString(_iter45);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.ipAddresses != null) {
+        if (struct.isSetIpAddresses()) {
+          oprot.writeFieldBegin(IP_ADDRESSES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.ipAddresses.size()));
+            for (String _iter46 : struct.ipAddresses)
+            {
+              oprot.writeString(_iter46);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceDescription != null) {
+        if (struct.isSetResourceDescription()) {
+          oprot.writeFieldBegin(RESOURCE_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.resourceDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetEnabled()) {
+        oprot.writeFieldBegin(ENABLED_FIELD_DESC);
+        oprot.writeBool(struct.enabled);
+        oprot.writeFieldEnd();
+      }
+      if (struct.batchQueues != null) {
+        if (struct.isSetBatchQueues()) {
+          oprot.writeFieldBegin(BATCH_QUEUES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.batchQueues.size()));
+            for (BatchQueue _iter47 : struct.batchQueues)
+            {
+              _iter47.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.fileSystems != null) {
+        if (struct.isSetFileSystems()) {
+          oprot.writeFieldBegin(FILE_SYSTEMS_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, struct.fileSystems.size()));
+            for (Map.Entry<FileSystems, String> _iter48 : struct.fileSystems.entrySet())
+            {
+              oprot.writeI32(_iter48.getKey().getValue());
+              oprot.writeString(_iter48.getValue());
+            }
+            oprot.writeMapEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.jobSubmissionInterfaces != null) {
+        if (struct.isSetJobSubmissionInterfaces()) {
+          oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.jobSubmissionInterfaces.size()));
+            for (JobSubmissionInterface _iter49 : struct.jobSubmissionInterfaces)
+            {
+              _iter49.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.dataMovementInterfaces != null) {
+        if (struct.isSetDataMovementInterfaces()) {
+          oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.dataMovementInterfaces.size()));
+            for (org.apache.airavata.model.data.movement.DataMovementInterface _iter50 : struct.dataMovementInterfaces)
+            {
+              _iter50.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetMaxMemoryPerNode()) {
+        oprot.writeFieldBegin(MAX_MEMORY_PER_NODE_FIELD_DESC);
+        oprot.writeI32(struct.maxMemoryPerNode);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ComputeResourceDescriptionTupleSchemeFactory implements SchemeFactory {
+    public ComputeResourceDescriptionTupleScheme getScheme() {
+      return new ComputeResourceDescriptionTupleScheme();
+    }
+  }
+
+  private static class ComputeResourceDescriptionTupleScheme extends TupleScheme<ComputeResourceDescription> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ComputeResourceDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.computeResourceId);
+      oprot.writeString(struct.hostName);
+      BitSet optionals = new BitSet();
+      if (struct.isSetHostAliases()) {
+        optionals.set(0);
+      }
+      if (struct.isSetIpAddresses()) {
+        optionals.set(1);
+      }
+      if (struct.isSetResourceDescription()) {
+        optionals.set(2);
+      }
+      if (struct.isSetEnabled()) {
+        optionals.set(3);
+      }
+      if (struct.isSetBatchQueues()) {
+        optionals.set(4);
+      }
+      if (struct.isSetFileSystems()) {
+        optionals.set(5);
+      }
+      if (struct.isSetJobSubmissionInterfaces()) {
+        optionals.set(6);
+      }
+      if (struct.isSetDataMovementInterfaces()) {
+        optionals.set(7);
+      }
+      if (struct.isSetMaxMemoryPerNode()) {
+        optionals.set(8);
+      }
+      oprot.writeBitSet(optionals, 9);
+      if (struct.isSetHostAliases()) {
+        {
+          oprot.writeI32(struct.hostAliases.size());
+          for (String _iter51 : struct.hostAliases)
+          {
+            oprot.writeString(_iter51);
+          }
+        }
+      }
+      if (struct.isSetIpAddresses()) {
+        {
+          oprot.writeI32(struct.ipAddresses.size());
+          for (String _iter52 : struct.ipAddresses)
+          {
+            oprot.writeString(_iter52);
+          }
+        }
+      }
+      if (struct.isSetResourceDescription()) {
+        oprot.writeString(struct.resourceDescription);
+      }
+      if (struct.isSetEnabled()) {
+        oprot.writeBool(struct.enabled);
+      }
+      if (struct.isSetBatchQueues()) {
+        {
+          oprot.writeI32(struct.batchQueues.size());
+          for (BatchQueue _iter53 : struct.batchQueues)
+          {
+            _iter53.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetFileSystems()) {
+        {
+          oprot.writeI32(struct.fileSystems.size());
+          for (Map.Entry<FileSystems, String> _iter54 : struct.fileSystems.entrySet())
+          {
+            oprot.writeI32(_iter54.getKey().getValue());
+            oprot.writeString(_iter54.getValue());
+          }
+        }
+      }
+      if (struct.isSetJobSubmissionInterfaces()) {
+        {
+          oprot.writeI32(struct.jobSubmissionInterfaces.size());
+          for (JobSubmissionInterface _iter55 : struct.jobSubmissionInterfaces)
+          {
+            _iter55.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetDataMovementInterfaces()) {
+        {
+          oprot.writeI32(struct.dataMovementInterfaces.size());
+          for (org.apache.airavata.model.data.movement.DataMovementInterface _iter56 : struct.dataMovementInterfaces)
+          {
+            _iter56.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetMaxMemoryPerNode()) {
+        oprot.writeI32(struct.maxMemoryPerNode);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ComputeResourceDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.computeResourceId = iprot.readString();
+      struct.setComputeResourceIdIsSet(true);
+      struct.hostName = iprot.readString();
+      struct.setHostNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(9);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TList _list57 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.hostAliases = new ArrayList<String>(_list57.size);
+          String _elem58;
+          for (int _i59 = 0; _i59 < _list57.size; ++_i59)
+          {
+            _elem58 = iprot.readString();
+            struct.hostAliases.add(_elem58);
+          }
+        }
+        struct.setHostAliasesIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TList _list60 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.ipAddresses = new ArrayList<String>(_list60.size);
+          String _elem61;
+          for (int _i62 = 0; _i62 < _list60.size; ++_i62)
+          {
+            _elem61 = iprot.readString();
+            struct.ipAddresses.add(_elem61);
+          }
+        }
+        struct.setIpAddressesIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.resourceDescription = iprot.readString();
+        struct.setResourceDescriptionIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.enabled = iprot.readBool();
+        struct.setEnabledIsSet(true);
+      }
+      if (incoming.get(4)) {
+        {
+          org.apache.thrift.protocol.TList _list63 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.batchQueues = new ArrayList<BatchQueue>(_list63.size);
+          BatchQueue _elem64;
+          for (int _i65 = 0; _i65 < _list63.size; ++_i65)
+          {
+            _elem64 = new BatchQueue();
+            _elem64.read(iprot);
+            struct.batchQueues.add(_elem64);
+          }
+        }
+        struct.setBatchQueuesIsSet(true);
+      }
+      if (incoming.get(5)) {
+        {
+          org.apache.thrift.protocol.TMap _map66 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.I32, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.fileSystems = new HashMap<FileSystems,String>(2*_map66.size);
+          FileSystems _key67;
+          String _val68;
+          for (int _i69 = 0; _i69 < _map66.size; ++_i69)
+          {
+            _key67 = org.apache.airavata.model.appcatalog.computeresource.FileSystems.findByValue(iprot.readI32());
+            _val68 = iprot.readString();
+            struct.fileSystems.put(_key67, _val68);
+          }
+        }
+        struct.setFileSystemsIsSet(true);
+      }
+      if (incoming.get(6)) {
+        {
+          org.apache.thrift.protocol.TList _list70 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.jobSubmissionInterfaces = new ArrayList<JobSubmissionInterface>(_list70.size);
+          JobSubmissionInterface _elem71;
+          for (int _i72 = 0; _i72 < _list70.size; ++_i72)
+          {
+            _elem71 = new JobSubmissionInterface();
+            _elem71.read(iprot);
+            struct.jobSubmissionInterfaces.add(_elem71);
+          }
+        }
+        struct.setJobSubmissionInterfacesIsSet(true);
+      }
+      if (incoming.get(7)) {
+        {
+          org.apache.thrift.protocol.TList _list73 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.dataMovementInterfaces = new ArrayList<org.apache.airavata.model.data.movement.DataMovementInterface>(_list73.size);
+          org.apache.airavata.model.data.movement.DataMovementInterface _elem74;
+          for (int _i75 = 0; _i75 < _list73.size; ++_i75)
+          {
+            _elem74 = new org.apache.airavata.model.data.movement.DataMovementInterface();
+            _elem74.read(iprot);
+            struct.dataMovementInterfaces.add(_elem74);
+          }
+        }
+        struct.setDataMovementInterfacesIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.maxMemoryPerNode = iprot.readI32();
+        struct.setMaxMemoryPerNodeIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java
new file mode 100644
index 0000000..08f9149
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java
@@ -0,0 +1,87 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of File Systems on the resource
+ * 
+ * FORK:
+ *  Forking of commands without any job manager
+ * 
+ * PBS:
+ *  Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
+ * 
+ * UGE:
+ *  Univa Grid Engine, a variation of PBS implementation.
+ * 
+ * SLURM:
+ *  The Simple Linux Utility for Resource Management is a open source workload manager.
+ * 
+ */
+public enum FileSystems implements org.apache.thrift.TEnum {
+  HOME(0),
+  WORK(1),
+  LOCALTMP(2),
+  SCRATCH(3),
+  ARCHIVE(4);
+
+  private final int value;
+
+  private FileSystems(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 FileSystems findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return HOME;
+      case 1:
+        return WORK;
+      case 2:
+        return LOCALTMP;
+      case 3:
+        return SCRATCH;
+      case 4:
+        return ARCHIVE;
+      default:
+        return null;
+    }
+  }
+}


[08/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferStatus.java
deleted file mode 100644
index d1f8aa9..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferStatus.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.transfer;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum FileTransferStatus implements org.apache.thrift.TEnum {
-  CREATED(0),
-  QUEUED(1),
-  RUNNING(2),
-  COMPLETED(3),
-  FAILED(4);
-
-  private final int value;
-
-  private FileTransferStatus(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 FileTransferStatus findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return CREATED;
-      case 1:
-        return QUEUED;
-      case 2:
-        return RUNNING;
-      case 3:
-        return COMPLETED;
-      case 4:
-        return FAILED;
-      default:
-        return null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/LSEntryModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/LSEntryModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/LSEntryModel.java
deleted file mode 100644
index b5ff66e..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/LSEntryModel.java
+++ /dev/null
@@ -1,1147 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.transfer;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
-public class LSEntryModel implements org.apache.thrift.TBase<LSEntryModel, LSEntryModel._Fields>, java.io.Serializable, Cloneable, Comparable<LSEntryModel> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LSEntryModel");
-
-  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)1);
-  private static final org.apache.thrift.protocol.TField SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("size", org.apache.thrift.protocol.TType.I64, (short)2);
-  private static final org.apache.thrift.protocol.TField NATIVE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("nativeType", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("path", org.apache.thrift.protocol.TType.STRING, (short)5);
-  private static final org.apache.thrift.protocol.TField STORAGE_HOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("storageHostName", org.apache.thrift.protocol.TType.STRING, (short)6);
-  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedType", org.apache.thrift.protocol.TType.I64, (short)7);
-  private static final org.apache.thrift.protocol.TField CREATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("createdTime", org.apache.thrift.protocol.TType.I64, (short)8);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new LSEntryModelStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new LSEntryModelTupleSchemeFactory());
-  }
-
-  private LSEntryType type; // optional
-  private long size; // optional
-  private String nativeType; // optional
-  private String name; // optional
-  private String path; // optional
-  private String storageHostName; // optional
-  private long lastModifiedType; // optional
-  private long createdTime; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    /**
-     * 
-     * @see LSEntryType
-     */
-    TYPE((short)1, "type"),
-    SIZE((short)2, "size"),
-    NATIVE_TYPE((short)3, "nativeType"),
-    NAME((short)4, "name"),
-    PATH((short)5, "path"),
-    STORAGE_HOST_NAME((short)6, "storageHostName"),
-    LAST_MODIFIED_TYPE((short)7, "lastModifiedType"),
-    CREATED_TIME((short)8, "createdTime");
-
-    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: // TYPE
-          return TYPE;
-        case 2: // SIZE
-          return SIZE;
-        case 3: // NATIVE_TYPE
-          return NATIVE_TYPE;
-        case 4: // NAME
-          return NAME;
-        case 5: // PATH
-          return PATH;
-        case 6: // STORAGE_HOST_NAME
-          return STORAGE_HOST_NAME;
-        case 7: // LAST_MODIFIED_TYPE
-          return LAST_MODIFIED_TYPE;
-        case 8: // CREATED_TIME
-          return CREATED_TIME;
-        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 __SIZE_ISSET_ID = 0;
-  private static final int __LASTMODIFIEDTYPE_ISSET_ID = 1;
-  private static final int __CREATEDTIME_ISSET_ID = 2;
-  private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.TYPE,_Fields.SIZE,_Fields.NATIVE_TYPE,_Fields.NAME,_Fields.PATH,_Fields.STORAGE_HOST_NAME,_Fields.LAST_MODIFIED_TYPE,_Fields.CREATED_TIME};
-  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.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, LSEntryType.class)));
-    tmpMap.put(_Fields.SIZE, new org.apache.thrift.meta_data.FieldMetaData("size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.NATIVE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("nativeType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PATH, new org.apache.thrift.meta_data.FieldMetaData("path", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.STORAGE_HOST_NAME, new org.apache.thrift.meta_data.FieldMetaData("storageHostName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.LAST_MODIFIED_TYPE, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.CREATED_TIME, new org.apache.thrift.meta_data.FieldMetaData("createdTime", 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(LSEntryModel.class, metaDataMap);
-  }
-
-  public LSEntryModel() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public LSEntryModel(LSEntryModel other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetType()) {
-      this.type = other.type;
-    }
-    this.size = other.size;
-    if (other.isSetNativeType()) {
-      this.nativeType = other.nativeType;
-    }
-    if (other.isSetName()) {
-      this.name = other.name;
-    }
-    if (other.isSetPath()) {
-      this.path = other.path;
-    }
-    if (other.isSetStorageHostName()) {
-      this.storageHostName = other.storageHostName;
-    }
-    this.lastModifiedType = other.lastModifiedType;
-    this.createdTime = other.createdTime;
-  }
-
-  public LSEntryModel deepCopy() {
-    return new LSEntryModel(this);
-  }
-
-  @Override
-  public void clear() {
-    this.type = null;
-    setSizeIsSet(false);
-    this.size = 0;
-    this.nativeType = null;
-    this.name = null;
-    this.path = null;
-    this.storageHostName = null;
-    setLastModifiedTypeIsSet(false);
-    this.lastModifiedType = 0;
-    setCreatedTimeIsSet(false);
-    this.createdTime = 0;
-  }
-
-  /**
-   * 
-   * @see LSEntryType
-   */
-  public LSEntryType getType() {
-    return this.type;
-  }
-
-  /**
-   * 
-   * @see LSEntryType
-   */
-  public void setType(LSEntryType 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 long getSize() {
-    return this.size;
-  }
-
-  public void setSize(long size) {
-    this.size = size;
-    setSizeIsSet(true);
-  }
-
-  public void unsetSize() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SIZE_ISSET_ID);
-  }
-
-  /** Returns true if field size is set (has been assigned a value) and false otherwise */
-  public boolean isSetSize() {
-    return EncodingUtils.testBit(__isset_bitfield, __SIZE_ISSET_ID);
-  }
-
-  public void setSizeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SIZE_ISSET_ID, value);
-  }
-
-  public String getNativeType() {
-    return this.nativeType;
-  }
-
-  public void setNativeType(String nativeType) {
-    this.nativeType = nativeType;
-  }
-
-  public void unsetNativeType() {
-    this.nativeType = null;
-  }
-
-  /** Returns true if field nativeType is set (has been assigned a value) and false otherwise */
-  public boolean isSetNativeType() {
-    return this.nativeType != null;
-  }
-
-  public void setNativeTypeIsSet(boolean value) {
-    if (!value) {
-      this.nativeType = null;
-    }
-  }
-
-  public String getName() {
-    return this.name;
-  }
-
-  public void setName(String name) {
-    this.name = name;
-  }
-
-  public void unsetName() {
-    this.name = null;
-  }
-
-  /** Returns true if field name is set (has been assigned a value) and false otherwise */
-  public boolean isSetName() {
-    return this.name != null;
-  }
-
-  public void setNameIsSet(boolean value) {
-    if (!value) {
-      this.name = null;
-    }
-  }
-
-  public String getPath() {
-    return this.path;
-  }
-
-  public void setPath(String path) {
-    this.path = path;
-  }
-
-  public void unsetPath() {
-    this.path = null;
-  }
-
-  /** Returns true if field path is set (has been assigned a value) and false otherwise */
-  public boolean isSetPath() {
-    return this.path != null;
-  }
-
-  public void setPathIsSet(boolean value) {
-    if (!value) {
-      this.path = null;
-    }
-  }
-
-  public String getStorageHostName() {
-    return this.storageHostName;
-  }
-
-  public void setStorageHostName(String storageHostName) {
-    this.storageHostName = storageHostName;
-  }
-
-  public void unsetStorageHostName() {
-    this.storageHostName = null;
-  }
-
-  /** Returns true if field storageHostName is set (has been assigned a value) and false otherwise */
-  public boolean isSetStorageHostName() {
-    return this.storageHostName != null;
-  }
-
-  public void setStorageHostNameIsSet(boolean value) {
-    if (!value) {
-      this.storageHostName = null;
-    }
-  }
-
-  public long getLastModifiedType() {
-    return this.lastModifiedType;
-  }
-
-  public void setLastModifiedType(long lastModifiedType) {
-    this.lastModifiedType = lastModifiedType;
-    setLastModifiedTypeIsSet(true);
-  }
-
-  public void unsetLastModifiedType() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID);
-  }
-
-  /** Returns true if field lastModifiedType is set (has been assigned a value) and false otherwise */
-  public boolean isSetLastModifiedType() {
-    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID);
-  }
-
-  public void setLastModifiedTypeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID, value);
-  }
-
-  public long getCreatedTime() {
-    return this.createdTime;
-  }
-
-  public void setCreatedTime(long createdTime) {
-    this.createdTime = createdTime;
-    setCreatedTimeIsSet(true);
-  }
-
-  public void unsetCreatedTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
-  }
-
-  /** Returns true if field createdTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetCreatedTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
-  }
-
-  public void setCreatedTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATEDTIME_ISSET_ID, value);
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case TYPE:
-      if (value == null) {
-        unsetType();
-      } else {
-        setType((LSEntryType)value);
-      }
-      break;
-
-    case SIZE:
-      if (value == null) {
-        unsetSize();
-      } else {
-        setSize((Long)value);
-      }
-      break;
-
-    case NATIVE_TYPE:
-      if (value == null) {
-        unsetNativeType();
-      } else {
-        setNativeType((String)value);
-      }
-      break;
-
-    case NAME:
-      if (value == null) {
-        unsetName();
-      } else {
-        setName((String)value);
-      }
-      break;
-
-    case PATH:
-      if (value == null) {
-        unsetPath();
-      } else {
-        setPath((String)value);
-      }
-      break;
-
-    case STORAGE_HOST_NAME:
-      if (value == null) {
-        unsetStorageHostName();
-      } else {
-        setStorageHostName((String)value);
-      }
-      break;
-
-    case LAST_MODIFIED_TYPE:
-      if (value == null) {
-        unsetLastModifiedType();
-      } else {
-        setLastModifiedType((Long)value);
-      }
-      break;
-
-    case CREATED_TIME:
-      if (value == null) {
-        unsetCreatedTime();
-      } else {
-        setCreatedTime((Long)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case TYPE:
-      return getType();
-
-    case SIZE:
-      return getSize();
-
-    case NATIVE_TYPE:
-      return getNativeType();
-
-    case NAME:
-      return getName();
-
-    case PATH:
-      return getPath();
-
-    case STORAGE_HOST_NAME:
-      return getStorageHostName();
-
-    case LAST_MODIFIED_TYPE:
-      return getLastModifiedType();
-
-    case CREATED_TIME:
-      return getCreatedTime();
-
-    }
-    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 TYPE:
-      return isSetType();
-    case SIZE:
-      return isSetSize();
-    case NATIVE_TYPE:
-      return isSetNativeType();
-    case NAME:
-      return isSetName();
-    case PATH:
-      return isSetPath();
-    case STORAGE_HOST_NAME:
-      return isSetStorageHostName();
-    case LAST_MODIFIED_TYPE:
-      return isSetLastModifiedType();
-    case CREATED_TIME:
-      return isSetCreatedTime();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof LSEntryModel)
-      return this.equals((LSEntryModel)that);
-    return false;
-  }
-
-  public boolean equals(LSEntryModel that) {
-    if (that == null)
-      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_size = true && this.isSetSize();
-    boolean that_present_size = true && that.isSetSize();
-    if (this_present_size || that_present_size) {
-      if (!(this_present_size && that_present_size))
-        return false;
-      if (this.size != that.size)
-        return false;
-    }
-
-    boolean this_present_nativeType = true && this.isSetNativeType();
-    boolean that_present_nativeType = true && that.isSetNativeType();
-    if (this_present_nativeType || that_present_nativeType) {
-      if (!(this_present_nativeType && that_present_nativeType))
-        return false;
-      if (!this.nativeType.equals(that.nativeType))
-        return false;
-    }
-
-    boolean this_present_name = true && this.isSetName();
-    boolean that_present_name = true && that.isSetName();
-    if (this_present_name || that_present_name) {
-      if (!(this_present_name && that_present_name))
-        return false;
-      if (!this.name.equals(that.name))
-        return false;
-    }
-
-    boolean this_present_path = true && this.isSetPath();
-    boolean that_present_path = true && that.isSetPath();
-    if (this_present_path || that_present_path) {
-      if (!(this_present_path && that_present_path))
-        return false;
-      if (!this.path.equals(that.path))
-        return false;
-    }
-
-    boolean this_present_storageHostName = true && this.isSetStorageHostName();
-    boolean that_present_storageHostName = true && that.isSetStorageHostName();
-    if (this_present_storageHostName || that_present_storageHostName) {
-      if (!(this_present_storageHostName && that_present_storageHostName))
-        return false;
-      if (!this.storageHostName.equals(that.storageHostName))
-        return false;
-    }
-
-    boolean this_present_lastModifiedType = true && this.isSetLastModifiedType();
-    boolean that_present_lastModifiedType = true && that.isSetLastModifiedType();
-    if (this_present_lastModifiedType || that_present_lastModifiedType) {
-      if (!(this_present_lastModifiedType && that_present_lastModifiedType))
-        return false;
-      if (this.lastModifiedType != that.lastModifiedType)
-        return false;
-    }
-
-    boolean this_present_createdTime = true && this.isSetCreatedTime();
-    boolean that_present_createdTime = true && that.isSetCreatedTime();
-    if (this_present_createdTime || that_present_createdTime) {
-      if (!(this_present_createdTime && that_present_createdTime))
-        return false;
-      if (this.createdTime != that.createdTime)
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    List<Object> list = new ArrayList<Object>();
-
-    boolean present_type = true && (isSetType());
-    list.add(present_type);
-    if (present_type)
-      list.add(type.getValue());
-
-    boolean present_size = true && (isSetSize());
-    list.add(present_size);
-    if (present_size)
-      list.add(size);
-
-    boolean present_nativeType = true && (isSetNativeType());
-    list.add(present_nativeType);
-    if (present_nativeType)
-      list.add(nativeType);
-
-    boolean present_name = true && (isSetName());
-    list.add(present_name);
-    if (present_name)
-      list.add(name);
-
-    boolean present_path = true && (isSetPath());
-    list.add(present_path);
-    if (present_path)
-      list.add(path);
-
-    boolean present_storageHostName = true && (isSetStorageHostName());
-    list.add(present_storageHostName);
-    if (present_storageHostName)
-      list.add(storageHostName);
-
-    boolean present_lastModifiedType = true && (isSetLastModifiedType());
-    list.add(present_lastModifiedType);
-    if (present_lastModifiedType)
-      list.add(lastModifiedType);
-
-    boolean present_createdTime = true && (isSetCreatedTime());
-    list.add(present_createdTime);
-    if (present_createdTime)
-      list.add(createdTime);
-
-    return list.hashCode();
-  }
-
-  @Override
-  public int compareTo(LSEntryModel other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    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(isSetSize()).compareTo(other.isSetSize());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSize()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.size, other.size);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetNativeType()).compareTo(other.isSetNativeType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetNativeType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nativeType, other.nativeType);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetPath()).compareTo(other.isSetPath());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetPath()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.path, other.path);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetStorageHostName()).compareTo(other.isSetStorageHostName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetStorageHostName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageHostName, other.storageHostName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetLastModifiedType()).compareTo(other.isSetLastModifiedType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetLastModifiedType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedType, other.lastModifiedType);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetCreatedTime()).compareTo(other.isSetCreatedTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCreatedTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.createdTime, other.createdTime);
-      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("LSEntryModel(");
-    boolean first = true;
-
-    if (isSetType()) {
-      sb.append("type:");
-      if (this.type == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.type);
-      }
-      first = false;
-    }
-    if (isSetSize()) {
-      if (!first) sb.append(", ");
-      sb.append("size:");
-      sb.append(this.size);
-      first = false;
-    }
-    if (isSetNativeType()) {
-      if (!first) sb.append(", ");
-      sb.append("nativeType:");
-      if (this.nativeType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.nativeType);
-      }
-      first = false;
-    }
-    if (isSetName()) {
-      if (!first) sb.append(", ");
-      sb.append("name:");
-      if (this.name == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.name);
-      }
-      first = false;
-    }
-    if (isSetPath()) {
-      if (!first) sb.append(", ");
-      sb.append("path:");
-      if (this.path == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.path);
-      }
-      first = false;
-    }
-    if (isSetStorageHostName()) {
-      if (!first) sb.append(", ");
-      sb.append("storageHostName:");
-      if (this.storageHostName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.storageHostName);
-      }
-      first = false;
-    }
-    if (isSetLastModifiedType()) {
-      if (!first) sb.append(", ");
-      sb.append("lastModifiedType:");
-      sb.append(this.lastModifiedType);
-      first = false;
-    }
-    if (isSetCreatedTime()) {
-      if (!first) sb.append(", ");
-      sb.append("createdTime:");
-      sb.append(this.createdTime);
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // 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 LSEntryModelStandardSchemeFactory implements SchemeFactory {
-    public LSEntryModelStandardScheme getScheme() {
-      return new LSEntryModelStandardScheme();
-    }
-  }
-
-  private static class LSEntryModelStandardScheme extends StandardScheme<LSEntryModel> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, LSEntryModel 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: // TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.type = org.apache.airavata.model.file.transfer.LSEntryType.findByValue(iprot.readI32());
-              struct.setTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // SIZE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.size = iprot.readI64();
-              struct.setSizeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // NATIVE_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.nativeType = iprot.readString();
-              struct.setNativeTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.name = iprot.readString();
-              struct.setNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // PATH
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.path = iprot.readString();
-              struct.setPathIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // STORAGE_HOST_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.storageHostName = iprot.readString();
-              struct.setStorageHostNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 7: // LAST_MODIFIED_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.lastModifiedType = iprot.readI64();
-              struct.setLastModifiedTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // CREATED_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.createdTime = iprot.readI64();
-              struct.setCreatedTimeIsSet(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, LSEntryModel struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.type != null) {
-        if (struct.isSetType()) {
-          oprot.writeFieldBegin(TYPE_FIELD_DESC);
-          oprot.writeI32(struct.type.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetSize()) {
-        oprot.writeFieldBegin(SIZE_FIELD_DESC);
-        oprot.writeI64(struct.size);
-        oprot.writeFieldEnd();
-      }
-      if (struct.nativeType != null) {
-        if (struct.isSetNativeType()) {
-          oprot.writeFieldBegin(NATIVE_TYPE_FIELD_DESC);
-          oprot.writeString(struct.nativeType);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.name != null) {
-        if (struct.isSetName()) {
-          oprot.writeFieldBegin(NAME_FIELD_DESC);
-          oprot.writeString(struct.name);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.path != null) {
-        if (struct.isSetPath()) {
-          oprot.writeFieldBegin(PATH_FIELD_DESC);
-          oprot.writeString(struct.path);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.storageHostName != null) {
-        if (struct.isSetStorageHostName()) {
-          oprot.writeFieldBegin(STORAGE_HOST_NAME_FIELD_DESC);
-          oprot.writeString(struct.storageHostName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetLastModifiedType()) {
-        oprot.writeFieldBegin(LAST_MODIFIED_TYPE_FIELD_DESC);
-        oprot.writeI64(struct.lastModifiedType);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetCreatedTime()) {
-        oprot.writeFieldBegin(CREATED_TIME_FIELD_DESC);
-        oprot.writeI64(struct.createdTime);
-        oprot.writeFieldEnd();
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class LSEntryModelTupleSchemeFactory implements SchemeFactory {
-    public LSEntryModelTupleScheme getScheme() {
-      return new LSEntryModelTupleScheme();
-    }
-  }
-
-  private static class LSEntryModelTupleScheme extends TupleScheme<LSEntryModel> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, LSEntryModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      BitSet optionals = new BitSet();
-      if (struct.isSetType()) {
-        optionals.set(0);
-      }
-      if (struct.isSetSize()) {
-        optionals.set(1);
-      }
-      if (struct.isSetNativeType()) {
-        optionals.set(2);
-      }
-      if (struct.isSetName()) {
-        optionals.set(3);
-      }
-      if (struct.isSetPath()) {
-        optionals.set(4);
-      }
-      if (struct.isSetStorageHostName()) {
-        optionals.set(5);
-      }
-      if (struct.isSetLastModifiedType()) {
-        optionals.set(6);
-      }
-      if (struct.isSetCreatedTime()) {
-        optionals.set(7);
-      }
-      oprot.writeBitSet(optionals, 8);
-      if (struct.isSetType()) {
-        oprot.writeI32(struct.type.getValue());
-      }
-      if (struct.isSetSize()) {
-        oprot.writeI64(struct.size);
-      }
-      if (struct.isSetNativeType()) {
-        oprot.writeString(struct.nativeType);
-      }
-      if (struct.isSetName()) {
-        oprot.writeString(struct.name);
-      }
-      if (struct.isSetPath()) {
-        oprot.writeString(struct.path);
-      }
-      if (struct.isSetStorageHostName()) {
-        oprot.writeString(struct.storageHostName);
-      }
-      if (struct.isSetLastModifiedType()) {
-        oprot.writeI64(struct.lastModifiedType);
-      }
-      if (struct.isSetCreatedTime()) {
-        oprot.writeI64(struct.createdTime);
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, LSEntryModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(8);
-      if (incoming.get(0)) {
-        struct.type = org.apache.airavata.model.file.transfer.LSEntryType.findByValue(iprot.readI32());
-        struct.setTypeIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.size = iprot.readI64();
-        struct.setSizeIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.nativeType = iprot.readString();
-        struct.setNativeTypeIsSet(true);
-      }
-      if (incoming.get(3)) {
-        struct.name = iprot.readString();
-        struct.setNameIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.path = iprot.readString();
-        struct.setPathIsSet(true);
-      }
-      if (incoming.get(5)) {
-        struct.storageHostName = iprot.readString();
-        struct.setStorageHostNameIsSet(true);
-      }
-      if (incoming.get(6)) {
-        struct.lastModifiedType = iprot.readI64();
-        struct.setLastModifiedTypeIsSet(true);
-      }
-      if (incoming.get(7)) {
-        struct.createdTime = iprot.readI64();
-        struct.setCreatedTimeIsSet(true);
-      }
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/LSEntryType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/LSEntryType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/LSEntryType.java
deleted file mode 100644
index bf37195..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/LSEntryType.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.transfer;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum LSEntryType implements org.apache.thrift.TEnum {
-  DIRECTORY(0),
-  FILE(1);
-
-  private final int value;
-
-  private LSEntryType(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 LSEntryType findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return DIRECTORY;
-      case 1:
-        return FILE;
-      default:
-        return null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/StorageResourceProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/StorageResourceProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/StorageResourceProtocol.java
deleted file mode 100644
index 5a62df7..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/StorageResourceProtocol.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.transfer;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum StorageResourceProtocol implements org.apache.thrift.TEnum {
-  SCP(0),
-  SFTP(1),
-  HTTP(2),
-  HTTPS(3),
-  GridFTP(4),
-  LOCAL(5);
-
-  private final int value;
-
-  private StorageResourceProtocol(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 StorageResourceProtocol findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return SCP;
-      case 1:
-        return SFTP;
-      case 2:
-        return HTTP;
-      case 3:
-        return HTTPS;
-      case 4:
-        return GridFTP;
-      case 5:
-        return LOCAL;
-      default:
-        return null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
index 712a088..d9ec8da 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
index 5c6686d..027feba 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ExperimentStatusChangeEvent implements org.apache.thrift.TBase<ExperimentStatusChangeEvent, ExperimentStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
index e7753da..fb59fbc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class JobIdentifier implements org.apache.thrift.TBase<JobIdentifier, JobIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<JobIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
index 987fc8b..4952c2b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class JobStatusChangeEvent implements org.apache.thrift.TBase<JobStatusChangeEvent, JobStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
index 6b3f1dd..9cc2823 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class JobStatusChangeRequestEvent implements org.apache.thrift.TBase<JobStatusChangeRequestEvent, JobStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
index f3a67c3..f3ba94a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class Message implements org.apache.thrift.TBase<Message, Message._Fields>, java.io.Serializable, Cloneable, Comparable<Message> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Message");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
index c168c39..5147b3d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ProcessIdentifier implements org.apache.thrift.TBase<ProcessIdentifier, ProcessIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
index 33c1c20..8737f60 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ProcessStatusChangeEvent implements org.apache.thrift.TBase<ProcessStatusChangeEvent, ProcessStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
index df36e8e..8b73b20 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<ProcessStatusChangeRequestEvent, ProcessStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
index cf57ed9..815f542 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmitEvent, ProcessSubmitEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessSubmitEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessSubmitEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
index ca846ff..96ee967 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ProcessTerminateEvent implements org.apache.thrift.TBase<ProcessTerminateEvent, ProcessTerminateEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessTerminateEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessTerminateEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
index a9dde12..31b555b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class TaskIdentifier implements org.apache.thrift.TBase<TaskIdentifier, TaskIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<TaskIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
index 82b0e51..4e248f8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class TaskOutputChangeEvent implements org.apache.thrift.TBase<TaskOutputChangeEvent, TaskOutputChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskOutputChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskOutputChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
index a9f8bf1..b86839c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class TaskStatusChangeEvent implements org.apache.thrift.TBase<TaskStatusChangeEvent, TaskStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
index 689efaf..03a7e18 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class TaskStatusChangeRequestEvent implements org.apache.thrift.TBase<TaskStatusChangeRequestEvent, TaskStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
index 5f777a1..42ce292 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, ProcessModel._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
index 77728c2..8a635fa 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ComputationalResourceSchedulingModel implements org.apache.thrift.TBase<ComputationalResourceSchedulingModel, ComputationalResourceSchedulingModel._Fields>, java.io.Serializable, Cloneable, Comparable<ComputationalResourceSchedulingModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputationalResourceSchedulingModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
index 9f70930..1a6017d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class AuthzToken implements org.apache.thrift.TBase<AuthzToken, AuthzToken._Fields>, java.io.Serializable, Cloneable, Comparable<AuthzToken> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthzToken");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
index 04227d3..ccb6b83 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   User friendly reason on how the state is inferred.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ExperimentStatus implements org.apache.thrift.TBase<ExperimentStatus, ExperimentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
index face89e..c9ab6bc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class JobStatus implements org.apache.thrift.TBase<JobStatus, JobStatus._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
index 0b21d0e..72b5ce6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ProcessStatus implements org.apache.thrift.TBase<ProcessStatus, ProcessStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
index ba34407..cd6e827 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 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");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
index d509856..7f34dd9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class DataStagingTaskModel implements org.apache.thrift.TBase<DataStagingTaskModel, DataStagingTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataStagingTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataStagingTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
index 3460741..2c980b6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
  * EnvironmentSetupTaskModel: A structure holding the environment creation task details
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class EnvironmentSetupTaskModel implements org.apache.thrift.TBase<EnvironmentSetupTaskModel, EnvironmentSetupTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<EnvironmentSetupTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EnvironmentSetupTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
index 0037cbf..8f4ec43 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmissionTaskModel, JobSubmissionTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
index 4127d0e..4cc21a5 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class MonitorTaskModel implements org.apache.thrift.TBase<MonitorTaskModel, MonitorTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<MonitorTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MonitorTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
index def2e53..f4a2c01 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * subTaskModel:
  *   A generic byte object for the Task developer to store internal serialized data into registry catalogs.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<TaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
index 6b4bffe..ab0ac4b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class Gateway implements org.apache.thrift.TBase<Gateway, Gateway._Fields>, java.io.Serializable, Cloneable, Comparable<Gateway> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Gateway");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
index 01a1817..03de05b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class Group implements org.apache.thrift.TBase<Group, Group._Fields>, java.io.Serializable, Cloneable, Comparable<Group> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Group");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
index 1a7918f..89ea23f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class Project implements org.apache.thrift.TBase<Project, Project._Fields>, java.io.Serializable, Cloneable, Comparable<Project> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Project");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
index 87fbf72..b9dede7 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class User implements org.apache.thrift.TBase<User, User._Fields>, java.io.Serializable, Cloneable, Comparable<User> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("User");
 


[12/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileCollectionModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileCollectionModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileCollectionModel.java
deleted file mode 100644
index db92fe8..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileCollectionModel.java
+++ /dev/null
@@ -1,1247 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.replica;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
-public class FileCollectionModel implements org.apache.thrift.TBase<FileCollectionModel, FileCollectionModel._Fields>, java.io.Serializable, Cloneable, Comparable<FileCollectionModel> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("FileCollectionModel");
-
-  private static final org.apache.thrift.protocol.TField COLLECTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("collectionId", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField SHARED_USERS_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedUsers", org.apache.thrift.protocol.TType.LIST, (short)4);
-  private static final org.apache.thrift.protocol.TField SHARED_PUBLIC_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedPublic", org.apache.thrift.protocol.TType.BOOL, (short)5);
-  private static final org.apache.thrift.protocol.TField COLLECTION_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("collectionName", org.apache.thrift.protocol.TType.STRING, (short)6);
-  private static final org.apache.thrift.protocol.TField COLLECTION_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("collectionDescription", org.apache.thrift.protocol.TType.STRING, (short)7);
-  private static final org.apache.thrift.protocol.TField FILE_ID_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("fileIdList", org.apache.thrift.protocol.TType.LIST, (short)8);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new FileCollectionModelStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new FileCollectionModelTupleSchemeFactory());
-  }
-
-  private String collectionId; // optional
-  private String gatewayId; // optional
-  private String username; // optional
-  private List<String> sharedUsers; // optional
-  private boolean sharedPublic; // optional
-  private String collectionName; // optional
-  private String collectionDescription; // optional
-  private List<String> fileIdList; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    COLLECTION_ID((short)1, "collectionId"),
-    GATEWAY_ID((short)2, "gatewayId"),
-    USERNAME((short)3, "username"),
-    SHARED_USERS((short)4, "sharedUsers"),
-    SHARED_PUBLIC((short)5, "sharedPublic"),
-    COLLECTION_NAME((short)6, "collectionName"),
-    COLLECTION_DESCRIPTION((short)7, "collectionDescription"),
-    FILE_ID_LIST((short)8, "fileIdList");
-
-    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: // COLLECTION_ID
-          return COLLECTION_ID;
-        case 2: // GATEWAY_ID
-          return GATEWAY_ID;
-        case 3: // USERNAME
-          return USERNAME;
-        case 4: // SHARED_USERS
-          return SHARED_USERS;
-        case 5: // SHARED_PUBLIC
-          return SHARED_PUBLIC;
-        case 6: // COLLECTION_NAME
-          return COLLECTION_NAME;
-        case 7: // COLLECTION_DESCRIPTION
-          return COLLECTION_DESCRIPTION;
-        case 8: // FILE_ID_LIST
-          return FILE_ID_LIST;
-        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 __SHAREDPUBLIC_ISSET_ID = 0;
-  private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.COLLECTION_ID,_Fields.GATEWAY_ID,_Fields.USERNAME,_Fields.SHARED_USERS,_Fields.SHARED_PUBLIC,_Fields.COLLECTION_NAME,_Fields.COLLECTION_DESCRIPTION,_Fields.FILE_ID_LIST};
-  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.COLLECTION_ID, new org.apache.thrift.meta_data.FieldMetaData("collectionId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SHARED_USERS, new org.apache.thrift.meta_data.FieldMetaData("sharedUsers", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.SHARED_PUBLIC, new org.apache.thrift.meta_data.FieldMetaData("sharedPublic", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
-    tmpMap.put(_Fields.COLLECTION_NAME, new org.apache.thrift.meta_data.FieldMetaData("collectionName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.COLLECTION_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("collectionDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.FILE_ID_LIST, new org.apache.thrift.meta_data.FieldMetaData("fileIdList", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(FileCollectionModel.class, metaDataMap);
-  }
-
-  public FileCollectionModel() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public FileCollectionModel(FileCollectionModel other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetCollectionId()) {
-      this.collectionId = other.collectionId;
-    }
-    if (other.isSetGatewayId()) {
-      this.gatewayId = other.gatewayId;
-    }
-    if (other.isSetUsername()) {
-      this.username = other.username;
-    }
-    if (other.isSetSharedUsers()) {
-      List<String> __this__sharedUsers = new ArrayList<String>(other.sharedUsers);
-      this.sharedUsers = __this__sharedUsers;
-    }
-    this.sharedPublic = other.sharedPublic;
-    if (other.isSetCollectionName()) {
-      this.collectionName = other.collectionName;
-    }
-    if (other.isSetCollectionDescription()) {
-      this.collectionDescription = other.collectionDescription;
-    }
-    if (other.isSetFileIdList()) {
-      List<String> __this__fileIdList = new ArrayList<String>(other.fileIdList);
-      this.fileIdList = __this__fileIdList;
-    }
-  }
-
-  public FileCollectionModel deepCopy() {
-    return new FileCollectionModel(this);
-  }
-
-  @Override
-  public void clear() {
-    this.collectionId = null;
-    this.gatewayId = null;
-    this.username = null;
-    this.sharedUsers = null;
-    setSharedPublicIsSet(false);
-    this.sharedPublic = false;
-    this.collectionName = null;
-    this.collectionDescription = null;
-    this.fileIdList = null;
-  }
-
-  public String getCollectionId() {
-    return this.collectionId;
-  }
-
-  public void setCollectionId(String collectionId) {
-    this.collectionId = collectionId;
-  }
-
-  public void unsetCollectionId() {
-    this.collectionId = null;
-  }
-
-  /** Returns true if field collectionId is set (has been assigned a value) and false otherwise */
-  public boolean isSetCollectionId() {
-    return this.collectionId != null;
-  }
-
-  public void setCollectionIdIsSet(boolean value) {
-    if (!value) {
-      this.collectionId = null;
-    }
-  }
-
-  public String getGatewayId() {
-    return this.gatewayId;
-  }
-
-  public void setGatewayId(String gatewayId) {
-    this.gatewayId = gatewayId;
-  }
-
-  public void unsetGatewayId() {
-    this.gatewayId = null;
-  }
-
-  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
-  public boolean isSetGatewayId() {
-    return this.gatewayId != null;
-  }
-
-  public void setGatewayIdIsSet(boolean value) {
-    if (!value) {
-      this.gatewayId = null;
-    }
-  }
-
-  public String getUsername() {
-    return this.username;
-  }
-
-  public void setUsername(String username) {
-    this.username = username;
-  }
-
-  public void unsetUsername() {
-    this.username = null;
-  }
-
-  /** Returns true if field username is set (has been assigned a value) and false otherwise */
-  public boolean isSetUsername() {
-    return this.username != null;
-  }
-
-  public void setUsernameIsSet(boolean value) {
-    if (!value) {
-      this.username = null;
-    }
-  }
-
-  public int getSharedUsersSize() {
-    return (this.sharedUsers == null) ? 0 : this.sharedUsers.size();
-  }
-
-  public java.util.Iterator<String> getSharedUsersIterator() {
-    return (this.sharedUsers == null) ? null : this.sharedUsers.iterator();
-  }
-
-  public void addToSharedUsers(String elem) {
-    if (this.sharedUsers == null) {
-      this.sharedUsers = new ArrayList<String>();
-    }
-    this.sharedUsers.add(elem);
-  }
-
-  public List<String> getSharedUsers() {
-    return this.sharedUsers;
-  }
-
-  public void setSharedUsers(List<String> sharedUsers) {
-    this.sharedUsers = sharedUsers;
-  }
-
-  public void unsetSharedUsers() {
-    this.sharedUsers = null;
-  }
-
-  /** Returns true if field sharedUsers is set (has been assigned a value) and false otherwise */
-  public boolean isSetSharedUsers() {
-    return this.sharedUsers != null;
-  }
-
-  public void setSharedUsersIsSet(boolean value) {
-    if (!value) {
-      this.sharedUsers = null;
-    }
-  }
-
-  public boolean isSharedPublic() {
-    return this.sharedPublic;
-  }
-
-  public void setSharedPublic(boolean sharedPublic) {
-    this.sharedPublic = sharedPublic;
-    setSharedPublicIsSet(true);
-  }
-
-  public void unsetSharedPublic() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
-  }
-
-  /** Returns true if field sharedPublic is set (has been assigned a value) and false otherwise */
-  public boolean isSetSharedPublic() {
-    return EncodingUtils.testBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
-  }
-
-  public void setSharedPublicIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID, value);
-  }
-
-  public String getCollectionName() {
-    return this.collectionName;
-  }
-
-  public void setCollectionName(String collectionName) {
-    this.collectionName = collectionName;
-  }
-
-  public void unsetCollectionName() {
-    this.collectionName = null;
-  }
-
-  /** Returns true if field collectionName is set (has been assigned a value) and false otherwise */
-  public boolean isSetCollectionName() {
-    return this.collectionName != null;
-  }
-
-  public void setCollectionNameIsSet(boolean value) {
-    if (!value) {
-      this.collectionName = null;
-    }
-  }
-
-  public String getCollectionDescription() {
-    return this.collectionDescription;
-  }
-
-  public void setCollectionDescription(String collectionDescription) {
-    this.collectionDescription = collectionDescription;
-  }
-
-  public void unsetCollectionDescription() {
-    this.collectionDescription = null;
-  }
-
-  /** Returns true if field collectionDescription is set (has been assigned a value) and false otherwise */
-  public boolean isSetCollectionDescription() {
-    return this.collectionDescription != null;
-  }
-
-  public void setCollectionDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.collectionDescription = null;
-    }
-  }
-
-  public int getFileIdListSize() {
-    return (this.fileIdList == null) ? 0 : this.fileIdList.size();
-  }
-
-  public java.util.Iterator<String> getFileIdListIterator() {
-    return (this.fileIdList == null) ? null : this.fileIdList.iterator();
-  }
-
-  public void addToFileIdList(String elem) {
-    if (this.fileIdList == null) {
-      this.fileIdList = new ArrayList<String>();
-    }
-    this.fileIdList.add(elem);
-  }
-
-  public List<String> getFileIdList() {
-    return this.fileIdList;
-  }
-
-  public void setFileIdList(List<String> fileIdList) {
-    this.fileIdList = fileIdList;
-  }
-
-  public void unsetFileIdList() {
-    this.fileIdList = null;
-  }
-
-  /** Returns true if field fileIdList is set (has been assigned a value) and false otherwise */
-  public boolean isSetFileIdList() {
-    return this.fileIdList != null;
-  }
-
-  public void setFileIdListIsSet(boolean value) {
-    if (!value) {
-      this.fileIdList = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case COLLECTION_ID:
-      if (value == null) {
-        unsetCollectionId();
-      } else {
-        setCollectionId((String)value);
-      }
-      break;
-
-    case GATEWAY_ID:
-      if (value == null) {
-        unsetGatewayId();
-      } else {
-        setGatewayId((String)value);
-      }
-      break;
-
-    case USERNAME:
-      if (value == null) {
-        unsetUsername();
-      } else {
-        setUsername((String)value);
-      }
-      break;
-
-    case SHARED_USERS:
-      if (value == null) {
-        unsetSharedUsers();
-      } else {
-        setSharedUsers((List<String>)value);
-      }
-      break;
-
-    case SHARED_PUBLIC:
-      if (value == null) {
-        unsetSharedPublic();
-      } else {
-        setSharedPublic((Boolean)value);
-      }
-      break;
-
-    case COLLECTION_NAME:
-      if (value == null) {
-        unsetCollectionName();
-      } else {
-        setCollectionName((String)value);
-      }
-      break;
-
-    case COLLECTION_DESCRIPTION:
-      if (value == null) {
-        unsetCollectionDescription();
-      } else {
-        setCollectionDescription((String)value);
-      }
-      break;
-
-    case FILE_ID_LIST:
-      if (value == null) {
-        unsetFileIdList();
-      } else {
-        setFileIdList((List<String>)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case COLLECTION_ID:
-      return getCollectionId();
-
-    case GATEWAY_ID:
-      return getGatewayId();
-
-    case USERNAME:
-      return getUsername();
-
-    case SHARED_USERS:
-      return getSharedUsers();
-
-    case SHARED_PUBLIC:
-      return isSharedPublic();
-
-    case COLLECTION_NAME:
-      return getCollectionName();
-
-    case COLLECTION_DESCRIPTION:
-      return getCollectionDescription();
-
-    case FILE_ID_LIST:
-      return getFileIdList();
-
-    }
-    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 COLLECTION_ID:
-      return isSetCollectionId();
-    case GATEWAY_ID:
-      return isSetGatewayId();
-    case USERNAME:
-      return isSetUsername();
-    case SHARED_USERS:
-      return isSetSharedUsers();
-    case SHARED_PUBLIC:
-      return isSetSharedPublic();
-    case COLLECTION_NAME:
-      return isSetCollectionName();
-    case COLLECTION_DESCRIPTION:
-      return isSetCollectionDescription();
-    case FILE_ID_LIST:
-      return isSetFileIdList();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof FileCollectionModel)
-      return this.equals((FileCollectionModel)that);
-    return false;
-  }
-
-  public boolean equals(FileCollectionModel that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_collectionId = true && this.isSetCollectionId();
-    boolean that_present_collectionId = true && that.isSetCollectionId();
-    if (this_present_collectionId || that_present_collectionId) {
-      if (!(this_present_collectionId && that_present_collectionId))
-        return false;
-      if (!this.collectionId.equals(that.collectionId))
-        return false;
-    }
-
-    boolean this_present_gatewayId = true && this.isSetGatewayId();
-    boolean that_present_gatewayId = true && that.isSetGatewayId();
-    if (this_present_gatewayId || that_present_gatewayId) {
-      if (!(this_present_gatewayId && that_present_gatewayId))
-        return false;
-      if (!this.gatewayId.equals(that.gatewayId))
-        return false;
-    }
-
-    boolean this_present_username = true && this.isSetUsername();
-    boolean that_present_username = true && that.isSetUsername();
-    if (this_present_username || that_present_username) {
-      if (!(this_present_username && that_present_username))
-        return false;
-      if (!this.username.equals(that.username))
-        return false;
-    }
-
-    boolean this_present_sharedUsers = true && this.isSetSharedUsers();
-    boolean that_present_sharedUsers = true && that.isSetSharedUsers();
-    if (this_present_sharedUsers || that_present_sharedUsers) {
-      if (!(this_present_sharedUsers && that_present_sharedUsers))
-        return false;
-      if (!this.sharedUsers.equals(that.sharedUsers))
-        return false;
-    }
-
-    boolean this_present_sharedPublic = true && this.isSetSharedPublic();
-    boolean that_present_sharedPublic = true && that.isSetSharedPublic();
-    if (this_present_sharedPublic || that_present_sharedPublic) {
-      if (!(this_present_sharedPublic && that_present_sharedPublic))
-        return false;
-      if (this.sharedPublic != that.sharedPublic)
-        return false;
-    }
-
-    boolean this_present_collectionName = true && this.isSetCollectionName();
-    boolean that_present_collectionName = true && that.isSetCollectionName();
-    if (this_present_collectionName || that_present_collectionName) {
-      if (!(this_present_collectionName && that_present_collectionName))
-        return false;
-      if (!this.collectionName.equals(that.collectionName))
-        return false;
-    }
-
-    boolean this_present_collectionDescription = true && this.isSetCollectionDescription();
-    boolean that_present_collectionDescription = true && that.isSetCollectionDescription();
-    if (this_present_collectionDescription || that_present_collectionDescription) {
-      if (!(this_present_collectionDescription && that_present_collectionDescription))
-        return false;
-      if (!this.collectionDescription.equals(that.collectionDescription))
-        return false;
-    }
-
-    boolean this_present_fileIdList = true && this.isSetFileIdList();
-    boolean that_present_fileIdList = true && that.isSetFileIdList();
-    if (this_present_fileIdList || that_present_fileIdList) {
-      if (!(this_present_fileIdList && that_present_fileIdList))
-        return false;
-      if (!this.fileIdList.equals(that.fileIdList))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    List<Object> list = new ArrayList<Object>();
-
-    boolean present_collectionId = true && (isSetCollectionId());
-    list.add(present_collectionId);
-    if (present_collectionId)
-      list.add(collectionId);
-
-    boolean present_gatewayId = true && (isSetGatewayId());
-    list.add(present_gatewayId);
-    if (present_gatewayId)
-      list.add(gatewayId);
-
-    boolean present_username = true && (isSetUsername());
-    list.add(present_username);
-    if (present_username)
-      list.add(username);
-
-    boolean present_sharedUsers = true && (isSetSharedUsers());
-    list.add(present_sharedUsers);
-    if (present_sharedUsers)
-      list.add(sharedUsers);
-
-    boolean present_sharedPublic = true && (isSetSharedPublic());
-    list.add(present_sharedPublic);
-    if (present_sharedPublic)
-      list.add(sharedPublic);
-
-    boolean present_collectionName = true && (isSetCollectionName());
-    list.add(present_collectionName);
-    if (present_collectionName)
-      list.add(collectionName);
-
-    boolean present_collectionDescription = true && (isSetCollectionDescription());
-    list.add(present_collectionDescription);
-    if (present_collectionDescription)
-      list.add(collectionDescription);
-
-    boolean present_fileIdList = true && (isSetFileIdList());
-    list.add(present_fileIdList);
-    if (present_fileIdList)
-      list.add(fileIdList);
-
-    return list.hashCode();
-  }
-
-  @Override
-  public int compareTo(FileCollectionModel other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetCollectionId()).compareTo(other.isSetCollectionId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCollectionId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.collectionId, other.collectionId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetGatewayId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetUsername()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSharedUsers()).compareTo(other.isSetSharedUsers());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSharedUsers()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedUsers, other.sharedUsers);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSharedPublic()).compareTo(other.isSetSharedPublic());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSharedPublic()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedPublic, other.sharedPublic);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetCollectionName()).compareTo(other.isSetCollectionName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCollectionName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.collectionName, other.collectionName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetCollectionDescription()).compareTo(other.isSetCollectionDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCollectionDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.collectionDescription, other.collectionDescription);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetFileIdList()).compareTo(other.isSetFileIdList());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFileIdList()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileIdList, other.fileIdList);
-      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("FileCollectionModel(");
-    boolean first = true;
-
-    if (isSetCollectionId()) {
-      sb.append("collectionId:");
-      if (this.collectionId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.collectionId);
-      }
-      first = false;
-    }
-    if (isSetGatewayId()) {
-      if (!first) sb.append(", ");
-      sb.append("gatewayId:");
-      if (this.gatewayId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.gatewayId);
-      }
-      first = false;
-    }
-    if (isSetUsername()) {
-      if (!first) sb.append(", ");
-      sb.append("username:");
-      if (this.username == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.username);
-      }
-      first = false;
-    }
-    if (isSetSharedUsers()) {
-      if (!first) sb.append(", ");
-      sb.append("sharedUsers:");
-      if (this.sharedUsers == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.sharedUsers);
-      }
-      first = false;
-    }
-    if (isSetSharedPublic()) {
-      if (!first) sb.append(", ");
-      sb.append("sharedPublic:");
-      sb.append(this.sharedPublic);
-      first = false;
-    }
-    if (isSetCollectionName()) {
-      if (!first) sb.append(", ");
-      sb.append("collectionName:");
-      if (this.collectionName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.collectionName);
-      }
-      first = false;
-    }
-    if (isSetCollectionDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("collectionDescription:");
-      if (this.collectionDescription == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.collectionDescription);
-      }
-      first = false;
-    }
-    if (isSetFileIdList()) {
-      if (!first) sb.append(", ");
-      sb.append("fileIdList:");
-      if (this.fileIdList == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.fileIdList);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // 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 FileCollectionModelStandardSchemeFactory implements SchemeFactory {
-    public FileCollectionModelStandardScheme getScheme() {
-      return new FileCollectionModelStandardScheme();
-    }
-  }
-
-  private static class FileCollectionModelStandardScheme extends StandardScheme<FileCollectionModel> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, FileCollectionModel 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: // COLLECTION_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.collectionId = iprot.readString();
-              struct.setCollectionIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // GATEWAY_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.gatewayId = iprot.readString();
-              struct.setGatewayIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // USERNAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.username = iprot.readString();
-              struct.setUsernameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // SHARED_USERS
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
-                struct.sharedUsers = new ArrayList<String>(_list0.size);
-                String _elem1;
-                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
-                {
-                  _elem1 = iprot.readString();
-                  struct.sharedUsers.add(_elem1);
-                }
-                iprot.readListEnd();
-              }
-              struct.setSharedUsersIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // SHARED_PUBLIC
-            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
-              struct.sharedPublic = iprot.readBool();
-              struct.setSharedPublicIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // COLLECTION_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.collectionName = iprot.readString();
-              struct.setCollectionNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 7: // COLLECTION_DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.collectionDescription = iprot.readString();
-              struct.setCollectionDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // FILE_ID_LIST
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
-                struct.fileIdList = new ArrayList<String>(_list3.size);
-                String _elem4;
-                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
-                {
-                  _elem4 = iprot.readString();
-                  struct.fileIdList.add(_elem4);
-                }
-                iprot.readListEnd();
-              }
-              struct.setFileIdListIsSet(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, FileCollectionModel struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.collectionId != null) {
-        if (struct.isSetCollectionId()) {
-          oprot.writeFieldBegin(COLLECTION_ID_FIELD_DESC);
-          oprot.writeString(struct.collectionId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.gatewayId != null) {
-        if (struct.isSetGatewayId()) {
-          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
-          oprot.writeString(struct.gatewayId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.username != null) {
-        if (struct.isSetUsername()) {
-          oprot.writeFieldBegin(USERNAME_FIELD_DESC);
-          oprot.writeString(struct.username);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.sharedUsers != null) {
-        if (struct.isSetSharedUsers()) {
-          oprot.writeFieldBegin(SHARED_USERS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.sharedUsers.size()));
-            for (String _iter6 : struct.sharedUsers)
-            {
-              oprot.writeString(_iter6);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetSharedPublic()) {
-        oprot.writeFieldBegin(SHARED_PUBLIC_FIELD_DESC);
-        oprot.writeBool(struct.sharedPublic);
-        oprot.writeFieldEnd();
-      }
-      if (struct.collectionName != null) {
-        if (struct.isSetCollectionName()) {
-          oprot.writeFieldBegin(COLLECTION_NAME_FIELD_DESC);
-          oprot.writeString(struct.collectionName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.collectionDescription != null) {
-        if (struct.isSetCollectionDescription()) {
-          oprot.writeFieldBegin(COLLECTION_DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.collectionDescription);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.fileIdList != null) {
-        if (struct.isSetFileIdList()) {
-          oprot.writeFieldBegin(FILE_ID_LIST_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.fileIdList.size()));
-            for (String _iter7 : struct.fileIdList)
-            {
-              oprot.writeString(_iter7);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class FileCollectionModelTupleSchemeFactory implements SchemeFactory {
-    public FileCollectionModelTupleScheme getScheme() {
-      return new FileCollectionModelTupleScheme();
-    }
-  }
-
-  private static class FileCollectionModelTupleScheme extends TupleScheme<FileCollectionModel> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, FileCollectionModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      BitSet optionals = new BitSet();
-      if (struct.isSetCollectionId()) {
-        optionals.set(0);
-      }
-      if (struct.isSetGatewayId()) {
-        optionals.set(1);
-      }
-      if (struct.isSetUsername()) {
-        optionals.set(2);
-      }
-      if (struct.isSetSharedUsers()) {
-        optionals.set(3);
-      }
-      if (struct.isSetSharedPublic()) {
-        optionals.set(4);
-      }
-      if (struct.isSetCollectionName()) {
-        optionals.set(5);
-      }
-      if (struct.isSetCollectionDescription()) {
-        optionals.set(6);
-      }
-      if (struct.isSetFileIdList()) {
-        optionals.set(7);
-      }
-      oprot.writeBitSet(optionals, 8);
-      if (struct.isSetCollectionId()) {
-        oprot.writeString(struct.collectionId);
-      }
-      if (struct.isSetGatewayId()) {
-        oprot.writeString(struct.gatewayId);
-      }
-      if (struct.isSetUsername()) {
-        oprot.writeString(struct.username);
-      }
-      if (struct.isSetSharedUsers()) {
-        {
-          oprot.writeI32(struct.sharedUsers.size());
-          for (String _iter8 : struct.sharedUsers)
-          {
-            oprot.writeString(_iter8);
-          }
-        }
-      }
-      if (struct.isSetSharedPublic()) {
-        oprot.writeBool(struct.sharedPublic);
-      }
-      if (struct.isSetCollectionName()) {
-        oprot.writeString(struct.collectionName);
-      }
-      if (struct.isSetCollectionDescription()) {
-        oprot.writeString(struct.collectionDescription);
-      }
-      if (struct.isSetFileIdList()) {
-        {
-          oprot.writeI32(struct.fileIdList.size());
-          for (String _iter9 : struct.fileIdList)
-          {
-            oprot.writeString(_iter9);
-          }
-        }
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, FileCollectionModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(8);
-      if (incoming.get(0)) {
-        struct.collectionId = iprot.readString();
-        struct.setCollectionIdIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.gatewayId = iprot.readString();
-        struct.setGatewayIdIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.username = iprot.readString();
-        struct.setUsernameIsSet(true);
-      }
-      if (incoming.get(3)) {
-        {
-          org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.sharedUsers = new ArrayList<String>(_list10.size);
-          String _elem11;
-          for (int _i12 = 0; _i12 < _list10.size; ++_i12)
-          {
-            _elem11 = iprot.readString();
-            struct.sharedUsers.add(_elem11);
-          }
-        }
-        struct.setSharedUsersIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.sharedPublic = iprot.readBool();
-        struct.setSharedPublicIsSet(true);
-      }
-      if (incoming.get(5)) {
-        struct.collectionName = iprot.readString();
-        struct.setCollectionNameIsSet(true);
-      }
-      if (incoming.get(6)) {
-        struct.collectionDescription = iprot.readString();
-        struct.setCollectionDescriptionIsSet(true);
-      }
-      if (incoming.get(7)) {
-        {
-          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.fileIdList = new ArrayList<String>(_list13.size);
-          String _elem14;
-          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
-          {
-            _elem14 = iprot.readString();
-            struct.fileIdList.add(_elem14);
-          }
-        }
-        struct.setFileIdListIsSet(true);
-      }
-    }
-  }
-
-}
-


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentSearchFields.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentSearchFields.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentSearchFields.java
new file mode 100644
index 0000000..13515b9
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentSearchFields.java
@@ -0,0 +1,77 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.experiment;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum ExperimentSearchFields implements org.apache.thrift.TEnum {
+  EXPERIMENT_NAME(0),
+  EXPERIMENT_DESC(1),
+  APPLICATION_ID(2),
+  FROM_DATE(3),
+  TO_DATE(4),
+  STATUS(5),
+  PROJECT_ID(6);
+
+  private final int value;
+
+  private ExperimentSearchFields(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 ExperimentSearchFields findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return EXPERIMENT_NAME;
+      case 1:
+        return EXPERIMENT_DESC;
+      case 2:
+        return APPLICATION_ID;
+      case 3:
+        return FROM_DATE;
+      case 4:
+        return TO_DATE;
+      case 5:
+        return STATUS;
+      case 6:
+        return PROJECT_ID;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
new file mode 100644
index 0000000..8340361
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
@@ -0,0 +1,1855 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.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 javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentStatistics, ExperimentStatistics._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatistics> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatistics");
+
+  private static final org.apache.thrift.protocol.TField ALL_EXPERIMENT_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("allExperimentCount", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField COMPLETED_EXPERIMENT_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("completedExperimentCount", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField CANCELLED_EXPERIMENT_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("cancelledExperimentCount", org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField FAILED_EXPERIMENT_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("failedExperimentCount", org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField CREATED_EXPERIMENT_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("createdExperimentCount", org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField RUNNING_EXPERIMENT_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("runningExperimentCount", org.apache.thrift.protocol.TType.I32, (short)6);
+  private static final org.apache.thrift.protocol.TField ALL_EXPERIMENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("allExperiments", org.apache.thrift.protocol.TType.LIST, (short)7);
+  private static final org.apache.thrift.protocol.TField COMPLETED_EXPERIMENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("completedExperiments", org.apache.thrift.protocol.TType.LIST, (short)8);
+  private static final org.apache.thrift.protocol.TField FAILED_EXPERIMENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("failedExperiments", org.apache.thrift.protocol.TType.LIST, (short)9);
+  private static final org.apache.thrift.protocol.TField CANCELLED_EXPERIMENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("cancelledExperiments", org.apache.thrift.protocol.TType.LIST, (short)10);
+  private static final org.apache.thrift.protocol.TField CREATED_EXPERIMENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("createdExperiments", org.apache.thrift.protocol.TType.LIST, (short)11);
+  private static final org.apache.thrift.protocol.TField RUNNING_EXPERIMENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("runningExperiments", org.apache.thrift.protocol.TType.LIST, (short)12);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ExperimentStatisticsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ExperimentStatisticsTupleSchemeFactory());
+  }
+
+  public int allExperimentCount; // required
+  public int completedExperimentCount; // required
+  public int cancelledExperimentCount; // optional
+  public int failedExperimentCount; // required
+  public int createdExperimentCount; // required
+  public int runningExperimentCount; // required
+  public List<ExperimentSummaryModel> allExperiments; // required
+  public List<ExperimentSummaryModel> completedExperiments; // optional
+  public List<ExperimentSummaryModel> failedExperiments; // optional
+  public List<ExperimentSummaryModel> cancelledExperiments; // optional
+  public List<ExperimentSummaryModel> createdExperiments; // optional
+  public List<ExperimentSummaryModel> runningExperiments; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    ALL_EXPERIMENT_COUNT((short)1, "allExperimentCount"),
+    COMPLETED_EXPERIMENT_COUNT((short)2, "completedExperimentCount"),
+    CANCELLED_EXPERIMENT_COUNT((short)3, "cancelledExperimentCount"),
+    FAILED_EXPERIMENT_COUNT((short)4, "failedExperimentCount"),
+    CREATED_EXPERIMENT_COUNT((short)5, "createdExperimentCount"),
+    RUNNING_EXPERIMENT_COUNT((short)6, "runningExperimentCount"),
+    ALL_EXPERIMENTS((short)7, "allExperiments"),
+    COMPLETED_EXPERIMENTS((short)8, "completedExperiments"),
+    FAILED_EXPERIMENTS((short)9, "failedExperiments"),
+    CANCELLED_EXPERIMENTS((short)10, "cancelledExperiments"),
+    CREATED_EXPERIMENTS((short)11, "createdExperiments"),
+    RUNNING_EXPERIMENTS((short)12, "runningExperiments");
+
+    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: // ALL_EXPERIMENT_COUNT
+          return ALL_EXPERIMENT_COUNT;
+        case 2: // COMPLETED_EXPERIMENT_COUNT
+          return COMPLETED_EXPERIMENT_COUNT;
+        case 3: // CANCELLED_EXPERIMENT_COUNT
+          return CANCELLED_EXPERIMENT_COUNT;
+        case 4: // FAILED_EXPERIMENT_COUNT
+          return FAILED_EXPERIMENT_COUNT;
+        case 5: // CREATED_EXPERIMENT_COUNT
+          return CREATED_EXPERIMENT_COUNT;
+        case 6: // RUNNING_EXPERIMENT_COUNT
+          return RUNNING_EXPERIMENT_COUNT;
+        case 7: // ALL_EXPERIMENTS
+          return ALL_EXPERIMENTS;
+        case 8: // COMPLETED_EXPERIMENTS
+          return COMPLETED_EXPERIMENTS;
+        case 9: // FAILED_EXPERIMENTS
+          return FAILED_EXPERIMENTS;
+        case 10: // CANCELLED_EXPERIMENTS
+          return CANCELLED_EXPERIMENTS;
+        case 11: // CREATED_EXPERIMENTS
+          return CREATED_EXPERIMENTS;
+        case 12: // RUNNING_EXPERIMENTS
+          return RUNNING_EXPERIMENTS;
+        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 __ALLEXPERIMENTCOUNT_ISSET_ID = 0;
+  private static final int __COMPLETEDEXPERIMENTCOUNT_ISSET_ID = 1;
+  private static final int __CANCELLEDEXPERIMENTCOUNT_ISSET_ID = 2;
+  private static final int __FAILEDEXPERIMENTCOUNT_ISSET_ID = 3;
+  private static final int __CREATEDEXPERIMENTCOUNT_ISSET_ID = 4;
+  private static final int __RUNNINGEXPERIMENTCOUNT_ISSET_ID = 5;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.CANCELLED_EXPERIMENT_COUNT,_Fields.COMPLETED_EXPERIMENTS,_Fields.FAILED_EXPERIMENTS,_Fields.CANCELLED_EXPERIMENTS,_Fields.CREATED_EXPERIMENTS,_Fields.RUNNING_EXPERIMENTS};
+  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.ALL_EXPERIMENT_COUNT, new org.apache.thrift.meta_data.FieldMetaData("allExperimentCount", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.COMPLETED_EXPERIMENT_COUNT, new org.apache.thrift.meta_data.FieldMetaData("completedExperimentCount", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.CANCELLED_EXPERIMENT_COUNT, new org.apache.thrift.meta_data.FieldMetaData("cancelledExperimentCount", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.FAILED_EXPERIMENT_COUNT, new org.apache.thrift.meta_data.FieldMetaData("failedExperimentCount", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.CREATED_EXPERIMENT_COUNT, new org.apache.thrift.meta_data.FieldMetaData("createdExperimentCount", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.RUNNING_EXPERIMENT_COUNT, new org.apache.thrift.meta_data.FieldMetaData("runningExperimentCount", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.ALL_EXPERIMENTS, new org.apache.thrift.meta_data.FieldMetaData("allExperiments", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExperimentSummaryModel.class))));
+    tmpMap.put(_Fields.COMPLETED_EXPERIMENTS, new org.apache.thrift.meta_data.FieldMetaData("completedExperiments", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExperimentSummaryModel.class))));
+    tmpMap.put(_Fields.FAILED_EXPERIMENTS, new org.apache.thrift.meta_data.FieldMetaData("failedExperiments", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExperimentSummaryModel.class))));
+    tmpMap.put(_Fields.CANCELLED_EXPERIMENTS, new org.apache.thrift.meta_data.FieldMetaData("cancelledExperiments", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExperimentSummaryModel.class))));
+    tmpMap.put(_Fields.CREATED_EXPERIMENTS, new org.apache.thrift.meta_data.FieldMetaData("createdExperiments", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExperimentSummaryModel.class))));
+    tmpMap.put(_Fields.RUNNING_EXPERIMENTS, new org.apache.thrift.meta_data.FieldMetaData("runningExperiments", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExperimentSummaryModel.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExperimentStatistics.class, metaDataMap);
+  }
+
+  public ExperimentStatistics() {
+  }
+
+  public ExperimentStatistics(
+    int allExperimentCount,
+    int completedExperimentCount,
+    int failedExperimentCount,
+    int createdExperimentCount,
+    int runningExperimentCount,
+    List<ExperimentSummaryModel> allExperiments)
+  {
+    this();
+    this.allExperimentCount = allExperimentCount;
+    setAllExperimentCountIsSet(true);
+    this.completedExperimentCount = completedExperimentCount;
+    setCompletedExperimentCountIsSet(true);
+    this.failedExperimentCount = failedExperimentCount;
+    setFailedExperimentCountIsSet(true);
+    this.createdExperimentCount = createdExperimentCount;
+    setCreatedExperimentCountIsSet(true);
+    this.runningExperimentCount = runningExperimentCount;
+    setRunningExperimentCountIsSet(true);
+    this.allExperiments = allExperiments;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ExperimentStatistics(ExperimentStatistics other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.allExperimentCount = other.allExperimentCount;
+    this.completedExperimentCount = other.completedExperimentCount;
+    this.cancelledExperimentCount = other.cancelledExperimentCount;
+    this.failedExperimentCount = other.failedExperimentCount;
+    this.createdExperimentCount = other.createdExperimentCount;
+    this.runningExperimentCount = other.runningExperimentCount;
+    if (other.isSetAllExperiments()) {
+      List<ExperimentSummaryModel> __this__allExperiments = new ArrayList<ExperimentSummaryModel>(other.allExperiments.size());
+      for (ExperimentSummaryModel other_element : other.allExperiments) {
+        __this__allExperiments.add(new ExperimentSummaryModel(other_element));
+      }
+      this.allExperiments = __this__allExperiments;
+    }
+    if (other.isSetCompletedExperiments()) {
+      List<ExperimentSummaryModel> __this__completedExperiments = new ArrayList<ExperimentSummaryModel>(other.completedExperiments.size());
+      for (ExperimentSummaryModel other_element : other.completedExperiments) {
+        __this__completedExperiments.add(new ExperimentSummaryModel(other_element));
+      }
+      this.completedExperiments = __this__completedExperiments;
+    }
+    if (other.isSetFailedExperiments()) {
+      List<ExperimentSummaryModel> __this__failedExperiments = new ArrayList<ExperimentSummaryModel>(other.failedExperiments.size());
+      for (ExperimentSummaryModel other_element : other.failedExperiments) {
+        __this__failedExperiments.add(new ExperimentSummaryModel(other_element));
+      }
+      this.failedExperiments = __this__failedExperiments;
+    }
+    if (other.isSetCancelledExperiments()) {
+      List<ExperimentSummaryModel> __this__cancelledExperiments = new ArrayList<ExperimentSummaryModel>(other.cancelledExperiments.size());
+      for (ExperimentSummaryModel other_element : other.cancelledExperiments) {
+        __this__cancelledExperiments.add(new ExperimentSummaryModel(other_element));
+      }
+      this.cancelledExperiments = __this__cancelledExperiments;
+    }
+    if (other.isSetCreatedExperiments()) {
+      List<ExperimentSummaryModel> __this__createdExperiments = new ArrayList<ExperimentSummaryModel>(other.createdExperiments.size());
+      for (ExperimentSummaryModel other_element : other.createdExperiments) {
+        __this__createdExperiments.add(new ExperimentSummaryModel(other_element));
+      }
+      this.createdExperiments = __this__createdExperiments;
+    }
+    if (other.isSetRunningExperiments()) {
+      List<ExperimentSummaryModel> __this__runningExperiments = new ArrayList<ExperimentSummaryModel>(other.runningExperiments.size());
+      for (ExperimentSummaryModel other_element : other.runningExperiments) {
+        __this__runningExperiments.add(new ExperimentSummaryModel(other_element));
+      }
+      this.runningExperiments = __this__runningExperiments;
+    }
+  }
+
+  public ExperimentStatistics deepCopy() {
+    return new ExperimentStatistics(this);
+  }
+
+  @Override
+  public void clear() {
+    setAllExperimentCountIsSet(false);
+    this.allExperimentCount = 0;
+    setCompletedExperimentCountIsSet(false);
+    this.completedExperimentCount = 0;
+    setCancelledExperimentCountIsSet(false);
+    this.cancelledExperimentCount = 0;
+    setFailedExperimentCountIsSet(false);
+    this.failedExperimentCount = 0;
+    setCreatedExperimentCountIsSet(false);
+    this.createdExperimentCount = 0;
+    setRunningExperimentCountIsSet(false);
+    this.runningExperimentCount = 0;
+    this.allExperiments = null;
+    this.completedExperiments = null;
+    this.failedExperiments = null;
+    this.cancelledExperiments = null;
+    this.createdExperiments = null;
+    this.runningExperiments = null;
+  }
+
+  public int getAllExperimentCount() {
+    return this.allExperimentCount;
+  }
+
+  public ExperimentStatistics setAllExperimentCount(int allExperimentCount) {
+    this.allExperimentCount = allExperimentCount;
+    setAllExperimentCountIsSet(true);
+    return this;
+  }
+
+  public void unsetAllExperimentCount() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ALLEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  /** Returns true if field allExperimentCount is set (has been assigned a value) and false otherwise */
+  public boolean isSetAllExperimentCount() {
+    return EncodingUtils.testBit(__isset_bitfield, __ALLEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  public void setAllExperimentCountIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ALLEXPERIMENTCOUNT_ISSET_ID, value);
+  }
+
+  public int getCompletedExperimentCount() {
+    return this.completedExperimentCount;
+  }
+
+  public ExperimentStatistics setCompletedExperimentCount(int completedExperimentCount) {
+    this.completedExperimentCount = completedExperimentCount;
+    setCompletedExperimentCountIsSet(true);
+    return this;
+  }
+
+  public void unsetCompletedExperimentCount() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __COMPLETEDEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  /** Returns true if field completedExperimentCount is set (has been assigned a value) and false otherwise */
+  public boolean isSetCompletedExperimentCount() {
+    return EncodingUtils.testBit(__isset_bitfield, __COMPLETEDEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  public void setCompletedExperimentCountIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __COMPLETEDEXPERIMENTCOUNT_ISSET_ID, value);
+  }
+
+  public int getCancelledExperimentCount() {
+    return this.cancelledExperimentCount;
+  }
+
+  public ExperimentStatistics setCancelledExperimentCount(int cancelledExperimentCount) {
+    this.cancelledExperimentCount = cancelledExperimentCount;
+    setCancelledExperimentCountIsSet(true);
+    return this;
+  }
+
+  public void unsetCancelledExperimentCount() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CANCELLEDEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  /** Returns true if field cancelledExperimentCount is set (has been assigned a value) and false otherwise */
+  public boolean isSetCancelledExperimentCount() {
+    return EncodingUtils.testBit(__isset_bitfield, __CANCELLEDEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  public void setCancelledExperimentCountIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CANCELLEDEXPERIMENTCOUNT_ISSET_ID, value);
+  }
+
+  public int getFailedExperimentCount() {
+    return this.failedExperimentCount;
+  }
+
+  public ExperimentStatistics setFailedExperimentCount(int failedExperimentCount) {
+    this.failedExperimentCount = failedExperimentCount;
+    setFailedExperimentCountIsSet(true);
+    return this;
+  }
+
+  public void unsetFailedExperimentCount() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __FAILEDEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  /** Returns true if field failedExperimentCount is set (has been assigned a value) and false otherwise */
+  public boolean isSetFailedExperimentCount() {
+    return EncodingUtils.testBit(__isset_bitfield, __FAILEDEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  public void setFailedExperimentCountIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __FAILEDEXPERIMENTCOUNT_ISSET_ID, value);
+  }
+
+  public int getCreatedExperimentCount() {
+    return this.createdExperimentCount;
+  }
+
+  public ExperimentStatistics setCreatedExperimentCount(int createdExperimentCount) {
+    this.createdExperimentCount = createdExperimentCount;
+    setCreatedExperimentCountIsSet(true);
+    return this;
+  }
+
+  public void unsetCreatedExperimentCount() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATEDEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  /** Returns true if field createdExperimentCount is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreatedExperimentCount() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATEDEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  public void setCreatedExperimentCountIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATEDEXPERIMENTCOUNT_ISSET_ID, value);
+  }
+
+  public int getRunningExperimentCount() {
+    return this.runningExperimentCount;
+  }
+
+  public ExperimentStatistics setRunningExperimentCount(int runningExperimentCount) {
+    this.runningExperimentCount = runningExperimentCount;
+    setRunningExperimentCountIsSet(true);
+    return this;
+  }
+
+  public void unsetRunningExperimentCount() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RUNNINGEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  /** Returns true if field runningExperimentCount is set (has been assigned a value) and false otherwise */
+  public boolean isSetRunningExperimentCount() {
+    return EncodingUtils.testBit(__isset_bitfield, __RUNNINGEXPERIMENTCOUNT_ISSET_ID);
+  }
+
+  public void setRunningExperimentCountIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RUNNINGEXPERIMENTCOUNT_ISSET_ID, value);
+  }
+
+  public int getAllExperimentsSize() {
+    return (this.allExperiments == null) ? 0 : this.allExperiments.size();
+  }
+
+  public java.util.Iterator<ExperimentSummaryModel> getAllExperimentsIterator() {
+    return (this.allExperiments == null) ? null : this.allExperiments.iterator();
+  }
+
+  public void addToAllExperiments(ExperimentSummaryModel elem) {
+    if (this.allExperiments == null) {
+      this.allExperiments = new ArrayList<ExperimentSummaryModel>();
+    }
+    this.allExperiments.add(elem);
+  }
+
+  public List<ExperimentSummaryModel> getAllExperiments() {
+    return this.allExperiments;
+  }
+
+  public ExperimentStatistics setAllExperiments(List<ExperimentSummaryModel> allExperiments) {
+    this.allExperiments = allExperiments;
+    return this;
+  }
+
+  public void unsetAllExperiments() {
+    this.allExperiments = null;
+  }
+
+  /** Returns true if field allExperiments is set (has been assigned a value) and false otherwise */
+  public boolean isSetAllExperiments() {
+    return this.allExperiments != null;
+  }
+
+  public void setAllExperimentsIsSet(boolean value) {
+    if (!value) {
+      this.allExperiments = null;
+    }
+  }
+
+  public int getCompletedExperimentsSize() {
+    return (this.completedExperiments == null) ? 0 : this.completedExperiments.size();
+  }
+
+  public java.util.Iterator<ExperimentSummaryModel> getCompletedExperimentsIterator() {
+    return (this.completedExperiments == null) ? null : this.completedExperiments.iterator();
+  }
+
+  public void addToCompletedExperiments(ExperimentSummaryModel elem) {
+    if (this.completedExperiments == null) {
+      this.completedExperiments = new ArrayList<ExperimentSummaryModel>();
+    }
+    this.completedExperiments.add(elem);
+  }
+
+  public List<ExperimentSummaryModel> getCompletedExperiments() {
+    return this.completedExperiments;
+  }
+
+  public ExperimentStatistics setCompletedExperiments(List<ExperimentSummaryModel> completedExperiments) {
+    this.completedExperiments = completedExperiments;
+    return this;
+  }
+
+  public void unsetCompletedExperiments() {
+    this.completedExperiments = null;
+  }
+
+  /** Returns true if field completedExperiments is set (has been assigned a value) and false otherwise */
+  public boolean isSetCompletedExperiments() {
+    return this.completedExperiments != null;
+  }
+
+  public void setCompletedExperimentsIsSet(boolean value) {
+    if (!value) {
+      this.completedExperiments = null;
+    }
+  }
+
+  public int getFailedExperimentsSize() {
+    return (this.failedExperiments == null) ? 0 : this.failedExperiments.size();
+  }
+
+  public java.util.Iterator<ExperimentSummaryModel> getFailedExperimentsIterator() {
+    return (this.failedExperiments == null) ? null : this.failedExperiments.iterator();
+  }
+
+  public void addToFailedExperiments(ExperimentSummaryModel elem) {
+    if (this.failedExperiments == null) {
+      this.failedExperiments = new ArrayList<ExperimentSummaryModel>();
+    }
+    this.failedExperiments.add(elem);
+  }
+
+  public List<ExperimentSummaryModel> getFailedExperiments() {
+    return this.failedExperiments;
+  }
+
+  public ExperimentStatistics setFailedExperiments(List<ExperimentSummaryModel> failedExperiments) {
+    this.failedExperiments = failedExperiments;
+    return this;
+  }
+
+  public void unsetFailedExperiments() {
+    this.failedExperiments = null;
+  }
+
+  /** Returns true if field failedExperiments is set (has been assigned a value) and false otherwise */
+  public boolean isSetFailedExperiments() {
+    return this.failedExperiments != null;
+  }
+
+  public void setFailedExperimentsIsSet(boolean value) {
+    if (!value) {
+      this.failedExperiments = null;
+    }
+  }
+
+  public int getCancelledExperimentsSize() {
+    return (this.cancelledExperiments == null) ? 0 : this.cancelledExperiments.size();
+  }
+
+  public java.util.Iterator<ExperimentSummaryModel> getCancelledExperimentsIterator() {
+    return (this.cancelledExperiments == null) ? null : this.cancelledExperiments.iterator();
+  }
+
+  public void addToCancelledExperiments(ExperimentSummaryModel elem) {
+    if (this.cancelledExperiments == null) {
+      this.cancelledExperiments = new ArrayList<ExperimentSummaryModel>();
+    }
+    this.cancelledExperiments.add(elem);
+  }
+
+  public List<ExperimentSummaryModel> getCancelledExperiments() {
+    return this.cancelledExperiments;
+  }
+
+  public ExperimentStatistics setCancelledExperiments(List<ExperimentSummaryModel> cancelledExperiments) {
+    this.cancelledExperiments = cancelledExperiments;
+    return this;
+  }
+
+  public void unsetCancelledExperiments() {
+    this.cancelledExperiments = null;
+  }
+
+  /** Returns true if field cancelledExperiments is set (has been assigned a value) and false otherwise */
+  public boolean isSetCancelledExperiments() {
+    return this.cancelledExperiments != null;
+  }
+
+  public void setCancelledExperimentsIsSet(boolean value) {
+    if (!value) {
+      this.cancelledExperiments = null;
+    }
+  }
+
+  public int getCreatedExperimentsSize() {
+    return (this.createdExperiments == null) ? 0 : this.createdExperiments.size();
+  }
+
+  public java.util.Iterator<ExperimentSummaryModel> getCreatedExperimentsIterator() {
+    return (this.createdExperiments == null) ? null : this.createdExperiments.iterator();
+  }
+
+  public void addToCreatedExperiments(ExperimentSummaryModel elem) {
+    if (this.createdExperiments == null) {
+      this.createdExperiments = new ArrayList<ExperimentSummaryModel>();
+    }
+    this.createdExperiments.add(elem);
+  }
+
+  public List<ExperimentSummaryModel> getCreatedExperiments() {
+    return this.createdExperiments;
+  }
+
+  public ExperimentStatistics setCreatedExperiments(List<ExperimentSummaryModel> createdExperiments) {
+    this.createdExperiments = createdExperiments;
+    return this;
+  }
+
+  public void unsetCreatedExperiments() {
+    this.createdExperiments = null;
+  }
+
+  /** Returns true if field createdExperiments is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreatedExperiments() {
+    return this.createdExperiments != null;
+  }
+
+  public void setCreatedExperimentsIsSet(boolean value) {
+    if (!value) {
+      this.createdExperiments = null;
+    }
+  }
+
+  public int getRunningExperimentsSize() {
+    return (this.runningExperiments == null) ? 0 : this.runningExperiments.size();
+  }
+
+  public java.util.Iterator<ExperimentSummaryModel> getRunningExperimentsIterator() {
+    return (this.runningExperiments == null) ? null : this.runningExperiments.iterator();
+  }
+
+  public void addToRunningExperiments(ExperimentSummaryModel elem) {
+    if (this.runningExperiments == null) {
+      this.runningExperiments = new ArrayList<ExperimentSummaryModel>();
+    }
+    this.runningExperiments.add(elem);
+  }
+
+  public List<ExperimentSummaryModel> getRunningExperiments() {
+    return this.runningExperiments;
+  }
+
+  public ExperimentStatistics setRunningExperiments(List<ExperimentSummaryModel> runningExperiments) {
+    this.runningExperiments = runningExperiments;
+    return this;
+  }
+
+  public void unsetRunningExperiments() {
+    this.runningExperiments = null;
+  }
+
+  /** Returns true if field runningExperiments is set (has been assigned a value) and false otherwise */
+  public boolean isSetRunningExperiments() {
+    return this.runningExperiments != null;
+  }
+
+  public void setRunningExperimentsIsSet(boolean value) {
+    if (!value) {
+      this.runningExperiments = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case ALL_EXPERIMENT_COUNT:
+      if (value == null) {
+        unsetAllExperimentCount();
+      } else {
+        setAllExperimentCount((Integer)value);
+      }
+      break;
+
+    case COMPLETED_EXPERIMENT_COUNT:
+      if (value == null) {
+        unsetCompletedExperimentCount();
+      } else {
+        setCompletedExperimentCount((Integer)value);
+      }
+      break;
+
+    case CANCELLED_EXPERIMENT_COUNT:
+      if (value == null) {
+        unsetCancelledExperimentCount();
+      } else {
+        setCancelledExperimentCount((Integer)value);
+      }
+      break;
+
+    case FAILED_EXPERIMENT_COUNT:
+      if (value == null) {
+        unsetFailedExperimentCount();
+      } else {
+        setFailedExperimentCount((Integer)value);
+      }
+      break;
+
+    case CREATED_EXPERIMENT_COUNT:
+      if (value == null) {
+        unsetCreatedExperimentCount();
+      } else {
+        setCreatedExperimentCount((Integer)value);
+      }
+      break;
+
+    case RUNNING_EXPERIMENT_COUNT:
+      if (value == null) {
+        unsetRunningExperimentCount();
+      } else {
+        setRunningExperimentCount((Integer)value);
+      }
+      break;
+
+    case ALL_EXPERIMENTS:
+      if (value == null) {
+        unsetAllExperiments();
+      } else {
+        setAllExperiments((List<ExperimentSummaryModel>)value);
+      }
+      break;
+
+    case COMPLETED_EXPERIMENTS:
+      if (value == null) {
+        unsetCompletedExperiments();
+      } else {
+        setCompletedExperiments((List<ExperimentSummaryModel>)value);
+      }
+      break;
+
+    case FAILED_EXPERIMENTS:
+      if (value == null) {
+        unsetFailedExperiments();
+      } else {
+        setFailedExperiments((List<ExperimentSummaryModel>)value);
+      }
+      break;
+
+    case CANCELLED_EXPERIMENTS:
+      if (value == null) {
+        unsetCancelledExperiments();
+      } else {
+        setCancelledExperiments((List<ExperimentSummaryModel>)value);
+      }
+      break;
+
+    case CREATED_EXPERIMENTS:
+      if (value == null) {
+        unsetCreatedExperiments();
+      } else {
+        setCreatedExperiments((List<ExperimentSummaryModel>)value);
+      }
+      break;
+
+    case RUNNING_EXPERIMENTS:
+      if (value == null) {
+        unsetRunningExperiments();
+      } else {
+        setRunningExperiments((List<ExperimentSummaryModel>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case ALL_EXPERIMENT_COUNT:
+      return Integer.valueOf(getAllExperimentCount());
+
+    case COMPLETED_EXPERIMENT_COUNT:
+      return Integer.valueOf(getCompletedExperimentCount());
+
+    case CANCELLED_EXPERIMENT_COUNT:
+      return Integer.valueOf(getCancelledExperimentCount());
+
+    case FAILED_EXPERIMENT_COUNT:
+      return Integer.valueOf(getFailedExperimentCount());
+
+    case CREATED_EXPERIMENT_COUNT:
+      return Integer.valueOf(getCreatedExperimentCount());
+
+    case RUNNING_EXPERIMENT_COUNT:
+      return Integer.valueOf(getRunningExperimentCount());
+
+    case ALL_EXPERIMENTS:
+      return getAllExperiments();
+
+    case COMPLETED_EXPERIMENTS:
+      return getCompletedExperiments();
+
+    case FAILED_EXPERIMENTS:
+      return getFailedExperiments();
+
+    case CANCELLED_EXPERIMENTS:
+      return getCancelledExperiments();
+
+    case CREATED_EXPERIMENTS:
+      return getCreatedExperiments();
+
+    case RUNNING_EXPERIMENTS:
+      return getRunningExperiments();
+
+    }
+    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 ALL_EXPERIMENT_COUNT:
+      return isSetAllExperimentCount();
+    case COMPLETED_EXPERIMENT_COUNT:
+      return isSetCompletedExperimentCount();
+    case CANCELLED_EXPERIMENT_COUNT:
+      return isSetCancelledExperimentCount();
+    case FAILED_EXPERIMENT_COUNT:
+      return isSetFailedExperimentCount();
+    case CREATED_EXPERIMENT_COUNT:
+      return isSetCreatedExperimentCount();
+    case RUNNING_EXPERIMENT_COUNT:
+      return isSetRunningExperimentCount();
+    case ALL_EXPERIMENTS:
+      return isSetAllExperiments();
+    case COMPLETED_EXPERIMENTS:
+      return isSetCompletedExperiments();
+    case FAILED_EXPERIMENTS:
+      return isSetFailedExperiments();
+    case CANCELLED_EXPERIMENTS:
+      return isSetCancelledExperiments();
+    case CREATED_EXPERIMENTS:
+      return isSetCreatedExperiments();
+    case RUNNING_EXPERIMENTS:
+      return isSetRunningExperiments();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ExperimentStatistics)
+      return this.equals((ExperimentStatistics)that);
+    return false;
+  }
+
+  public boolean equals(ExperimentStatistics that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_allExperimentCount = true;
+    boolean that_present_allExperimentCount = true;
+    if (this_present_allExperimentCount || that_present_allExperimentCount) {
+      if (!(this_present_allExperimentCount && that_present_allExperimentCount))
+        return false;
+      if (this.allExperimentCount != that.allExperimentCount)
+        return false;
+    }
+
+    boolean this_present_completedExperimentCount = true;
+    boolean that_present_completedExperimentCount = true;
+    if (this_present_completedExperimentCount || that_present_completedExperimentCount) {
+      if (!(this_present_completedExperimentCount && that_present_completedExperimentCount))
+        return false;
+      if (this.completedExperimentCount != that.completedExperimentCount)
+        return false;
+    }
+
+    boolean this_present_cancelledExperimentCount = true && this.isSetCancelledExperimentCount();
+    boolean that_present_cancelledExperimentCount = true && that.isSetCancelledExperimentCount();
+    if (this_present_cancelledExperimentCount || that_present_cancelledExperimentCount) {
+      if (!(this_present_cancelledExperimentCount && that_present_cancelledExperimentCount))
+        return false;
+      if (this.cancelledExperimentCount != that.cancelledExperimentCount)
+        return false;
+    }
+
+    boolean this_present_failedExperimentCount = true;
+    boolean that_present_failedExperimentCount = true;
+    if (this_present_failedExperimentCount || that_present_failedExperimentCount) {
+      if (!(this_present_failedExperimentCount && that_present_failedExperimentCount))
+        return false;
+      if (this.failedExperimentCount != that.failedExperimentCount)
+        return false;
+    }
+
+    boolean this_present_createdExperimentCount = true;
+    boolean that_present_createdExperimentCount = true;
+    if (this_present_createdExperimentCount || that_present_createdExperimentCount) {
+      if (!(this_present_createdExperimentCount && that_present_createdExperimentCount))
+        return false;
+      if (this.createdExperimentCount != that.createdExperimentCount)
+        return false;
+    }
+
+    boolean this_present_runningExperimentCount = true;
+    boolean that_present_runningExperimentCount = true;
+    if (this_present_runningExperimentCount || that_present_runningExperimentCount) {
+      if (!(this_present_runningExperimentCount && that_present_runningExperimentCount))
+        return false;
+      if (this.runningExperimentCount != that.runningExperimentCount)
+        return false;
+    }
+
+    boolean this_present_allExperiments = true && this.isSetAllExperiments();
+    boolean that_present_allExperiments = true && that.isSetAllExperiments();
+    if (this_present_allExperiments || that_present_allExperiments) {
+      if (!(this_present_allExperiments && that_present_allExperiments))
+        return false;
+      if (!this.allExperiments.equals(that.allExperiments))
+        return false;
+    }
+
+    boolean this_present_completedExperiments = true && this.isSetCompletedExperiments();
+    boolean that_present_completedExperiments = true && that.isSetCompletedExperiments();
+    if (this_present_completedExperiments || that_present_completedExperiments) {
+      if (!(this_present_completedExperiments && that_present_completedExperiments))
+        return false;
+      if (!this.completedExperiments.equals(that.completedExperiments))
+        return false;
+    }
+
+    boolean this_present_failedExperiments = true && this.isSetFailedExperiments();
+    boolean that_present_failedExperiments = true && that.isSetFailedExperiments();
+    if (this_present_failedExperiments || that_present_failedExperiments) {
+      if (!(this_present_failedExperiments && that_present_failedExperiments))
+        return false;
+      if (!this.failedExperiments.equals(that.failedExperiments))
+        return false;
+    }
+
+    boolean this_present_cancelledExperiments = true && this.isSetCancelledExperiments();
+    boolean that_present_cancelledExperiments = true && that.isSetCancelledExperiments();
+    if (this_present_cancelledExperiments || that_present_cancelledExperiments) {
+      if (!(this_present_cancelledExperiments && that_present_cancelledExperiments))
+        return false;
+      if (!this.cancelledExperiments.equals(that.cancelledExperiments))
+        return false;
+    }
+
+    boolean this_present_createdExperiments = true && this.isSetCreatedExperiments();
+    boolean that_present_createdExperiments = true && that.isSetCreatedExperiments();
+    if (this_present_createdExperiments || that_present_createdExperiments) {
+      if (!(this_present_createdExperiments && that_present_createdExperiments))
+        return false;
+      if (!this.createdExperiments.equals(that.createdExperiments))
+        return false;
+    }
+
+    boolean this_present_runningExperiments = true && this.isSetRunningExperiments();
+    boolean that_present_runningExperiments = true && that.isSetRunningExperiments();
+    if (this_present_runningExperiments || that_present_runningExperiments) {
+      if (!(this_present_runningExperiments && that_present_runningExperiments))
+        return false;
+      if (!this.runningExperiments.equals(that.runningExperiments))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_allExperimentCount = true;
+    list.add(present_allExperimentCount);
+    if (present_allExperimentCount)
+      list.add(allExperimentCount);
+
+    boolean present_completedExperimentCount = true;
+    list.add(present_completedExperimentCount);
+    if (present_completedExperimentCount)
+      list.add(completedExperimentCount);
+
+    boolean present_cancelledExperimentCount = true && (isSetCancelledExperimentCount());
+    list.add(present_cancelledExperimentCount);
+    if (present_cancelledExperimentCount)
+      list.add(cancelledExperimentCount);
+
+    boolean present_failedExperimentCount = true;
+    list.add(present_failedExperimentCount);
+    if (present_failedExperimentCount)
+      list.add(failedExperimentCount);
+
+    boolean present_createdExperimentCount = true;
+    list.add(present_createdExperimentCount);
+    if (present_createdExperimentCount)
+      list.add(createdExperimentCount);
+
+    boolean present_runningExperimentCount = true;
+    list.add(present_runningExperimentCount);
+    if (present_runningExperimentCount)
+      list.add(runningExperimentCount);
+
+    boolean present_allExperiments = true && (isSetAllExperiments());
+    list.add(present_allExperiments);
+    if (present_allExperiments)
+      list.add(allExperiments);
+
+    boolean present_completedExperiments = true && (isSetCompletedExperiments());
+    list.add(present_completedExperiments);
+    if (present_completedExperiments)
+      list.add(completedExperiments);
+
+    boolean present_failedExperiments = true && (isSetFailedExperiments());
+    list.add(present_failedExperiments);
+    if (present_failedExperiments)
+      list.add(failedExperiments);
+
+    boolean present_cancelledExperiments = true && (isSetCancelledExperiments());
+    list.add(present_cancelledExperiments);
+    if (present_cancelledExperiments)
+      list.add(cancelledExperiments);
+
+    boolean present_createdExperiments = true && (isSetCreatedExperiments());
+    list.add(present_createdExperiments);
+    if (present_createdExperiments)
+      list.add(createdExperiments);
+
+    boolean present_runningExperiments = true && (isSetRunningExperiments());
+    list.add(present_runningExperiments);
+    if (present_runningExperiments)
+      list.add(runningExperiments);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ExperimentStatistics other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetAllExperimentCount()).compareTo(other.isSetAllExperimentCount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAllExperimentCount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.allExperimentCount, other.allExperimentCount);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCompletedExperimentCount()).compareTo(other.isSetCompletedExperimentCount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCompletedExperimentCount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.completedExperimentCount, other.completedExperimentCount);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCancelledExperimentCount()).compareTo(other.isSetCancelledExperimentCount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCancelledExperimentCount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cancelledExperimentCount, other.cancelledExperimentCount);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFailedExperimentCount()).compareTo(other.isSetFailedExperimentCount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFailedExperimentCount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.failedExperimentCount, other.failedExperimentCount);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCreatedExperimentCount()).compareTo(other.isSetCreatedExperimentCount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCreatedExperimentCount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.createdExperimentCount, other.createdExperimentCount);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetRunningExperimentCount()).compareTo(other.isSetRunningExperimentCount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRunningExperimentCount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.runningExperimentCount, other.runningExperimentCount);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAllExperiments()).compareTo(other.isSetAllExperiments());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAllExperiments()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.allExperiments, other.allExperiments);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCompletedExperiments()).compareTo(other.isSetCompletedExperiments());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCompletedExperiments()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.completedExperiments, other.completedExperiments);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFailedExperiments()).compareTo(other.isSetFailedExperiments());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFailedExperiments()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.failedExperiments, other.failedExperiments);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCancelledExperiments()).compareTo(other.isSetCancelledExperiments());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCancelledExperiments()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cancelledExperiments, other.cancelledExperiments);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCreatedExperiments()).compareTo(other.isSetCreatedExperiments());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCreatedExperiments()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.createdExperiments, other.createdExperiments);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetRunningExperiments()).compareTo(other.isSetRunningExperiments());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRunningExperiments()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.runningExperiments, other.runningExperiments);
+      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("ExperimentStatistics(");
+    boolean first = true;
+
+    sb.append("allExperimentCount:");
+    sb.append(this.allExperimentCount);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("completedExperimentCount:");
+    sb.append(this.completedExperimentCount);
+    first = false;
+    if (isSetCancelledExperimentCount()) {
+      if (!first) sb.append(", ");
+      sb.append("cancelledExperimentCount:");
+      sb.append(this.cancelledExperimentCount);
+      first = false;
+    }
+    if (!first) sb.append(", ");
+    sb.append("failedExperimentCount:");
+    sb.append(this.failedExperimentCount);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("createdExperimentCount:");
+    sb.append(this.createdExperimentCount);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("runningExperimentCount:");
+    sb.append(this.runningExperimentCount);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("allExperiments:");
+    if (this.allExperiments == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.allExperiments);
+    }
+    first = false;
+    if (isSetCompletedExperiments()) {
+      if (!first) sb.append(", ");
+      sb.append("completedExperiments:");
+      if (this.completedExperiments == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.completedExperiments);
+      }
+      first = false;
+    }
+    if (isSetFailedExperiments()) {
+      if (!first) sb.append(", ");
+      sb.append("failedExperiments:");
+      if (this.failedExperiments == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.failedExperiments);
+      }
+      first = false;
+    }
+    if (isSetCancelledExperiments()) {
+      if (!first) sb.append(", ");
+      sb.append("cancelledExperiments:");
+      if (this.cancelledExperiments == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.cancelledExperiments);
+      }
+      first = false;
+    }
+    if (isSetCreatedExperiments()) {
+      if (!first) sb.append(", ");
+      sb.append("createdExperiments:");
+      if (this.createdExperiments == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.createdExperiments);
+      }
+      first = false;
+    }
+    if (isSetRunningExperiments()) {
+      if (!first) sb.append(", ");
+      sb.append("runningExperiments:");
+      if (this.runningExperiments == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.runningExperiments);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // alas, we cannot check 'allExperimentCount' because it's a primitive and you chose the non-beans generator.
+    // alas, we cannot check 'completedExperimentCount' because it's a primitive and you chose the non-beans generator.
+    // alas, we cannot check 'failedExperimentCount' because it's a primitive and you chose the non-beans generator.
+    // alas, we cannot check 'createdExperimentCount' because it's a primitive and you chose the non-beans generator.
+    // alas, we cannot check 'runningExperimentCount' because it's a primitive and you chose the non-beans generator.
+    if (allExperiments == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'allExperiments' was not present! 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 ExperimentStatisticsStandardSchemeFactory implements SchemeFactory {
+    public ExperimentStatisticsStandardScheme getScheme() {
+      return new ExperimentStatisticsStandardScheme();
+    }
+  }
+
+  private static class ExperimentStatisticsStandardScheme extends StandardScheme<ExperimentStatistics> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ExperimentStatistics 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: // ALL_EXPERIMENT_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.allExperimentCount = iprot.readI32();
+              struct.setAllExperimentCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // COMPLETED_EXPERIMENT_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.completedExperimentCount = iprot.readI32();
+              struct.setCompletedExperimentCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // CANCELLED_EXPERIMENT_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.cancelledExperimentCount = iprot.readI32();
+              struct.setCancelledExperimentCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // FAILED_EXPERIMENT_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.failedExperimentCount = iprot.readI32();
+              struct.setFailedExperimentCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // CREATED_EXPERIMENT_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.createdExperimentCount = iprot.readI32();
+              struct.setCreatedExperimentCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // RUNNING_EXPERIMENT_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.runningExperimentCount = iprot.readI32();
+              struct.setRunningExperimentCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // ALL_EXPERIMENTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list40 = iprot.readListBegin();
+                struct.allExperiments = new ArrayList<ExperimentSummaryModel>(_list40.size);
+                ExperimentSummaryModel _elem41;
+                for (int _i42 = 0; _i42 < _list40.size; ++_i42)
+                {
+                  _elem41 = new ExperimentSummaryModel();
+                  _elem41.read(iprot);
+                  struct.allExperiments.add(_elem41);
+                }
+                iprot.readListEnd();
+              }
+              struct.setAllExperimentsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // COMPLETED_EXPERIMENTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list43 = iprot.readListBegin();
+                struct.completedExperiments = new ArrayList<ExperimentSummaryModel>(_list43.size);
+                ExperimentSummaryModel _elem44;
+                for (int _i45 = 0; _i45 < _list43.size; ++_i45)
+                {
+                  _elem44 = new ExperimentSummaryModel();
+                  _elem44.read(iprot);
+                  struct.completedExperiments.add(_elem44);
+                }
+                iprot.readListEnd();
+              }
+              struct.setCompletedExperimentsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // FAILED_EXPERIMENTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list46 = iprot.readListBegin();
+                struct.failedExperiments = new ArrayList<ExperimentSummaryModel>(_list46.size);
+                ExperimentSummaryModel _elem47;
+                for (int _i48 = 0; _i48 < _list46.size; ++_i48)
+                {
+                  _elem47 = new ExperimentSummaryModel();
+                  _elem47.read(iprot);
+                  struct.failedExperiments.add(_elem47);
+                }
+                iprot.readListEnd();
+              }
+              struct.setFailedExperimentsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // CANCELLED_EXPERIMENTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list49 = iprot.readListBegin();
+                struct.cancelledExperiments = new ArrayList<ExperimentSummaryModel>(_list49.size);
+                ExperimentSummaryModel _elem50;
+                for (int _i51 = 0; _i51 < _list49.size; ++_i51)
+                {
+                  _elem50 = new ExperimentSummaryModel();
+                  _elem50.read(iprot);
+                  struct.cancelledExperiments.add(_elem50);
+                }
+                iprot.readListEnd();
+              }
+              struct.setCancelledExperimentsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // CREATED_EXPERIMENTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list52 = iprot.readListBegin();
+                struct.createdExperiments = new ArrayList<ExperimentSummaryModel>(_list52.size);
+                ExperimentSummaryModel _elem53;
+                for (int _i54 = 0; _i54 < _list52.size; ++_i54)
+                {
+                  _elem53 = new ExperimentSummaryModel();
+                  _elem53.read(iprot);
+                  struct.createdExperiments.add(_elem53);
+                }
+                iprot.readListEnd();
+              }
+              struct.setCreatedExperimentsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // RUNNING_EXPERIMENTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list55 = iprot.readListBegin();
+                struct.runningExperiments = new ArrayList<ExperimentSummaryModel>(_list55.size);
+                ExperimentSummaryModel _elem56;
+                for (int _i57 = 0; _i57 < _list55.size; ++_i57)
+                {
+                  _elem56 = new ExperimentSummaryModel();
+                  _elem56.read(iprot);
+                  struct.runningExperiments.add(_elem56);
+                }
+                iprot.readListEnd();
+              }
+              struct.setRunningExperimentsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetAllExperimentCount()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'allExperimentCount' was not found in serialized data! Struct: " + toString());
+      }
+      if (!struct.isSetCompletedExperimentCount()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'completedExperimentCount' was not found in serialized data! Struct: " + toString());
+      }
+      if (!struct.isSetFailedExperimentCount()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'failedExperimentCount' was not found in serialized data! Struct: " + toString());
+      }
+      if (!struct.isSetCreatedExperimentCount()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'createdExperimentCount' was not found in serialized data! Struct: " + toString());
+      }
+      if (!struct.isSetRunningExperimentCount()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'runningExperimentCount' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ExperimentStatistics struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(ALL_EXPERIMENT_COUNT_FIELD_DESC);
+      oprot.writeI32(struct.allExperimentCount);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(COMPLETED_EXPERIMENT_COUNT_FIELD_DESC);
+      oprot.writeI32(struct.completedExperimentCount);
+      oprot.writeFieldEnd();
+      if (struct.isSetCancelledExperimentCount()) {
+        oprot.writeFieldBegin(CANCELLED_EXPERIMENT_COUNT_FIELD_DESC);
+        oprot.writeI32(struct.cancelledExperimentCount);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(FAILED_EXPERIMENT_COUNT_FIELD_DESC);
+      oprot.writeI32(struct.failedExperimentCount);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(CREATED_EXPERIMENT_COUNT_FIELD_DESC);
+      oprot.writeI32(struct.createdExperimentCount);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(RUNNING_EXPERIMENT_COUNT_FIELD_DESC);
+      oprot.writeI32(struct.runningExperimentCount);
+      oprot.writeFieldEnd();
+      if (struct.allExperiments != null) {
+        oprot.writeFieldBegin(ALL_EXPERIMENTS_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.allExperiments.size()));
+          for (ExperimentSummaryModel _iter58 : struct.allExperiments)
+          {
+            _iter58.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.completedExperiments != null) {
+        if (struct.isSetCompletedExperiments()) {
+          oprot.writeFieldBegin(COMPLETED_EXPERIMENTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.completedExperiments.size()));
+            for (ExperimentSummaryModel _iter59 : struct.completedExperiments)
+            {
+              _iter59.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.failedExperiments != null) {
+        if (struct.isSetFailedExperiments()) {
+          oprot.writeFieldBegin(FAILED_EXPERIMENTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.failedExperiments.size()));
+            for (ExperimentSummaryModel _iter60 : struct.failedExperiments)
+            {
+              _iter60.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.cancelledExperiments != null) {
+        if (struct.isSetCancelledExperiments()) {
+          oprot.writeFieldBegin(CANCELLED_EXPERIMENTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.cancelledExperiments.size()));
+            for (ExperimentSummaryModel _iter61 : struct.cancelledExperiments)
+            {
+              _iter61.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.createdExperiments != null) {
+        if (struct.isSetCreatedExperiments()) {
+          oprot.writeFieldBegin(CREATED_EXPERIMENTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.createdExperiments.size()));
+            for (ExperimentSummaryModel _iter62 : struct.createdExperiments)
+            {
+              _iter62.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.runningExperiments != null) {
+        if (struct.isSetRunningExperiments()) {
+          oprot.writeFieldBegin(RUNNING_EXPERIMENTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.runningExperiments.size()));
+            for (ExperimentSummaryModel _iter63 : struct.runningExperiments)
+            {
+              _iter63.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ExperimentStatisticsTupleSchemeFactory implements SchemeFactory {
+    public ExperimentStatisticsTupleScheme getScheme() {
+      return new ExperimentStatisticsTupleScheme();
+    }
+  }
+
+  private static class ExperimentStatisticsTupleScheme extends TupleScheme<ExperimentStatistics> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ExperimentStatistics struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.allExperimentCount);
+      oprot.writeI32(struct.completedExperimentCount);
+      oprot.writeI32(struct.failedExperimentCount);
+      oprot.writeI32(struct.createdExperimentCount);
+      oprot.writeI32(struct.runningExperimentCount);
+      {
+        oprot.writeI32(struct.allExperiments.size());
+        for (ExperimentSummaryModel _iter64 : struct.allExperiments)
+        {
+          _iter64.write(oprot);
+        }
+      }
+      BitSet optionals = new BitSet();
+      if (struct.isSetCancelledExperimentCount()) {
+        optionals.set(0);
+      }
+      if (struct.isSetCompletedExperiments()) {
+        optionals.set(1);
+      }
+      if (struct.isSetFailedExperiments()) {
+        optionals.set(2);
+      }
+      if (struct.isSetCancelledExperiments()) {
+        optionals.set(3);
+      }
+      if (struct.isSetCreatedExperiments()) {
+        optionals.set(4);
+      }
+      if (struct.isSetRunningExperiments()) {
+        optionals.set(5);
+      }
+      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetCancelledExperimentCount()) {
+        oprot.writeI32(struct.cancelledExperimentCount);
+      }
+      if (struct.isSetCompletedExperiments()) {
+        {
+          oprot.writeI32(struct.completedExperiments.size());
+          for (ExperimentSummaryModel _iter65 : struct.completedExperiments)
+          {
+            _iter65.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetFailedExperiments()) {
+        {
+          oprot.writeI32(struct.failedExperiments.size());
+          for (ExperimentSummaryModel _iter66 : struct.failedExperiments)
+          {
+            _iter66.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetCancelledExperiments()) {
+        {
+          oprot.writeI32(struct.cancelledExperiments.size());
+          for (ExperimentSummaryModel _iter67 : struct.cancelledExperiments)
+          {
+            _iter67.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetCreatedExperiments()) {
+        {
+          oprot.writeI32(struct.createdExperiments.size());
+          for (ExperimentSummaryModel _iter68 : struct.createdExperiments)
+          {
+            _iter68.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetRunningExperiments()) {
+        {
+          oprot.writeI32(struct.runningExperiments.size());
+          for (ExperimentSummaryModel _iter69 : struct.runningExperiments)
+          {
+            _iter69.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ExperimentStatistics struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.allExperimentCount = iprot.readI32();
+      struct.setAllExperimentCountIsSet(true);
+      struct.completedExperimentCount = iprot.readI32();
+      struct.setCompletedExperimentCountIsSet(true);
+      struct.failedExperimentCount = iprot.readI32();
+      struct.setFailedExperimentCountIsSet(true);
+      struct.createdExperimentCount = iprot.readI32();
+      struct.setCreatedExperimentCountIsSet(true);
+      struct.runningExperimentCount = iprot.readI32();
+      struct.setRunningExperimentCountIsSet(true);
+      {
+        org.apache.thrift.protocol.TList _list70 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+        struct.allExperiments = new ArrayList<ExperimentSummaryModel>(_list70.size);
+        ExperimentSummaryModel _elem71;
+        for (int _i72 = 0; _i72 < _list70.size; ++_i72)
+        {
+          _elem71 = new ExperimentSummaryModel();
+          _elem71.read(iprot);
+          struct.allExperiments.add(_elem71);
+        }
+      }
+      struct.setAllExperimentsIsSet(true);
+      BitSet incoming = iprot.readBitSet(6);
+      if (incoming.get(0)) {
+        struct.cancelledExperimentCount = iprot.readI32();
+        struct.setCancelledExperimentCountIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TList _list73 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.completedExperiments = new ArrayList<ExperimentSummaryModel>(_list73.size);
+          ExperimentSummaryModel _elem74;
+          for (int _i75 = 0; _i75 < _list73.size; ++_i75)
+          {
+            _elem74 = new ExperimentSummaryModel();
+            _elem74.read(iprot);
+            struct.completedExperiments.add(_elem74);
+          }
+        }
+        struct.setCompletedExperimentsIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list76 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.failedExperiments = new ArrayList<ExperimentSummaryModel>(_list76.size);
+          ExperimentSummaryModel _elem77;
+          for (int _i78 = 0; _i78 < _list76.size; ++_i78)
+          {
+            _elem77 = new ExperimentSummaryModel();
+            _elem77.read(iprot);
+            struct.failedExperiments.add(_elem77);
+          }
+        }
+        struct.setFailedExperimentsIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list79 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.cancelledExperiments = new ArrayList<ExperimentSummaryModel>(_list79.size);
+          ExperimentSummaryModel _elem80;
+          for (int _i81 = 0; _i81 < _list79.size; ++_i81)
+          {
+            _elem80 = new ExperimentSummaryModel();
+            _elem80.read(iprot);
+            struct.cancelledExperiments.add(_elem80);
+          }
+        }
+        struct.setCancelledExperimentsIsSet(true);
+      }
+      if (incoming.get(4)) {
+        {
+          org.apache.thrift.protocol.TList _list82 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.createdExperiments = new ArrayList<ExperimentSummaryModel>(_list82.size);
+          ExperimentSummaryModel _elem83;
+          for (int _i84 = 0; _i84 < _list82.size; ++_i84)
+          {
+            _elem83 = new ExperimentSummaryModel();
+            _elem83.read(iprot);
+            struct.createdExperiments.add(_elem83);
+          }
+        }
+        struct.setCreatedExperimentsIsSet(true);
+      }
+      if (incoming.get(5)) {
+        {
+          org.apache.thrift.protocol.TList _list85 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.runningExperiments = new ArrayList<ExperimentSummaryModel>(_list85.size);
+          ExperimentSummaryModel _elem86;
+          for (int _i87 = 0; _i87 < _list85.size; ++_i87)
+          {
+            _elem86 = new ExperimentSummaryModel();
+            _elem86.read(iprot);
+            struct.runningExperiments.add(_elem86);
+          }
+        }
+        struct.setRunningExperimentsIsSet(true);
+      }
+    }
+  }
+
+}
+


[14/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
index d29d804..61daaca 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  *  An enumeration of commonly used manager commands.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ResourceJobManager implements org.apache.thrift.TBase<ResourceJobManager, ResourceJobManager._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceJobManager> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceJobManager");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
index b9533d6..1c76451 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  *    the same. Example: *@*.example.com or *@example.com
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
index 2e62595..d66ae6a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
@@ -59,7 +59,7 @@ import org.slf4j.LoggerFactory;
  * authenticationMode
  *  The authenticationMode defines the way certificate is fetched.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class UnicoreJobSubmission implements org.apache.thrift.TBase<UnicoreJobSubmission, UnicoreJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index 1d877c6..8ddece4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -85,7 +85,7 @@ import org.slf4j.LoggerFactory;
  *   default credential store.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ComputeResourcePreference implements org.apache.thrift.TBase<ComputeResourcePreference, ComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourcePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourcePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
index d0075cc..7a1048c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *  List of resource preferences for each of the registered compute resources.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayResourceProfile, GatewayResourceProfile._Fields>, java.io.Serializable, Cloneable, Comparable<GatewayResourceProfile> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GatewayResourceProfile");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
index 7e74ec4..89c8242 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class StoragePreference implements org.apache.thrift.TBase<StoragePreference, StoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<StoragePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StoragePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
index da002d7..e6891f3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class StorageResourceDescription implements org.apache.thrift.TBase<StorageResourceDescription, StorageResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<StorageResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StorageResourceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
index e13c8e2..0240596 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObjectType, InputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<InputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
index 1a824a2..27b9ce5 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataObjectType, OutputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<OutputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OutputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
index 7816f31..94898a5 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ErrorModel implements org.apache.thrift.TBase<ErrorModel, ErrorModel._Fields>, java.io.Serializable, Cloneable, Comparable<ErrorModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ErrorModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
index 3bb75cd..bca939a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
index dfc2f9b..e8a532b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * during the experiment launch operation
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
index c0c534d..291385a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class DataMovementInterface implements org.apache.thrift.TBase<DataMovementInterface, DataMovementInterface._Fields>, java.io.Serializable, Cloneable, Comparable<DataMovementInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataMovementInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
index 205a241..b3f8e3e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class GridFTPDataMovement implements org.apache.thrift.TBase<GridFTPDataMovement, GridFTPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<GridFTPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GridFTPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
index c5cd7a4..af27f92 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-defualt port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class LOCALDataMovement implements org.apache.thrift.TBase<LOCALDataMovement, LOCALDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
index aa536f5..053a635 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
index 047d3b7..f663b09 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * unicoreEndPointURL:
  *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class UnicoreDataMovement implements org.apache.thrift.TBase<UnicoreDataMovement, UnicoreDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
index 5816fbe..b645a28 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  * parameter:  If the error applied to a particular input parameter, this will
  *   indicate which parameter.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class AiravataClientException extends TException implements org.apache.thrift.TBase<AiravataClientException, AiravataClientException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataClientException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataClientException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
index f7a3047..de6302e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  * message:  This may contain additional information about the error
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class AiravataSystemException extends TException implements org.apache.thrift.TBase<AiravataSystemException, AiravataSystemException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataSystemException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataSystemException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
index 8df608d..5f967f1 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the cause of the authorization failure.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class AuthenticationException extends TException implements org.apache.thrift.TBase<AuthenticationException, AuthenticationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthenticationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthenticationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
index e057c4c..d8cd479 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the authorization failure message
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class AuthorizationException extends TException implements org.apache.thrift.TBase<AuthorizationException, AuthorizationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthorizationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthorizationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
index 017659d..4c88559 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * 
  * key:  The value passed from the client in the identifier, which was not found.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ExperimentNotFoundException extends TException implements org.apache.thrift.TBase<ExperimentNotFoundException, ExperimentNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentNotFoundException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
index e0a5466..e848315 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the associated error message.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class InvalidRequestException extends TException implements org.apache.thrift.TBase<InvalidRequestException, InvalidRequestException._Fields>, java.io.Serializable, Cloneable, Comparable<InvalidRequestException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidRequestException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
index 3c73205..3f92378 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class LaunchValidationException extends TException implements org.apache.thrift.TBase<LaunchValidationException, LaunchValidationException._Fields>, java.io.Serializable, Cloneable, Comparable<LaunchValidationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LaunchValidationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
index 4a4c09b..e8e3caf 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 2:  optional  string key
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ProjectNotFoundException extends TException implements org.apache.thrift.TBase<ProjectNotFoundException, ProjectNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ProjectNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProjectNotFoundException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
index e85624e..7c9cc3e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
@@ -54,7 +54,7 @@ import org.slf4j.LoggerFactory;
 /**
  * This exception is thrown when RPC timeout gets exceeded.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class TimedOutException extends TException implements org.apache.thrift.TBase<TimedOutException, TimedOutException._Fields>, java.io.Serializable, Cloneable, Comparable<TimedOutException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TimedOutException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
index ce63391..bef6a0f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
index 33530a9..b3a509e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
index 4199b14..482931a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  * experimentDescription:
  *    The verbose description of the experiment. This is an optional parameter.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel, ExperimentModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
index 05b4b53..3143817 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentStatistics, ExperimentStatistics._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatistics> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatistics");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
index 3d54453..4aa7827 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class ExperimentSummaryModel implements org.apache.thrift.TBase<ExperimentSummaryModel, ExperimentSummaryModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentSummaryModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentSummaryModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
index 9150a33..c20b721 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class UserConfigurationDataModel implements org.apache.thrift.TBase<UserConfigurationDataModel, UserConfigurationDataModel._Fields>, java.io.Serializable, Cloneable, Comparable<UserConfigurationDataModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserConfigurationDataModel");
 


[02/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPStorageClient.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPStorageClient.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPStorageClient.java
deleted file mode 100644
index 69f1206..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPStorageClient.java
+++ /dev/null
@@ -1,406 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.scp;
-
-import com.jcraft.jsch.*;
-import org.apache.airavata.file.manager.core.remote.client.RemoteStorageClient;
-import org.apache.airavata.model.file.transfer.LSEntryModel;
-import org.apache.commons.io.IOUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.*;
-import java.util.List;
-import java.util.Properties;
-import java.util.UUID;
-
-public class SCPStorageClient implements RemoteStorageClient {
-    private final static Logger logger = LoggerFactory.getLogger(SCPStorageClient.class);
-
-    private JSch jSch;
-    private Session session;
-
-    /**
-     * Constructor
-     * @param hostName
-     * @param port
-     * @param loginUsername
-     * @param password
-     * @throws JSchException
-     */
-    public SCPStorageClient(String hostName, int port, String loginUsername, String password) throws JSchException {
-        Properties config = new java.util.Properties();
-        config.put("StrictHostKeyChecking", "no");
-        jSch = new JSch();
-        jSch.addIdentity(loginUsername, password);
-        session = jSch.getSession(loginUsername, hostName, port);
-        session.setConfig(config);
-        session.connect();
-    }
-
-    /**
-     * Constructor
-     * @param hostName
-     * @param port
-     * @param loginUsername
-     * @param privateKey
-     * @param publicKey
-     * @param passPhrase
-     * @throws JSchException
-     */
-    public SCPStorageClient(String hostName, int port, String loginUsername, byte[] privateKey, byte[] publicKey,
-                            byte[] passPhrase) throws JSchException {
-        Properties config = new java.util.Properties();
-        config.put("StrictHostKeyChecking", "no");
-        jSch = new JSch();
-        jSch.addIdentity(UUID.randomUUID().toString(), privateKey, publicKey, passPhrase);
-        session = jSch.getSession(loginUsername, hostName, port);
-        session.setConfig(config);
-        session.connect();
-    }
-
-
-    /**
-     * Reads a remote file, write it to local temporary directory and returns a File
-     *
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public File readFile(String filePath) throws Exception {
-        if (!session.isConnected())
-            session.connect();
-
-        FileOutputStream fos;
-        String localFile = System.getProperty("java.io.tmpdir") + File.separator + UUID.randomUUID().toString();
-        String prefix = null;
-        if (new File(localFile).isDirectory()) {
-            prefix = localFile + File.separator;
-        }
-
-        // exec 'scp -f remotefile' remotely
-        String command = "scp -f " + filePath;
-        Channel channel = session.openChannel("exec");
-        ((ChannelExec) channel).setCommand(command);
-
-        StandardOutReader stdOutReader = new StandardOutReader();
-        ((ChannelExec) channel).setErrStream(stdOutReader.getStandardError());
-        // get I/O streams for remote scp
-        OutputStream out = channel.getOutputStream();
-        InputStream in = channel.getInputStream();
-
-        if (!channel.isClosed()) {
-            channel.connect();
-        }
-
-        byte[] buf = new byte[1024];
-
-        // send '\0'
-        buf[0] = 0;
-        out.write(buf, 0, 1);
-        out.flush();
-
-        while (true) {
-            int c = checkAck(in);
-            if (c != 'C') {
-                break;
-            }
-
-            // read '0644 '
-            in.read(buf, 0, 5);
-
-            long filesize = 0L;
-            while (true) {
-                if (in.read(buf, 0, 1) < 0) {
-                    // error
-                    break;
-                }
-                if (buf[0] == ' ') break;
-                filesize = filesize * 10L + (long) (buf[0] - '0');
-            }
-
-            String file = null;
-            for (int i = 0; ; i++) {
-                in.read(buf, i, 1);
-                if (buf[i] == (byte) 0x0a) {
-                    file = new String(buf, 0, i);
-                    break;
-                }
-            }
-
-            // send '\0'
-            buf[0] = 0;
-            out.write(buf, 0, 1);
-            out.flush();
-
-            // read a content of lfile
-            localFile = prefix == null ? localFile : prefix + file;
-            fos = new FileOutputStream(localFile);
-            int foo;
-            while (true) {
-                if (buf.length < filesize) foo = buf.length;
-                else foo = (int) filesize;
-                foo = in.read(buf, 0, foo);
-                if (foo < 0) {
-                    // error
-                    break;
-                }
-                fos.write(buf, 0, foo);
-                filesize -= foo;
-                if (filesize == 0L) break;
-            }
-            fos.close();
-            fos = null;
-
-            if (checkAck(in) != 0) {
-                String error = "Error transferring the file content";
-                logger.error(error);
-                throw new SCPApiException(error);
-            }
-
-            // send '\0'
-            buf[0] = 0;
-            out.write(buf, 0, 1);
-            out.flush();
-        }
-        stdOutReader.onOutput(channel);
-        if (stdOutReader.getStdErrorString().contains("scp:")) {
-            throw new SCPApiException(stdOutReader.getStdErrorString());
-        }
-
-        return new File(localFile);
-    }
-
-    /**
-     * Writes the source file in the local storage to specified path in the remote storage
-     *
-     * @param sourceFile
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public void writeFile(File sourceFile, String filePath) throws Exception {
-        if (!session.isConnected())
-            session.connect();
-
-        FileInputStream fis;
-        String localFile = sourceFile.getAbsolutePath();
-        boolean ptimestamp = true;
-
-        // exec 'scp -t rfile' remotely
-        String command = "scp " + (ptimestamp ? "-p" : "") + " -t " + filePath;
-        Channel channel = session.openChannel("exec");
-
-        StandardOutReader stdOutReader = new StandardOutReader();
-        ((ChannelExec) channel).setErrStream(stdOutReader.getStandardError());
-        ((ChannelExec) channel).setCommand(command);
-
-        // get I/O streams for remote scp
-        OutputStream out = channel.getOutputStream();
-        InputStream in = channel.getInputStream();
-
-        channel.connect();
-
-        if (checkAck(in) != 0) {
-            String error = "Error Reading input Stream";
-            logger.error(error);
-            throw new SCPApiException(error);
-        }
-
-        File _lfile = new File(localFile);
-
-        if (ptimestamp) {
-            command = "T" + (_lfile.lastModified() / 1000) + " 0";
-            // The access time should be sent here,
-            // but it is not accessible with JavaAPI ;-<
-            command += (" " + (_lfile.lastModified() / 1000) + " 0\n");
-            out.write(command.getBytes());
-            out.flush();
-            if (checkAck(in) != 0) {
-                String error = "Error Reading input Stream";
-                logger.error(error);
-                throw new SCPApiException(error);
-            }
-        }
-
-        // send "C0644 filesize filename", where filename should not include '/'
-        long filesize = _lfile.length();
-        command = "C0644 " + filesize + " ";
-        if (localFile.lastIndexOf('/') > 0) {
-            command += localFile.substring(localFile.lastIndexOf('/') + 1);
-        } else {
-            command += localFile;
-        }
-        command += "\n";
-        out.write(command.getBytes());
-        out.flush();
-        if (checkAck(in) != 0) {
-            String error = "Error Reading input Stream";
-            logger.error(error);
-            throw new SCPApiException(error);
-        }
-
-        // send a content of localFile
-        fis = new FileInputStream(localFile);
-        byte[] buf = new byte[1024];
-        while (true) {
-            int len = fis.read(buf, 0, buf.length);
-            if (len <= 0) break;
-            out.write(buf, 0, len); //out.flush();
-        }
-        fis.close();
-        fis = null;
-        // send '\0'
-        buf[0] = 0;
-        out.write(buf, 0, 1);
-        out.flush();
-        if (checkAck(in) != 0) {
-            String error = "Error Reading input Stream";
-            logger.error(error);
-            throw new SCPApiException(error);
-        }
-        out.close();
-        stdOutReader.onOutput(channel);
-
-
-        channel.disconnect();
-        if (stdOutReader.getStdErrorString().contains("scp:")) {
-            throw new SCPApiException(stdOutReader.getStdErrorString());
-        }
-    }
-
-    /**
-     * Returns a directory listing of the specified directory
-     *
-     * @param directoryPath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public List<LSEntryModel> getDirectoryListing(String directoryPath) throws Exception {
-        return null;
-    }
-
-    /**
-     * Move the specified file from source to destination within the same storage resource
-     *
-     * @param currentPath
-     * @param newPath
-     * @throws Exception
-     */
-    @Override
-    public void moveFile(String currentPath, String newPath) throws Exception {
-
-    }
-
-    /**
-     * @param sourcePath
-     * @param destinationPath
-     * @throws Exception
-     */
-    @Override
-    public void copyFile(String sourcePath, String destinationPath) throws Exception {
-
-    }
-
-    /**
-     * Rename file with the given name
-     *
-     * @param filePath
-     * @param newFileName
-     * @throws Exception
-     */
-    @Override
-    public void renameFile(String filePath, String newFileName) throws Exception {
-
-    }
-
-    /**
-     * Delete the specified file
-     *
-     * @param filePath
-     * @throws Exception
-     */
-    @Override
-    public void deleteFile(String filePath) throws Exception {
-
-    }
-
-    /**
-     * Create new directory in the specified file
-     *
-     * @param newDirPath
-     * @throws Exception
-     */
-    @Override
-    public void mkdir(String newDirPath) throws Exception {
-
-    }
-
-    /**
-     * Checks whether specified file exists in the remote storage system
-     *
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public boolean checkFileExists(String filePath) throws Exception {
-        return false;
-    }
-
-    /**
-     * Checks whether the given path is a directory
-     *
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public boolean checkIsDirectory(String filePath) throws Exception {
-        return false;
-    }
-
-    private int checkAck(InputStream in) throws IOException {
-        int b = in.read();
-        if (b == 0) return b;
-        if (b == -1) return b;
-
-        if (b == 1 || b == 2) {
-            StringBuffer sb = new StringBuffer();
-            int c;
-            do {
-                c = in.read();
-                sb.append((char) c);
-            }
-            while (c != '\n');
-            if (b == 1) { // error
-                System.out.print(sb.toString());
-            }
-            if (b == 2) { // fatal error
-                System.out.print(sb.toString());
-            }
-        }
-        return b;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/StandardOutReader.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/StandardOutReader.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/StandardOutReader.java
deleted file mode 100644
index d3de445..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/StandardOutReader.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.scp;
-
-import com.jcraft.jsch.Channel;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-public class StandardOutReader implements CommandOutput {
-
-    private static final Logger logger = LoggerFactory.getLogger(StandardOutReader.class);
-    String stdOutputString = null;
-    ByteArrayOutputStream errorStream = new ByteArrayOutputStream();
-    private int exitCode;
-
-    public void onOutput(Channel channel) {
-        try {
-            StringBuffer pbsOutput = new StringBuffer("");
-            InputStream inputStream =  channel.getInputStream();
-            byte[] tmp = new byte[1024];
-            do {
-                while (inputStream.available() > 0) {
-                    int i = inputStream.read(tmp, 0, 1024);
-                    if (i < 0) break;
-                    pbsOutput.append(new String(tmp, 0, i));
-                }
-            } while (!channel.isClosed()) ;
-            String output = pbsOutput.toString();
-            this.setStdOutputString(output);
-        } catch (IOException e) {
-            logger.error(e.getMessage(), e);
-        }
-
-    }
-
-
-    public void exitCode(int code) {
-        System.out.println("Program exit code - " + code);
-        this.exitCode = code;
-    }
-
-    @Override
-    public int getExitCode() {
-        return exitCode;
-    }
-
-    public String getStdOutputString() {
-        return stdOutputString;
-    }
-
-    public void setStdOutputString(String stdOutputString) {
-        this.stdOutputString = stdOutputString;
-    }
-
-    public String getStdErrorString() {
-        return errorStream.toString();
-    }
-
-    public OutputStream getStandardError() {
-        return errorStream;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/sftp/SFTPStorageClient.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/sftp/SFTPStorageClient.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/sftp/SFTPStorageClient.java
deleted file mode 100644
index b1d675a..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/sftp/SFTPStorageClient.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.sftp;
-
-import com.jcraft.jsch.ChannelSftp;
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.Session;
-import org.apache.airavata.file.manager.core.remote.client.RemoteStorageClient;
-import org.apache.airavata.model.file.transfer.LSEntryModel;
-import org.apache.airavata.model.file.transfer.LSEntryType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.util.*;
-
-public class SFTPStorageClient implements RemoteStorageClient {
-    private final static Logger logger = LoggerFactory.getLogger(SFTPStorageClient.class);
-
-    private JSch jSch;
-    private Session session;
-    private ChannelSftp sftpChannel;
-    private final String hostName;
-
-    public SFTPStorageClient(String hostName, int port, String loginUsername, String password) throws JSchException {
-        this.hostName = hostName;
-        Properties config = new java.util.Properties();
-        config.put("StrictHostKeyChecking", "no");
-        jSch = new JSch();
-        jSch.addIdentity(loginUsername, password);
-        session = jSch.getSession(loginUsername, hostName, port);
-        session.setConfig(config);
-        session.connect();
-        sftpChannel = (ChannelSftp) session.openChannel("sftp");
-    }
-
-    public SFTPStorageClient(String hostName, int port, String loginUsername, byte[] privateKey, byte[] publicKey,
-                            byte[] passPhrase) throws JSchException {
-        this.hostName = hostName;
-        Properties config = new java.util.Properties();
-        config.put("StrictHostKeyChecking", "no");
-        jSch = new JSch();
-        jSch.addIdentity(UUID.randomUUID().toString(), privateKey, publicKey, passPhrase);
-        session = jSch.getSession(loginUsername, hostName, port);
-        session.setConfig(config);
-        session.connect();
-        sftpChannel = (ChannelSftp) session.openChannel("sftp");
-    }
-
-    /**
-     * Reads a remote file, write it to local temporary directory and returns a file pointer to it
-     *
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public File readFile(String filePath) throws Exception {
-        String localFile = System.getProperty("java.io.tmpdir") + File.separator + UUID.randomUUID().toString();
-        return null;
-    }
-
-    /**
-     * Writes the source file in the local storage to specified path in the remote storage
-     *
-     * @param sourceFile
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public void writeFile(File sourceFile, String filePath) throws Exception {
-
-    }
-
-    /**
-     * Returns a directory listing of the specified directory
-     *
-     * @param directoryPath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public List<LSEntryModel> getDirectoryListing(String directoryPath) throws Exception {
-        if(directoryPath.endsWith(File.separator)){
-            directoryPath = directoryPath.substring(0, directoryPath.length() -1);
-        }
-        final String finalDirPath =  directoryPath;
-        //channel may get timeout
-        if(sftpChannel.isClosed()){
-            sftpChannel.connect();
-        }
-        sftpChannel.cd(directoryPath);
-        Vector<ChannelSftp.LsEntry> lsEntryVector = sftpChannel.ls(directoryPath);
-        ArrayList<LSEntryModel> fileNodeList = new ArrayList<>();
-        lsEntryVector.stream().forEach(lsEntry -> {
-            LSEntryModel fileNode = new LSEntryModel();
-            fileNode.setName(lsEntry.getFilename());
-            fileNode.setPath(finalDirPath + File.separator + lsEntry.getFilename());
-            fileNode.setStorageHostName(hostName);
-            fileNode.setSize(lsEntry.getAttrs().getSize());
-            if(lsEntry.getAttrs().isDir())
-                fileNode.setType(LSEntryType.DIRECTORY);
-            else
-                fileNode.setType(LSEntryType.FILE);
-            fileNodeList.add(fileNode);
-        });
-        return fileNodeList;
-    }
-
-    /**
-     * Move the specified file from source to destination within the same storage resource
-     *
-     * @param currentPath
-     * @param newPath
-     * @throws Exception
-     */
-    @Override
-    public void moveFile(String currentPath, String newPath) throws Exception {
-
-    }
-
-    /**
-     * @param sourcePath
-     * @param destinationPath
-     * @throws Exception
-     */
-    @Override
-    public void copyFile(String sourcePath, String destinationPath) throws Exception {
-
-    }
-
-    /**
-     * Rename file with the given name
-     *
-     * @param filePath
-     * @param newFileName
-     * @throws Exception
-     */
-    @Override
-    public void renameFile(String filePath, String newFileName) throws Exception {
-
-    }
-
-    /**
-     * Delete the specified file
-     *
-     * @param filePath
-     * @throws Exception
-     */
-    @Override
-    public void deleteFile(String filePath) throws Exception {
-
-    }
-
-    /**
-     * Create new directory in the specified file
-     *
-     * @param newDirPath
-     * @throws Exception
-     */
-    @Override
-    public void mkdir(String newDirPath) throws Exception {
-
-    }
-
-    /**
-     * Checks whether specified file exists in the remote storage system
-     *
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public boolean checkFileExists(String filePath) throws Exception {
-        return false;
-    }
-
-    /**
-     * Checks whether the given path is a directory
-     *
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public boolean checkIsDirectory(String filePath) throws Exception {
-        return false;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/utils/FileManagerConstants.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/utils/FileManagerConstants.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/utils/FileManagerConstants.java
deleted file mode 100644
index daf4685..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/utils/FileManagerConstants.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.utils;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class FileManagerConstants {
-    private final static Logger logger = LoggerFactory.getLogger(FileManagerConstants.class);
-
-    public static String MONGODB_HOST = "mongodb.host";
-    public static String MONGODB_PORT = "mongodb.port";
-    public static String MONGODB_DB_NAME = "mongodb.db.name";
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/utils/FileManagerProperties.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/utils/FileManagerProperties.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/utils/FileManagerProperties.java
deleted file mode 100644
index 2cd5e52..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/utils/FileManagerProperties.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.utils;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-public class FileManagerProperties {
-    private final static Logger logger = LoggerFactory.getLogger(FileManagerProperties.class);
-
-    private static FileManagerProperties instance;
-
-    private Properties properties;
-
-    private FileManagerProperties() throws IOException {
-        properties = new Properties();
-        properties.load(FileManagerProperties.class.getClassLoader().getResourceAsStream("file-manager.properties"));
-    }
-
-    public static FileManagerProperties getInstance() throws IOException {
-        if(instance == null){
-            instance = new FileManagerProperties();
-        }
-        return instance;
-    }
-
-    public String getProperty(String field, String defaultVal){
-        String returnVal = properties.getProperty(field);
-        if(returnVal == null)
-            return defaultVal;
-        else
-            return returnVal;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/resources/file-manager.properties
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/resources/file-manager.properties b/modules/file-manager/file-manager-core/src/main/resources/file-manager.properties
deleted file mode 100644
index ad4157e..0000000
--- a/modules/file-manager/file-manager-core/src/main/resources/file-manager.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-#
-# 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.
-#
-
-
-mongodb.host=localhost
-mongodb.port=27017
-mongodb.db.name=file-manager-db
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/resources/gridftp-client.properties
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/resources/gridftp-client.properties b/modules/file-manager/file-manager-core/src/main/resources/gridftp-client.properties
deleted file mode 100644
index 7d8a757..0000000
--- a/modules/file-manager/file-manager-core/src/main/resources/gridftp-client.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-trustedCertsFile=/Users/supun/Work/airavata-sandbox/grid-tools/certificates/
-myproxyServer=myproxy.teragrid.org
-myproxy_lifetime=17280000
-myproxyUserName=
-myproxyPasswd=
-myproxyPort=7512
-
-
-testing.host=trestles
-#testing.host=stampede
-#testing.host=lonestar
-
-## TACC Lonestar
-lonestar.gridftp.endpoint=gsiftp://gridftp1.ls4.tacc.utexas.edu:2811/
-
-## TACC Stampede
-stampede.gridftp.endpoint=gsiftp://gridftp.stampede.tacc.utexas.edu:2811/
-
-## SDSC Trestles
-trestles.gridftp.endpoint=gsiftp://trestles.sdsc.edu:2811/
-
-gridftpserverSource=gsiftp://trestles-dm.sdsc.xsede.org:2811/
-gridftpSourcePath=/oasis/projects/nsf/sds128/ogce/file-transfer-tests/source/sample_wrfout.netcdf
-gridftpUploadingFilePath = /oasis/projects/nsf/sds128/ogce/file-transfer-tests/source/dummy1
-
-#gridftpserverDest=gsiftp://trestles-dm.sdsc.xsede.org:2811/
-#gridftpDestPath=/oasis/projects/nsf/sds128/ogce/file-transfer-tests/gf
-
-gridftpserverDest=gsiftp://gridftp.stampede.tacc.utexas.edu:2811/
-gridftpDestPath=/scratch/01437/ogce/file-transfer-tests/dest/xx
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/db/dao/FileTransferRequestDaoTest.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/db/dao/FileTransferRequestDaoTest.java b/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/db/dao/FileTransferRequestDaoTest.java
deleted file mode 100644
index 780c2b6..0000000
--- a/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/db/dao/FileTransferRequestDaoTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.dao;
-
-import org.apache.airavata.model.file.transfer.FileTransferRequestModel;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-@Ignore
-public class FileTransferRequestDaoTest {
-    private final static Logger logger = LoggerFactory.getLogger(FileTransferRequestDaoTest.class);
-
-    @Test
-    public void testFileTransferRequestDao() throws IOException {
-        FileTransferRequestModel fileTransferRequestModel = new FileTransferRequestModel();
-        fileTransferRequestModel.setSrcHostCredToken("djkalbsbdaslfbalsfbslf");
-        fileTransferRequestModel.setSrcFilePath("test-file-path");
-        FileTransferRequestDao fileTransferRequestDao = new FileTransferRequestDao();
-        String transferId = fileTransferRequestDao.createFileTransferRequest(fileTransferRequestModel);
-        fileTransferRequestModel = fileTransferRequestDao.getFileTransferRequest(transferId);
-        System.out.println("Transfer Id:" + fileTransferRequestModel.getTransferId());
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/gridftp/CertFileReadTest.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/gridftp/CertFileReadTest.java b/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/gridftp/CertFileReadTest.java
deleted file mode 100644
index 68578db..0000000
--- a/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/gridftp/CertFileReadTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.gridftp;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.globus.gsi.SigningPolicy;
-import org.globus.gsi.SigningPolicyParser;
-import org.globus.gsi.util.CertificateIOUtil;
-import org.globus.util.GlobusResource;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import javax.security.auth.x500.X500Principal;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.security.MessageDigest;
-import java.security.cert.CertificateFactory;
-import java.security.cert.X509Certificate;
-import java.util.Map;
-
-
-@Ignore("This test case used to debug JGlobus-102. No need to run this test with other gridftp tests.")
-public class CertFileReadTest extends TestCase {
-
-    private static MessageDigest md5;
-
-    private static String CERT_FILE_LOCATION = "/Users/supun/Work/airavata-sandbox/grid-tools/certificates/";
-
-    @Test
-    public void testCertFileRead() throws Exception {
-
-        String path1 = CERT_FILE_LOCATION + "ffc3d59b";
-        String path2 = CERT_FILE_LOCATION + "e5cc84c2";
-
-
-        GlobusResource globusResource1 = new GlobusResource(path1 + ".signing_policy");
-        GlobusResource globusResource2 = new GlobusResource(path2 + ".signing_policy");
-
-        // ===== Testing globusResource1 - This should pass (cos no DC components) ================ //
-        X509Certificate crt1 = readCertificate(path1 + ".0");
-        X500Principal policySubjectCert1 = getPrincipal(globusResource1);
-
-        String certHash1 = CertificateIOUtil.nameHash(crt1.getSubjectX500Principal());
-        String principalHash1 = CertificateIOUtil.nameHash(policySubjectCert1);
-
-        System.out.println("======== Printing hashes for 1 ================");
-        System.out.println(certHash1);
-        System.out.println(principalHash1);
-
-        Assert.assertEquals("Certificate hash value does not match with the hash value generated using principal name.",
-                certHash1, principalHash1);
-
-        // ===== Testing globusResource1 - This should fail (cos we have DC components) ================ //
-        X509Certificate crt2 = readCertificate(path2 + ".0");
-        X500Principal policySubjectCert2 = getPrincipal(globusResource2);
-
-        String certHash2 = CertificateIOUtil.nameHash(crt2.getSubjectX500Principal());
-        String principalHash2 = CertificateIOUtil.nameHash(policySubjectCert2);
-
-        System.out.println("======== Printing hashes for 2 ================");
-        System.out.println(certHash2);
-        System.out.println(principalHash2);
-
-        Assert.assertEquals("Certificate hash value does not match with the hash value generated using principal name.",
-                certHash2, principalHash2);
-    }
-
-    private X500Principal getPrincipal(GlobusResource globusResource) throws Exception{
-
-        SigningPolicyParser parser = new SigningPolicyParser();
-
-        Reader reader = new InputStreamReader(globusResource.getInputStream());
-
-        Map<X500Principal, SigningPolicy> policies = parser.parse(reader);
-
-        return policies.keySet().iterator().next();
-
-    }
-
-    private X509Certificate readCertificate(String certPath) {
-        try {
-            FileInputStream fr = new FileInputStream(certPath);
-            CertificateFactory cf =
-                    CertificateFactory.getInstance("X509");
-            X509Certificate crt = (X509Certificate)
-                    cf.generateCertificate(fr);
-            System.out.println("Read certificate:");
-            System.out.println("\tCertificate for: " +
-                    crt.getSubjectDN());
-            System.out.println("\tCertificate issued by: " +
-                    crt.getIssuerDN());
-            System.out.println("\tCertificate is valid from " +
-                    crt.getNotBefore() + " to " + crt.getNotAfter());
-            System.out.println("\tCertificate SN# " +
-                    crt.getSerialNumber());
-            System.out.println("\tGenerated with " +
-                    crt.getSigAlgName());
-
-            return crt;
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        return null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/gridftp/FileTransferTest.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/gridftp/FileTransferTest.java b/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/gridftp/FileTransferTest.java
deleted file mode 100644
index 13d427d..0000000
--- a/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/gridftp/FileTransferTest.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.gridftp;
-
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.apache.airavata.file.manager.core.remote.client.gridftp.myproxy.SecurityContext;
-import org.apache.log4j.BasicConfigurator;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.ietf.jgss.GSSCredential;
-import org.junit.Ignore;
-
-import java.io.*;
-import java.net.URI;
-
-
-@Ignore
-public class FileTransferTest extends TestCase {
-
-    private GSSCredential gssCredential;
-
-    private ExecutionContext executionContext;
-
-    private static final Logger log = Logger.getLogger(FileTransferTest.class);
-
-
-    public void setUp() throws Exception {
-
-        String userName = System.getProperty("myproxy.user");
-        String password = System.getProperty("myproxy.password");
-
-        SecurityContext context = null;
-
-        if (userName == null || password == null || userName.trim().equals("") || password.trim().equals("")) {
-            log.error("myproxy.user and myproxy.password system properties are not set. Example :- " +
-                    "> mvn clean install -Dmyproxy.user=u1 -Dmyproxy.password=xxx");
-
-            Assert.fail("Please set myproxy.user and myproxy.password system properties.");
-
-        } else {
-            context = new SecurityContext(userName, password);
-        }
-
-        log.info("Using my proxy user name - " + userName);
-
-        BasicConfigurator.configure();
-        Logger logger = Logger.getLogger("GridFTPClient");
-        Level lev = Level.toLevel("DEBUG");
-        logger.setLevel(lev);
-
-
-        context.login();
-        executionContext = new ExecutionContext();
-
-
-        String targeterp = executionContext.getGridFTPServerDestination();
-        String remoteDestFile = executionContext.getDestinationDataLocation();
-
-        URI dirLocation = GridFTP.createGsiftpURI(targeterp,
-                remoteDestFile.substring(0, remoteDestFile.lastIndexOf("/")));
-        gssCredential = context.getGssCredential();
-        System.out.println(dirLocation);
-
-    }
-
-    public void testMakeDir() throws Exception {
-
-        String targetErp = executionContext.getGridFTPServerDestination();
-        String remoteDestinationFile = executionContext.getDestinationDataLocation();
-
-        URI dirLocation = GridFTP.createGsiftpURI(targetErp,
-                remoteDestinationFile.substring(0, remoteDestinationFile.lastIndexOf("/")));
-
-        GridFTP ftp = new GridFTP();
-        ftp.makeDir(dirLocation, gssCredential);
-
-        Assert.assertTrue(ftp.exists(dirLocation, gssCredential));
-
-    }
-
-    public void testTransferData() throws Exception {
-
-        String sourceERP = executionContext.getGridFTPServerSource();
-        String remoteSrcFile = executionContext.getSourceDataLocation();
-
-        String targetErp = executionContext.getGridFTPServerDestination();
-        String remoteDestinationFile = executionContext.getDestinationDataLocation();
-
-        URI srcURI = GridFTP.createGsiftpURI(sourceERP, remoteSrcFile);
-        URI destURI = GridFTP.createGsiftpURI(targetErp, remoteDestinationFile);
-
-        GridFTP ftp = new GridFTP();
-        ftp.transfer(srcURI, destURI, gssCredential, true);
-
-        Assert.assertTrue(ftp.exists(destURI, gssCredential));
-
-    }
-
-    public void testDownloadFile() throws Exception {
-
-        String fileName = "./downloaded";
-
-        File deleteFile = new File(fileName);
-
-        if (deleteFile.exists()) {
-            if (!deleteFile.delete())
-                throw new RuntimeException("Unable to delete file " + fileName);
-        }
-
-        File f = new File(fileName);
-
-        GridFTP ftp = new GridFTP();
-        ftp.downloadFile(executionContext.getSourceDataFileUri(),
-                gssCredential, f);
-
-        Assert.assertTrue(f.exists());
-
-    }
-
-    public void testFileExists() throws Exception {
-
-        GridFTP ftp = new GridFTP();
-        Assert.assertTrue(ftp.exists(executionContext.getSourceDataFileUri(), gssCredential));
-    }
-
-    public void testUpdateFile() throws Exception {
-
-        String currentDir = System.getProperty("projectDirectory");
-
-        if (currentDir == null)
-            currentDir = "src/test/resources";
-        else
-            currentDir = currentDir + "/src/test/resources";
-
-        String file = currentDir + "/dummy";
-
-        System.out.println("File to upload is " + file);
-
-        File fileToUpload = new File(file);
-
-        Assert.assertTrue(fileToUpload.canRead());
-
-        GridFTP ftp = new GridFTP();
-        ftp.updateFile(executionContext.getUploadingFilePathUri(), gssCredential, fileToUpload);
-
-        Assert.assertTrue(ftp.exists(executionContext.getUploadingFilePathUri(), gssCredential));
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/http/HTTPStorageClientTest.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/http/HTTPStorageClientTest.java b/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/http/HTTPStorageClientTest.java
deleted file mode 100644
index 22d36d6..0000000
--- a/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/http/HTTPStorageClientTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.http;
-
-import junit.framework.Assert;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-
-public class HTTPStorageClientTest {
-    private final static Logger logger = LoggerFactory.getLogger(HTTPStorageClientTest.class);
-
-    @Test
-    public void testHTTPStorageClient(){
-        try {
-            HTTPStorageClient httpStorageClient = new HTTPStorageClient(HTTPStorageClient.Protocol.HTTPS,
-                    "www.google.lk", 443);
-            File file = httpStorageClient.readFile("/");
-            Assert.assertTrue(file.exists());
-        } catch (Exception e) {
-            e.printStackTrace();
-            Assert.fail();
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPStorageClientTest.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPStorageClientTest.java b/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPStorageClientTest.java
deleted file mode 100644
index 93fcba3..0000000
--- a/modules/file-manager/file-manager-core/src/test/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPStorageClientTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.scp;
-
-import org.apache.commons.io.IOUtils;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.FileInputStream;
-
-@Ignore
-public class SCPStorageClientTest {
-    private final static Logger logger = LoggerFactory.getLogger(SCPStorageClientTest.class);
-
-    @Test
-    public void testSCPStorageClient() throws Exception {
-        File privateKey = new File("/Users/supun/.ssh/id_rsa");
-        byte[] privateKeyBytes = IOUtils.toByteArray(new FileInputStream(privateKey));
-
-        File publicKey = new File("/Users/supun/.ssh/id_rsa.pub");
-        byte[] publicKeyBytes = IOUtils.toByteArray(new FileInputStream(publicKey));
-
-        String passPhrase = "";
-        byte[] passPhraseBytes = passPhrase.getBytes();
-
-        SCPStorageClient scpStorageClient = new SCPStorageClient("gw75.iu.xsede.org", 22, "pga", privateKeyBytes,
-                publicKeyBytes, passPhraseBytes);
-        File file = scpStorageClient.readFile("/var/www/portals/gateway-user-data/testdrive/test.txt");
-        System.out.println("File exists ? " + file.exists());
-        scpStorageClient.writeFile(file, "/var/www/portals/gateway-user-data/testdrive/test2.txt");
-        file.delete();
-        System.out.println("File exists ? " + file.exists());
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/test/resources/airavata-myproxy-client.properties
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/test/resources/airavata-myproxy-client.properties b/modules/file-manager/file-manager-core/src/test/resources/airavata-myproxy-client.properties
deleted file mode 100644
index 407f09d..0000000
--- a/modules/file-manager/file-manager-core/src/test/resources/airavata-myproxy-client.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-#Download trusted certificates from - https://software.xsede.org/security/xsede-certs.tar.gz
-trustedCertsFile=../certificates
-myproxyServer=myproxy.teragrid.org
-myproxy_lifetime=17280000
-myproxyPort=7512
-
-testing.host=trestles
-#testing.host=stampede
-#testing.host=lonestar
-
-## TACC Lonestar
-lonestar.gridftp.endpoint=gsiftp://gridftp1.ls4.tacc.utexas.edu:2811/
-
-## TACC Stampede
-stampede.gridftp.endpoint=gsiftp://gridftp.stampede.tacc.utexas.edu:2811/
-
-## SDSC Trestles
-trestles.gridftp.endpoint=gsiftp://trestles.sdsc.edu:2811/
-
-gridftpserverSource=gsiftp://trestles-dm.sdsc.xsede.org:2811/
-gridftpSourcePath=/oasis/projects/nsf/sds128/ogce/file-transfer-tests/source/sample_wrfout.netcdf
-gridftpUploadingFilePath = /oasis/projects/nsf/sds128/ogce/file-transfer-tests/source/dummy1
-
-#gridftpserverDest=gsiftp://trestles-dm.sdsc.xsede.org:2811/
-#gridftpDestPath=/oasis/projects/nsf/sds128/ogce/file-transfer-tests/gf
-
-gridftpserverDest=gsiftp://gridftp.stampede.tacc.utexas.edu:2811/
-gridftpDestPath=/scratch/01437/ogce/file-transfer-tests/dest/xx
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/test/resources/dummy
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/test/resources/dummy b/modules/file-manager/file-manager-core/src/test/resources/dummy
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-cpi/pom.xml
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-cpi/pom.xml b/modules/file-manager/file-manager-cpi/pom.xml
deleted file mode 100644
index 9338b7e..0000000
--- a/modules/file-manager/file-manager-cpi/pom.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>file-manager</artifactId>
-        <groupId>org.apache.airavata</groupId>
-        <version>0.16-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>file-manager-cpi</artifactId>
-    <packaging>jar</packaging>
-    <name>Airavata File Manager CPI</name>
-    <url>http://airavata.apache.org/</url>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-data-models</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-commons</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManager.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManager.java b/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManager.java
deleted file mode 100644
index 39b8fa3..0000000
--- a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManager.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *
- * 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.
- *
- */
-package org.apache.airavata.file.manager.cpi;
-
-public interface FileManager {
-
-    /**
-     * Return file transfer service instance
-     * @return
-     */
-    FileTransferService getFileTransferService() throws FileManagerException;
-
-    /**
-     * Return replica catalog service instance
-     * @return
-     */
-    ReplicaCatalogService getReplicaCatalogService() throws FileManagerException;
-
-    /**
-     * Return metadata catalog service
-     * @return
-     */
-    MetadataCatalogService getMetadataCatalogService() throws FileManagerException;
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManagerConstants.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManagerConstants.java b/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManagerConstants.java
deleted file mode 100644
index 2fd8138..0000000
--- a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManagerConstants.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.cpi;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class FileManagerConstants {
-    private final static Logger logger = LoggerFactory.getLogger(FileManagerConstants.class);
-
-    public static String AIRAVATA_FILE_ID_PREFIX = "airavata-file://";
-    public static String AIRAVATA_COLLECTION_ID_PREFIX = "airavata-collection://";
-    public static final String AIRAVATA_METADATA_ID_PREFIX = "airavata-metadata://";
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManagerException.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManagerException.java b/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManagerException.java
deleted file mode 100644
index 153a2a9..0000000
--- a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileManagerException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * 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.
- */
-
-package org.apache.airavata.file.manager.cpi;
-
-public class FileManagerException extends Exception{
-
-    public FileManagerException(Throwable e) {
-        super(e);
-    }
-
-    public FileManagerException(String message) {
-        super(message, null);
-    }
-
-    public FileManagerException(String message, Throwable e) {
-        super(message, e);
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileTransferService.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileTransferService.java b/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileTransferService.java
deleted file mode 100644
index 02fbef1..0000000
--- a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/FileTransferService.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.cpi;
-
-import org.apache.airavata.model.file.transfer.FileTransferRequestModel;
-import org.apache.airavata.model.file.transfer.LSEntryModel;
-import org.apache.airavata.model.file.transfer.StorageResourceProtocol;
-
-import java.util.List;
-
-public interface FileTransferService {
-
-    /**
-     * Method to upload the give bytes to the destination storage system
-     * @param gatewayId
-     * @param username
-     * @param fileData
-     * @param destHostname
-     * @param destLoginName
-     * @param destPort
-     * @param destProtocol
-     * @param destinationPath
-     * @param destHostCredToken
-     * @return
-     * @throws FileManagerException
-     */
-    String uploadFile(String gatewayId, String username, byte[] fileData, String destHostname, String destLoginName, int destPort,
-                    StorageResourceProtocol destProtocol, String destinationPath, String destHostCredToken)
-            throws FileManagerException;
-
-    /**
-     * Transfer file between two storage resources synchronously. Returns the file transfer request id
-     * @param gatewayId
-     * @param username
-     * @param srcHostname
-     * @param srcPort
-     * @param srcLoginName
-     * @param srcProtocol
-     * @param srcPath
-     * @param srcHostCredToken
-     * @param destHostname
-     * @param destLoginName
-     * @param destPort
-     * @param destProtocol
-     * @param destinationPath
-     * @param destHostCredToken
-     * @return
-     * @throws FileManagerException
-     */
-    String transferFile(String gatewayId, String username, String srcHostname, String srcLoginName, int srcPort,
-                      StorageResourceProtocol srcProtocol, String srcPath, String srcHostCredToken,
-                      String destHostname, String destLoginName, int destPort,
-                      StorageResourceProtocol destProtocol, String destinationPath, String destHostCredToken)
-            throws FileManagerException;
-
-    /**
-     * Transfer file between two storage resources asynchronously. Returns the file transfer request id
-     * @param gatewayId
-     * @param username
-     * @param srcHostname
-     * @param srcLoginName
-     * @param srcPort
-     * @param srcProtocol
-     * @param srcPath
-     * @param srcHostCredToken
-     * @param destHostname
-     * @param destLoginName
-     * @param destPort
-     * @param destProtocol
-     * @param destinationPath
-     * @param destHostCredToken
-     * @param callbackEmails
-     * @return
-     * @throws FileManagerException
-     */
-    String transferFileAsync(String gatewayId, String username, String srcHostname, String srcLoginName, int srcPort,
-                           StorageResourceProtocol srcProtocol, String srcPath, String srcHostCredToken,
-                           String destHostname, String destLoginName, int destPort,
-                           StorageResourceProtocol destProtocol, String destinationPath, String destHostCredToken,
-                           String[] callbackEmails)
-            throws FileManagerException;
-
-    /**
-     * Get a directory listing of the specified source directory
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param path
-     * @param hostCredential
-     * @return
-     * @throws FileManagerException
-     */
-    List<LSEntryModel> getDirectoryListing(String hostname, String loginName, int port,
-                                       StorageResourceProtocol protocol, String path, String hostCredential)
-            throws FileManagerException;
-
-    /**
-     * Move file from one place to another inside the same storage resource
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param sourcePath
-     * @param destinationPath
-     * @throws FileManagerException
-     */
-    void moveFile(String hostname, String loginName, int port,
-                  StorageResourceProtocol protocol, String hostCredential, String sourcePath, String destinationPath)
-            throws FileManagerException;
-
-    /**
-     * Rename a file
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param sourcePath
-     * @param newName
-     * @throws FileManagerException
-     */
-    void renameFile(String hostname, String loginName, int port,
-                    StorageResourceProtocol protocol, String hostCredential, String sourcePath, String newName)
-            throws FileManagerException;
-
-    /**
-     * Create new directory
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param dirPath
-     * @throws FileManagerException
-     */
-    void mkdir(String hostname, String loginName, int port,
-               StorageResourceProtocol protocol, String hostCredential, String dirPath)
-            throws FileManagerException;
-
-    /**
-     * Delete File in storage resource
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param filePath
-     * @throws FileManagerException
-     */
-    void deleteFile(String hostname, String loginName, int port,
-                    StorageResourceProtocol protocol, String hostCredential, String filePath)
-            throws FileManagerException;
-
-    /**
-     * Check whether the specified file exists
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param filePath
-     * @return
-     * @throws FileManagerException
-     */
-    boolean isExists(String hostname, String loginName, int port,
-                    StorageResourceProtocol protocol, String hostCredential, String filePath)
-            throws FileManagerException;
-
-    /**
-     * Check whether the path points to a directory
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param filePath
-     * @return
-     * @throws FileManagerException
-     */
-    boolean isDirectory(String hostname, String loginName, int port,
-                     StorageResourceProtocol protocol, String hostCredential, String filePath)
-            throws FileManagerException;
-
-    /**
-     * Method to retrieve file transfer status giving transfer id
-     * @param transferId
-     * @return
-     * @throws FileManagerException
-     */
-    FileTransferRequestModel getFileTransferRequestStatus(String transferId)
-            throws FileManagerException;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/MetadataCatalogService.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/MetadataCatalogService.java b/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/MetadataCatalogService.java
deleted file mode 100644
index 89e060c..0000000
--- a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/MetadataCatalogService.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.cpi;
-
-import org.apache.airavata.model.file.metadata.MetadataModel;
-
-public interface MetadataCatalogService {
-
-    /**
-     * Create new metadata model
-     * @param metadataModel
-     * @return
-     * @throws FileManagerException
-     */
-    String createMetadata(MetadataModel metadataModel) throws FileManagerException;
-
-    /**
-     * Update exisiting metadata model
-     * @param metadataModel
-     * @throws FileManagerException
-     */
-    void updateMetadata(MetadataModel metadataModel) throws FileManagerException;
-
-    /**
-     * Delete existing metadata model
-     * @param metadataId
-     * @throws FileManagerException
-     */
-    void deleteMetadata(String metadataId) throws FileManagerException;
-
-    /**
-     * Retrieve metadata model
-     * @param metadataId
-     * @return
-     * @throws FileManagerException
-     */
-    MetadataModel getMetadata(String metadataId) throws FileManagerException;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/ReplicaCatalogService.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/ReplicaCatalogService.java b/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/ReplicaCatalogService.java
deleted file mode 100644
index cd7de53..0000000
--- a/modules/file-manager/file-manager-cpi/src/main/java/org/apache/airavata/file/manager/cpi/ReplicaCatalogService.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.cpi;
-
-import org.apache.airavata.model.file.replica.FileCollectionModel;
-import org.apache.airavata.model.file.replica.FileModel;
-
-public interface ReplicaCatalogService {
-
-    /**
-     * Creates a new file entry in the replica catalog
-     * @param fileModel
-     * @return
-     */
-    String registerFileDetails(FileModel fileModel) throws FileManagerException;
-
-    /**
-     * Updates an existing file information
-     * @param fileModel
-     */
-    void updateFileDetails(FileModel fileModel) throws FileManagerException;
-
-
-    /**
-     * Deletes the specified file details entry
-     * @param fileId
-     */
-    void deleteFileDetails(String fileId) throws FileManagerException;
-
-
-    /**
-     * Retrieves file details for the specified file id
-     * @param fileId
-     * @return
-     */
-    FileModel getFileDetails(String fileId) throws FileManagerException;
-
-
-    /**
-     * Create new file collection entry
-     * @param fileCollectionModel
-     * @return
-     * @throws FileManagerException
-     */
-    String registerFileCollection(FileCollectionModel fileCollectionModel) throws FileManagerException;
-
-    /**
-     * Update existing file collection
-     * @param fileCollectionModel
-     * @throws FileManagerException
-     */
-    void updateFileCollection(FileCollectionModel fileCollectionModel) throws FileManagerException;
-
-    /**
-     * Delete exisiting file collection
-     * @param collectionId
-     * @throws FileManagerException
-     */
-    void deleteFileCollection(String collectionId) throws FileManagerException;
-
-    /**
-     * Retrieve file collection specifying the collection id
-     * @param collectionId
-     * @return
-     * @throws FileManagerException
-     */
-    FileCollectionModel getFileCollection(String collectionId) throws FileManagerException;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/pom.xml
----------------------------------------------------------------------
diff --git a/modules/file-manager/pom.xml b/modules/file-manager/pom.xml
deleted file mode 100644
index 01fc4da..0000000
--- a/modules/file-manager/pom.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>airavata</artifactId>
-        <groupId>org.apache.airavata</groupId>
-        <version>0.16-SNAPSHOT</version>
-        <relativePath>../../pom.xml</relativePath>
-    </parent>
-
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>file-manager</artifactId>
-    <packaging>pom</packaging>
-    <name>Airavata File Manager</name>
-    <url>http://airavata.apache.org/</url>
-
-    <modules>
-        <module>file-manager-cpi</module>
-        <module>file-manager-core</module>
-    </modules>
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-data-models</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-registry-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-registry-cpi</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.7</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 70df549..c82cc8d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -551,7 +551,7 @@
 				<module>modules/commons</module>
                 <module>modules/messaging</module>
 				<module>modules/gfac</module>
-				<module>modules/file-manager</module>
+				<module>modules/data-manager</module>
 				<module>modules/registry</module>
 				<module>modules/security</module>
 				<module>modules/credential-store</module>

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/thrift-interface-descriptions/data-models/airavata_data_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/airavata_data_models.thrift b/thrift-interface-descriptions/data-models/airavata_data_models.thrift
index 940c89d..a31af8c 100644
--- a/thrift-interface-descriptions/data-models/airavata_data_models.thrift
+++ b/thrift-interface-descriptions/data-models/airavata_data_models.thrift
@@ -30,9 +30,9 @@ include "experiment-catalog-models/process_model.thrift"
 include "experiment-catalog-models/scheduling_model.thrift"
 include "experiment-catalog-models/status_models.thrift"
 include "resource-catalog-models/data_movement_models.thrift"
-include "file-manager-models/replica_models.thrift"
-include "file-manager-models/file__transfer_models.thrift"
-include "file-manager-models/metadata_models.thrift"
+include "data-manager-models/replica_models.thrift"
+include "data-manager-models/file__transfer_models.thrift"
+include "data-manager-models/metadata_models.thrift"
 
 namespace java org.apache.airavata.model
 namespace php Airavata.Model

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/thrift-interface-descriptions/data-models/data-manager-models/file__transfer_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/data-manager-models/file__transfer_models.thrift b/thrift-interface-descriptions/data-models/data-manager-models/file__transfer_models.thrift
new file mode 100644
index 0000000..fb9218e
--- /dev/null
+++ b/thrift-interface-descriptions/data-models/data-manager-models/file__transfer_models.thrift
@@ -0,0 +1,77 @@
+/*
+ * 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.
+ *
+ */
+
+  namespace java org.apache.airavata.model.data.transfer
+  namespace php Airavata.Model.Data.Transfer
+  namespace cpp apache.airavata.model.data.transfer
+  namespace py apache.airavata.model.data.transfer
+
+  enum StorageResourceProtocol{
+        SCP,SFTP,HTTP,HTTPS,GridFTP,LOCAL
+  }
+
+  enum LSEntryType{
+    DIRECTORY,
+    FILE
+  }
+
+  enum FileTransferMode{
+      SYNC,ASYNC
+  }
+
+  enum FileTransferStatus{
+      CREATED, QUEUED, RUNNING, COMPLETED, FAILED
+  }
+
+  struct FileTransferRequestModel{
+      1: optional string transferId,
+      2: optional string gatewayId,
+      3: optional string username,
+      4: optional string srcHostname,
+      5: optional string srcLoginName,
+      6: optional i64 srcPort,
+      7: optional StorageResourceProtocol srcProtocol,
+      8: optional string srcFilePath,
+      9: optional string srcHostCredToken,
+     10: optional string destHostname,
+     11: optional string destLoginName,
+     12: optional i64 destPort,
+     13: optional StorageResourceProtocol destProtocol,
+     14: optional string destFilePath,
+     15: optional string destHostCredToken,
+     16: optional FileTransferMode fileTransferMode,
+     17: optional FileTransferStatus transferStatus,
+     18: optional i64 fileSize,
+     19: optional i64 transferTime,
+     20: optional i64 createdTime,
+     21: optional i64 lastModifiedType,
+     22: optional list<string> callbackEmails
+  }
+
+  struct LSEntryModel {
+      1: optional LSEntryType type,
+      2: optional i64 size,
+      3: optional string nativeType,
+      4: optional string name,
+      5: optional string path,
+      6: optional string storageHostName,
+      7: optional i64 lastModifiedType,
+      8: optional i64 createdTime
+  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/thrift-interface-descriptions/data-models/data-manager-models/metadata_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/data-manager-models/metadata_models.thrift b/thrift-interface-descriptions/data-models/data-manager-models/metadata_models.thrift
new file mode 100644
index 0000000..b3a3649
--- /dev/null
+++ b/thrift-interface-descriptions/data-models/data-manager-models/metadata_models.thrift
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ *
+ */
+
+  namespace java org.apache.airavata.model.data.metadata
+  namespace php Airavata.Model.data.metadata
+  namespace cpp apache.airavata.model.data.metadata
+  namespace py apache.airavata.model.data.metadata
+
+  enum MetadataType{
+    FILE, COLLECTION
+  }
+
+  struct MetadataModel{
+    1: optional string metadataId,
+    2: optional string gatewayId,
+    3: optional string username,
+    4: optional list<string> sharedUsers,
+    5: optional bool sharedPublic,
+    6: optional string userFriendlyName,
+    7: optional string userFriendlyDescription,
+    8: optional MetadataType metadataType,
+    9: optional string associatedEntityId,
+   10: optional map<string,string> customInformation
+  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/thrift-interface-descriptions/data-models/data-manager-models/replica_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/data-manager-models/replica_models.thrift b/thrift-interface-descriptions/data-models/data-manager-models/replica_models.thrift
new file mode 100644
index 0000000..be10a47
--- /dev/null
+++ b/thrift-interface-descriptions/data-models/data-manager-models/replica_models.thrift
@@ -0,0 +1,83 @@
+/*
+ * 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.
+ *
+ */
+
+include "../resource-catalog-models/data_movement_models.thrift"
+
+namespace java org.apache.airavata.model.data.replica
+namespace php Airavata.Model.Data.Replica
+namespace cpp apache.airavata.model.data.replica
+namespace py apache.airavata.model.data.replica
+
+enum FileModelType{
+    FILE, DIRECTORY
+}
+
+enum StorageResourceType {
+    GATEWAY_DATA_STORE,
+    BACKUP_GATEWAY_DATA_STORE,
+    COMPUTE_RESOURCE,
+    LONG_TERM_STORAGE_RESOURCE,
+    OTHER
+}
+
+enum ReplicaPersistentType {
+    TRANSIENT,
+    PERSISTENT
+}
+
+struct FileCollectionModel{
+    1: optional string collectionId,
+    2: optional string gatewayId,
+    3: optional string username,
+    4: optional list<string> sharedUsers,
+    5: optional bool sharedPublic,
+    6: optional string collectionName,
+    7: optional string collectionDescription,
+    8: optional list<string> fileIdList
+}
+
+struct FileModel {
+    1: optional string fileId,
+    2: optional string gatewayId,
+    3: optional string username,
+    4: optional list<string> sharedUsers,
+    5: optional bool sharedPublic,
+    6: optional string fileName,
+    7: optional string fileDescription,
+    8: optional string sha256Checksum,
+    9: optional FileModelType fileType,
+   10: optional i32 fileSize,
+   11: optional string dataType,
+   12: optional i64 creationTime,
+   13: optional i64 lastModifiedTime,
+   14: optional list<FileReplicaModel> fileReplicas
+}
+
+struct FileReplicaModel{
+    1: optional string replicaName,
+    2: optional string replicaDescription,
+    3: optional string storageHostname,
+    4: optional string storageResourceId,
+    5: optional string filePath,
+    6: optional i64 creationTime,
+    7: optional i64 validUntilTime,
+    8: optional StorageResourceType storageResourceType,
+    9: optional ReplicaPersistentType replicaPersistentType
+}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileReplicaModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileReplicaModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileReplicaModel.java
new file mode 100644
index 0000000..10309a4
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileReplicaModel.java
@@ -0,0 +1,1272 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
+public class FileReplicaModel implements org.apache.thrift.TBase<FileReplicaModel, FileReplicaModel._Fields>, java.io.Serializable, Cloneable, Comparable<FileReplicaModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("FileReplicaModel");
+
+  private static final org.apache.thrift.protocol.TField REPLICA_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaName", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField REPLICA_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaDescription", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField STORAGE_HOSTNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("storageHostname", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField FILE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("filePath", org.apache.thrift.protocol.TType.STRING, (short)5);
+  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)6);
+  private static final org.apache.thrift.protocol.TField VALID_UNTIL_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("validUntilTime", org.apache.thrift.protocol.TType.I64, (short)7);
+  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceType", org.apache.thrift.protocol.TType.I32, (short)8);
+  private static final org.apache.thrift.protocol.TField REPLICA_PERSISTENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaPersistentType", org.apache.thrift.protocol.TType.I32, (short)9);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new FileReplicaModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new FileReplicaModelTupleSchemeFactory());
+  }
+
+  private String replicaName; // optional
+  private String replicaDescription; // optional
+  private String storageHostname; // optional
+  private String storageResourceId; // optional
+  private String filePath; // optional
+  private long creationTime; // optional
+  private long validUntilTime; // optional
+  private StorageResourceType storageResourceType; // optional
+  private ReplicaPersistentType replicaPersistentType; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    REPLICA_NAME((short)1, "replicaName"),
+    REPLICA_DESCRIPTION((short)2, "replicaDescription"),
+    STORAGE_HOSTNAME((short)3, "storageHostname"),
+    STORAGE_RESOURCE_ID((short)4, "storageResourceId"),
+    FILE_PATH((short)5, "filePath"),
+    CREATION_TIME((short)6, "creationTime"),
+    VALID_UNTIL_TIME((short)7, "validUntilTime"),
+    /**
+     * 
+     * @see StorageResourceType
+     */
+    STORAGE_RESOURCE_TYPE((short)8, "storageResourceType"),
+    /**
+     * 
+     * @see ReplicaPersistentType
+     */
+    REPLICA_PERSISTENT_TYPE((short)9, "replicaPersistentType");
+
+    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: // REPLICA_NAME
+          return REPLICA_NAME;
+        case 2: // REPLICA_DESCRIPTION
+          return REPLICA_DESCRIPTION;
+        case 3: // STORAGE_HOSTNAME
+          return STORAGE_HOSTNAME;
+        case 4: // STORAGE_RESOURCE_ID
+          return STORAGE_RESOURCE_ID;
+        case 5: // FILE_PATH
+          return FILE_PATH;
+        case 6: // CREATION_TIME
+          return CREATION_TIME;
+        case 7: // VALID_UNTIL_TIME
+          return VALID_UNTIL_TIME;
+        case 8: // STORAGE_RESOURCE_TYPE
+          return STORAGE_RESOURCE_TYPE;
+        case 9: // REPLICA_PERSISTENT_TYPE
+          return REPLICA_PERSISTENT_TYPE;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __CREATIONTIME_ISSET_ID = 0;
+  private static final int __VALIDUNTILTIME_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.REPLICA_NAME,_Fields.REPLICA_DESCRIPTION,_Fields.STORAGE_HOSTNAME,_Fields.STORAGE_RESOURCE_ID,_Fields.FILE_PATH,_Fields.CREATION_TIME,_Fields.VALID_UNTIL_TIME,_Fields.STORAGE_RESOURCE_TYPE,_Fields.REPLICA_PERSISTENT_TYPE};
+  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.REPLICA_NAME, new org.apache.thrift.meta_data.FieldMetaData("replicaName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REPLICA_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("replicaDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STORAGE_HOSTNAME, new org.apache.thrift.meta_data.FieldMetaData("storageHostname", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_PATH, new org.apache.thrift.meta_data.FieldMetaData("filePath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        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.VALID_UNTIL_TIME, new org.apache.thrift.meta_data.FieldMetaData("validUntilTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.STORAGE_RESOURCE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("storageResourceType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, StorageResourceType.class)));
+    tmpMap.put(_Fields.REPLICA_PERSISTENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("replicaPersistentType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ReplicaPersistentType.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(FileReplicaModel.class, metaDataMap);
+  }
+
+  public FileReplicaModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public FileReplicaModel(FileReplicaModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetReplicaName()) {
+      this.replicaName = other.replicaName;
+    }
+    if (other.isSetReplicaDescription()) {
+      this.replicaDescription = other.replicaDescription;
+    }
+    if (other.isSetStorageHostname()) {
+      this.storageHostname = other.storageHostname;
+    }
+    if (other.isSetStorageResourceId()) {
+      this.storageResourceId = other.storageResourceId;
+    }
+    if (other.isSetFilePath()) {
+      this.filePath = other.filePath;
+    }
+    this.creationTime = other.creationTime;
+    this.validUntilTime = other.validUntilTime;
+    if (other.isSetStorageResourceType()) {
+      this.storageResourceType = other.storageResourceType;
+    }
+    if (other.isSetReplicaPersistentType()) {
+      this.replicaPersistentType = other.replicaPersistentType;
+    }
+  }
+
+  public FileReplicaModel deepCopy() {
+    return new FileReplicaModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.replicaName = null;
+    this.replicaDescription = null;
+    this.storageHostname = null;
+    this.storageResourceId = null;
+    this.filePath = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    setValidUntilTimeIsSet(false);
+    this.validUntilTime = 0;
+    this.storageResourceType = null;
+    this.replicaPersistentType = null;
+  }
+
+  public String getReplicaName() {
+    return this.replicaName;
+  }
+
+  public void setReplicaName(String replicaName) {
+    this.replicaName = replicaName;
+  }
+
+  public void unsetReplicaName() {
+    this.replicaName = null;
+  }
+
+  /** Returns true if field replicaName is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaName() {
+    return this.replicaName != null;
+  }
+
+  public void setReplicaNameIsSet(boolean value) {
+    if (!value) {
+      this.replicaName = null;
+    }
+  }
+
+  public String getReplicaDescription() {
+    return this.replicaDescription;
+  }
+
+  public void setReplicaDescription(String replicaDescription) {
+    this.replicaDescription = replicaDescription;
+  }
+
+  public void unsetReplicaDescription() {
+    this.replicaDescription = null;
+  }
+
+  /** Returns true if field replicaDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaDescription() {
+    return this.replicaDescription != null;
+  }
+
+  public void setReplicaDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.replicaDescription = null;
+    }
+  }
+
+  public String getStorageHostname() {
+    return this.storageHostname;
+  }
+
+  public void setStorageHostname(String storageHostname) {
+    this.storageHostname = storageHostname;
+  }
+
+  public void unsetStorageHostname() {
+    this.storageHostname = null;
+  }
+
+  /** Returns true if field storageHostname is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageHostname() {
+    return this.storageHostname != null;
+  }
+
+  public void setStorageHostnameIsSet(boolean value) {
+    if (!value) {
+      this.storageHostname = null;
+    }
+  }
+
+  public String getStorageResourceId() {
+    return this.storageResourceId;
+  }
+
+  public void setStorageResourceId(String storageResourceId) {
+    this.storageResourceId = storageResourceId;
+  }
+
+  public void unsetStorageResourceId() {
+    this.storageResourceId = null;
+  }
+
+  /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageResourceId() {
+    return this.storageResourceId != null;
+  }
+
+  public void setStorageResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.storageResourceId = null;
+    }
+  }
+
+  public String getFilePath() {
+    return this.filePath;
+  }
+
+  public void setFilePath(String filePath) {
+    this.filePath = filePath;
+  }
+
+  public void unsetFilePath() {
+    this.filePath = null;
+  }
+
+  /** Returns true if field filePath is set (has been assigned a value) and false otherwise */
+  public boolean isSetFilePath() {
+    return this.filePath != null;
+  }
+
+  public void setFilePathIsSet(boolean value) {
+    if (!value) {
+      this.filePath = 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 long getValidUntilTime() {
+    return this.validUntilTime;
+  }
+
+  public void setValidUntilTime(long validUntilTime) {
+    this.validUntilTime = validUntilTime;
+    setValidUntilTimeIsSet(true);
+  }
+
+  public void unsetValidUntilTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID);
+  }
+
+  /** Returns true if field validUntilTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetValidUntilTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID);
+  }
+
+  public void setValidUntilTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID, value);
+  }
+
+  /**
+   * 
+   * @see StorageResourceType
+   */
+  public StorageResourceType getStorageResourceType() {
+    return this.storageResourceType;
+  }
+
+  /**
+   * 
+   * @see StorageResourceType
+   */
+  public void setStorageResourceType(StorageResourceType storageResourceType) {
+    this.storageResourceType = storageResourceType;
+  }
+
+  public void unsetStorageResourceType() {
+    this.storageResourceType = null;
+  }
+
+  /** Returns true if field storageResourceType is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageResourceType() {
+    return this.storageResourceType != null;
+  }
+
+  public void setStorageResourceTypeIsSet(boolean value) {
+    if (!value) {
+      this.storageResourceType = null;
+    }
+  }
+
+  /**
+   * 
+   * @see ReplicaPersistentType
+   */
+  public ReplicaPersistentType getReplicaPersistentType() {
+    return this.replicaPersistentType;
+  }
+
+  /**
+   * 
+   * @see ReplicaPersistentType
+   */
+  public void setReplicaPersistentType(ReplicaPersistentType replicaPersistentType) {
+    this.replicaPersistentType = replicaPersistentType;
+  }
+
+  public void unsetReplicaPersistentType() {
+    this.replicaPersistentType = null;
+  }
+
+  /** Returns true if field replicaPersistentType is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaPersistentType() {
+    return this.replicaPersistentType != null;
+  }
+
+  public void setReplicaPersistentTypeIsSet(boolean value) {
+    if (!value) {
+      this.replicaPersistentType = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case REPLICA_NAME:
+      if (value == null) {
+        unsetReplicaName();
+      } else {
+        setReplicaName((String)value);
+      }
+      break;
+
+    case REPLICA_DESCRIPTION:
+      if (value == null) {
+        unsetReplicaDescription();
+      } else {
+        setReplicaDescription((String)value);
+      }
+      break;
+
+    case STORAGE_HOSTNAME:
+      if (value == null) {
+        unsetStorageHostname();
+      } else {
+        setStorageHostname((String)value);
+      }
+      break;
+
+    case STORAGE_RESOURCE_ID:
+      if (value == null) {
+        unsetStorageResourceId();
+      } else {
+        setStorageResourceId((String)value);
+      }
+      break;
+
+    case FILE_PATH:
+      if (value == null) {
+        unsetFilePath();
+      } else {
+        setFilePath((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case VALID_UNTIL_TIME:
+      if (value == null) {
+        unsetValidUntilTime();
+      } else {
+        setValidUntilTime((Long)value);
+      }
+      break;
+
+    case STORAGE_RESOURCE_TYPE:
+      if (value == null) {
+        unsetStorageResourceType();
+      } else {
+        setStorageResourceType((StorageResourceType)value);
+      }
+      break;
+
+    case REPLICA_PERSISTENT_TYPE:
+      if (value == null) {
+        unsetReplicaPersistentType();
+      } else {
+        setReplicaPersistentType((ReplicaPersistentType)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case REPLICA_NAME:
+      return getReplicaName();
+
+    case REPLICA_DESCRIPTION:
+      return getReplicaDescription();
+
+    case STORAGE_HOSTNAME:
+      return getStorageHostname();
+
+    case STORAGE_RESOURCE_ID:
+      return getStorageResourceId();
+
+    case FILE_PATH:
+      return getFilePath();
+
+    case CREATION_TIME:
+      return getCreationTime();
+
+    case VALID_UNTIL_TIME:
+      return getValidUntilTime();
+
+    case STORAGE_RESOURCE_TYPE:
+      return getStorageResourceType();
+
+    case REPLICA_PERSISTENT_TYPE:
+      return getReplicaPersistentType();
+
+    }
+    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 REPLICA_NAME:
+      return isSetReplicaName();
+    case REPLICA_DESCRIPTION:
+      return isSetReplicaDescription();
+    case STORAGE_HOSTNAME:
+      return isSetStorageHostname();
+    case STORAGE_RESOURCE_ID:
+      return isSetStorageResourceId();
+    case FILE_PATH:
+      return isSetFilePath();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case VALID_UNTIL_TIME:
+      return isSetValidUntilTime();
+    case STORAGE_RESOURCE_TYPE:
+      return isSetStorageResourceType();
+    case REPLICA_PERSISTENT_TYPE:
+      return isSetReplicaPersistentType();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof FileReplicaModel)
+      return this.equals((FileReplicaModel)that);
+    return false;
+  }
+
+  public boolean equals(FileReplicaModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_replicaName = true && this.isSetReplicaName();
+    boolean that_present_replicaName = true && that.isSetReplicaName();
+    if (this_present_replicaName || that_present_replicaName) {
+      if (!(this_present_replicaName && that_present_replicaName))
+        return false;
+      if (!this.replicaName.equals(that.replicaName))
+        return false;
+    }
+
+    boolean this_present_replicaDescription = true && this.isSetReplicaDescription();
+    boolean that_present_replicaDescription = true && that.isSetReplicaDescription();
+    if (this_present_replicaDescription || that_present_replicaDescription) {
+      if (!(this_present_replicaDescription && that_present_replicaDescription))
+        return false;
+      if (!this.replicaDescription.equals(that.replicaDescription))
+        return false;
+    }
+
+    boolean this_present_storageHostname = true && this.isSetStorageHostname();
+    boolean that_present_storageHostname = true && that.isSetStorageHostname();
+    if (this_present_storageHostname || that_present_storageHostname) {
+      if (!(this_present_storageHostname && that_present_storageHostname))
+        return false;
+      if (!this.storageHostname.equals(that.storageHostname))
+        return false;
+    }
+
+    boolean this_present_storageResourceId = true && this.isSetStorageResourceId();
+    boolean that_present_storageResourceId = true && that.isSetStorageResourceId();
+    if (this_present_storageResourceId || that_present_storageResourceId) {
+      if (!(this_present_storageResourceId && that_present_storageResourceId))
+        return false;
+      if (!this.storageResourceId.equals(that.storageResourceId))
+        return false;
+    }
+
+    boolean this_present_filePath = true && this.isSetFilePath();
+    boolean that_present_filePath = true && that.isSetFilePath();
+    if (this_present_filePath || that_present_filePath) {
+      if (!(this_present_filePath && that_present_filePath))
+        return false;
+      if (!this.filePath.equals(that.filePath))
+        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_validUntilTime = true && this.isSetValidUntilTime();
+    boolean that_present_validUntilTime = true && that.isSetValidUntilTime();
+    if (this_present_validUntilTime || that_present_validUntilTime) {
+      if (!(this_present_validUntilTime && that_present_validUntilTime))
+        return false;
+      if (this.validUntilTime != that.validUntilTime)
+        return false;
+    }
+
+    boolean this_present_storageResourceType = true && this.isSetStorageResourceType();
+    boolean that_present_storageResourceType = true && that.isSetStorageResourceType();
+    if (this_present_storageResourceType || that_present_storageResourceType) {
+      if (!(this_present_storageResourceType && that_present_storageResourceType))
+        return false;
+      if (!this.storageResourceType.equals(that.storageResourceType))
+        return false;
+    }
+
+    boolean this_present_replicaPersistentType = true && this.isSetReplicaPersistentType();
+    boolean that_present_replicaPersistentType = true && that.isSetReplicaPersistentType();
+    if (this_present_replicaPersistentType || that_present_replicaPersistentType) {
+      if (!(this_present_replicaPersistentType && that_present_replicaPersistentType))
+        return false;
+      if (!this.replicaPersistentType.equals(that.replicaPersistentType))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_replicaName = true && (isSetReplicaName());
+    list.add(present_replicaName);
+    if (present_replicaName)
+      list.add(replicaName);
+
+    boolean present_replicaDescription = true && (isSetReplicaDescription());
+    list.add(present_replicaDescription);
+    if (present_replicaDescription)
+      list.add(replicaDescription);
+
+    boolean present_storageHostname = true && (isSetStorageHostname());
+    list.add(present_storageHostname);
+    if (present_storageHostname)
+      list.add(storageHostname);
+
+    boolean present_storageResourceId = true && (isSetStorageResourceId());
+    list.add(present_storageResourceId);
+    if (present_storageResourceId)
+      list.add(storageResourceId);
+
+    boolean present_filePath = true && (isSetFilePath());
+    list.add(present_filePath);
+    if (present_filePath)
+      list.add(filePath);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_validUntilTime = true && (isSetValidUntilTime());
+    list.add(present_validUntilTime);
+    if (present_validUntilTime)
+      list.add(validUntilTime);
+
+    boolean present_storageResourceType = true && (isSetStorageResourceType());
+    list.add(present_storageResourceType);
+    if (present_storageResourceType)
+      list.add(storageResourceType.getValue());
+
+    boolean present_replicaPersistentType = true && (isSetReplicaPersistentType());
+    list.add(present_replicaPersistentType);
+    if (present_replicaPersistentType)
+      list.add(replicaPersistentType.getValue());
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(FileReplicaModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetReplicaName()).compareTo(other.isSetReplicaName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaName, other.replicaName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaDescription()).compareTo(other.isSetReplicaDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaDescription, other.replicaDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStorageHostname()).compareTo(other.isSetStorageHostname());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageHostname()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageHostname, other.storageHostname);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFilePath()).compareTo(other.isSetFilePath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFilePath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filePath, other.filePath);
+      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(isSetValidUntilTime()).compareTo(other.isSetValidUntilTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValidUntilTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validUntilTime, other.validUntilTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStorageResourceType()).compareTo(other.isSetStorageResourceType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageResourceType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceType, other.storageResourceType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaPersistentType()).compareTo(other.isSetReplicaPersistentType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaPersistentType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaPersistentType, other.replicaPersistentType);
+      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("FileReplicaModel(");
+    boolean first = true;
+
+    if (isSetReplicaName()) {
+      sb.append("replicaName:");
+      if (this.replicaName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaName);
+      }
+      first = false;
+    }
+    if (isSetReplicaDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaDescription:");
+      if (this.replicaDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaDescription);
+      }
+      first = false;
+    }
+    if (isSetStorageHostname()) {
+      if (!first) sb.append(", ");
+      sb.append("storageHostname:");
+      if (this.storageHostname == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.storageHostname);
+      }
+      first = false;
+    }
+    if (isSetStorageResourceId()) {
+      if (!first) sb.append(", ");
+      sb.append("storageResourceId:");
+      if (this.storageResourceId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.storageResourceId);
+      }
+      first = false;
+    }
+    if (isSetFilePath()) {
+      if (!first) sb.append(", ");
+      sb.append("filePath:");
+      if (this.filePath == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.filePath);
+      }
+      first = false;
+    }
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetValidUntilTime()) {
+      if (!first) sb.append(", ");
+      sb.append("validUntilTime:");
+      sb.append(this.validUntilTime);
+      first = false;
+    }
+    if (isSetStorageResourceType()) {
+      if (!first) sb.append(", ");
+      sb.append("storageResourceType:");
+      if (this.storageResourceType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.storageResourceType);
+      }
+      first = false;
+    }
+    if (isSetReplicaPersistentType()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaPersistentType:");
+      if (this.replicaPersistentType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaPersistentType);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 FileReplicaModelStandardSchemeFactory implements SchemeFactory {
+    public FileReplicaModelStandardScheme getScheme() {
+      return new FileReplicaModelStandardScheme();
+    }
+  }
+
+  private static class FileReplicaModelStandardScheme extends StandardScheme<FileReplicaModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, FileReplicaModel 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: // REPLICA_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.replicaName = iprot.readString();
+              struct.setReplicaNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // REPLICA_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.replicaDescription = iprot.readString();
+              struct.setReplicaDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // STORAGE_HOSTNAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageHostname = iprot.readString();
+              struct.setStorageHostnameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // STORAGE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageResourceId = iprot.readString();
+              struct.setStorageResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // FILE_PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.filePath = iprot.readString();
+              struct.setFilePathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // 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 7: // VALID_UNTIL_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.validUntilTime = iprot.readI64();
+              struct.setValidUntilTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // STORAGE_RESOURCE_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.storageResourceType = org.apache.airavata.model.data.replica.StorageResourceType.findByValue(iprot.readI32());
+              struct.setStorageResourceTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // REPLICA_PERSISTENT_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.replicaPersistentType = org.apache.airavata.model.data.replica.ReplicaPersistentType.findByValue(iprot.readI32());
+              struct.setReplicaPersistentTypeIsSet(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, FileReplicaModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.replicaName != null) {
+        if (struct.isSetReplicaName()) {
+          oprot.writeFieldBegin(REPLICA_NAME_FIELD_DESC);
+          oprot.writeString(struct.replicaName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaDescription != null) {
+        if (struct.isSetReplicaDescription()) {
+          oprot.writeFieldBegin(REPLICA_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.replicaDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.storageHostname != null) {
+        if (struct.isSetStorageHostname()) {
+          oprot.writeFieldBegin(STORAGE_HOSTNAME_FIELD_DESC);
+          oprot.writeString(struct.storageHostname);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.storageResourceId != null) {
+        if (struct.isSetStorageResourceId()) {
+          oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
+          oprot.writeString(struct.storageResourceId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.filePath != null) {
+        if (struct.isSetFilePath()) {
+          oprot.writeFieldBegin(FILE_PATH_FIELD_DESC);
+          oprot.writeString(struct.filePath);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetValidUntilTime()) {
+        oprot.writeFieldBegin(VALID_UNTIL_TIME_FIELD_DESC);
+        oprot.writeI64(struct.validUntilTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.storageResourceType != null) {
+        if (struct.isSetStorageResourceType()) {
+          oprot.writeFieldBegin(STORAGE_RESOURCE_TYPE_FIELD_DESC);
+          oprot.writeI32(struct.storageResourceType.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaPersistentType != null) {
+        if (struct.isSetReplicaPersistentType()) {
+          oprot.writeFieldBegin(REPLICA_PERSISTENT_TYPE_FIELD_DESC);
+          oprot.writeI32(struct.replicaPersistentType.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class FileReplicaModelTupleSchemeFactory implements SchemeFactory {
+    public FileReplicaModelTupleScheme getScheme() {
+      return new FileReplicaModelTupleScheme();
+    }
+  }
+
+  private static class FileReplicaModelTupleScheme extends TupleScheme<FileReplicaModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, FileReplicaModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetReplicaName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetReplicaDescription()) {
+        optionals.set(1);
+      }
+      if (struct.isSetStorageHostname()) {
+        optionals.set(2);
+      }
+      if (struct.isSetStorageResourceId()) {
+        optionals.set(3);
+      }
+      if (struct.isSetFilePath()) {
+        optionals.set(4);
+      }
+      if (struct.isSetCreationTime()) {
+        optionals.set(5);
+      }
+      if (struct.isSetValidUntilTime()) {
+        optionals.set(6);
+      }
+      if (struct.isSetStorageResourceType()) {
+        optionals.set(7);
+      }
+      if (struct.isSetReplicaPersistentType()) {
+        optionals.set(8);
+      }
+      oprot.writeBitSet(optionals, 9);
+      if (struct.isSetReplicaName()) {
+        oprot.writeString(struct.replicaName);
+      }
+      if (struct.isSetReplicaDescription()) {
+        oprot.writeString(struct.replicaDescription);
+      }
+      if (struct.isSetStorageHostname()) {
+        oprot.writeString(struct.storageHostname);
+      }
+      if (struct.isSetStorageResourceId()) {
+        oprot.writeString(struct.storageResourceId);
+      }
+      if (struct.isSetFilePath()) {
+        oprot.writeString(struct.filePath);
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetValidUntilTime()) {
+        oprot.writeI64(struct.validUntilTime);
+      }
+      if (struct.isSetStorageResourceType()) {
+        oprot.writeI32(struct.storageResourceType.getValue());
+      }
+      if (struct.isSetReplicaPersistentType()) {
+        oprot.writeI32(struct.replicaPersistentType.getValue());
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, FileReplicaModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(9);
+      if (incoming.get(0)) {
+        struct.replicaName = iprot.readString();
+        struct.setReplicaNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.replicaDescription = iprot.readString();
+        struct.setReplicaDescriptionIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.storageHostname = iprot.readString();
+        struct.setStorageHostnameIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.storageResourceId = iprot.readString();
+        struct.setStorageResourceIdIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.filePath = iprot.readString();
+        struct.setFilePathIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.validUntilTime = iprot.readI64();
+        struct.setValidUntilTimeIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.storageResourceType = org.apache.airavata.model.data.replica.StorageResourceType.findByValue(iprot.readI32());
+        struct.setStorageResourceTypeIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.replicaPersistentType = org.apache.airavata.model.data.replica.ReplicaPersistentType.findByValue(iprot.readI32());
+        struct.setReplicaPersistentTypeIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java
new file mode 100644
index 0000000..518ca9f
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java
@@ -0,0 +1,62 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum ReplicaPersistentType implements org.apache.thrift.TEnum {
+  TRANSIENT(0),
+  PERSISTENT(1);
+
+  private final int value;
+
+  private ReplicaPersistentType(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 ReplicaPersistentType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return TRANSIENT;
+      case 1:
+        return PERSISTENT;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/StorageResourceType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/StorageResourceType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/StorageResourceType.java
new file mode 100644
index 0000000..1fb5982
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/StorageResourceType.java
@@ -0,0 +1,71 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.replica;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum StorageResourceType implements org.apache.thrift.TEnum {
+  GATEWAY_DATA_STORE(0),
+  BACKUP_GATEWAY_DATA_STORE(1),
+  COMPUTE_RESOURCE(2),
+  LONG_TERM_STORAGE_RESOURCE(3),
+  OTHER(4);
+
+  private final int value;
+
+  private StorageResourceType(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 StorageResourceType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return GATEWAY_DATA_STORE;
+      case 1:
+        return BACKUP_GATEWAY_DATA_STORE;
+      case 2:
+        return COMPUTE_RESOURCE;
+      case 3:
+        return LONG_TERM_STORAGE_RESOURCE;
+      case 4:
+        return OTHER;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferMode.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferMode.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferMode.java
new file mode 100644
index 0000000..bf0134a
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferMode.java
@@ -0,0 +1,62 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.transfer;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum FileTransferMode implements org.apache.thrift.TEnum {
+  SYNC(0),
+  ASYNC(1);
+
+  private final int value;
+
+  private FileTransferMode(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 FileTransferMode findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return SYNC;
+      case 1:
+        return ASYNC;
+      default:
+        return null;
+    }
+  }
+}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/metadata/MetadataModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/metadata/MetadataModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/metadata/MetadataModel.java
new file mode 100644
index 0000000..d6688e8
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/metadata/MetadataModel.java
@@ -0,0 +1,1474 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.metadata;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
+public class MetadataModel implements org.apache.thrift.TBase<MetadataModel, MetadataModel._Fields>, java.io.Serializable, Cloneable, Comparable<MetadataModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MetadataModel");
+
+  private static final org.apache.thrift.protocol.TField METADATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("metadataId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField SHARED_USERS_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedUsers", org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField SHARED_PUBLIC_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedPublic", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField USER_FRIENDLY_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userFriendlyName", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField USER_FRIENDLY_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("userFriendlyDescription", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField METADATA_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("metadataType", org.apache.thrift.protocol.TType.I32, (short)8);
+  private static final org.apache.thrift.protocol.TField ASSOCIATED_ENTITY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("associatedEntityId", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField CUSTOM_INFORMATION_FIELD_DESC = new org.apache.thrift.protocol.TField("customInformation", org.apache.thrift.protocol.TType.MAP, (short)10);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new MetadataModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new MetadataModelTupleSchemeFactory());
+  }
+
+  private String metadataId; // optional
+  private String gatewayId; // optional
+  private String username; // optional
+  private List<String> sharedUsers; // optional
+  private boolean sharedPublic; // optional
+  private String userFriendlyName; // optional
+  private String userFriendlyDescription; // optional
+  private MetadataType metadataType; // optional
+  private String associatedEntityId; // optional
+  private Map<String,String> customInformation; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    METADATA_ID((short)1, "metadataId"),
+    GATEWAY_ID((short)2, "gatewayId"),
+    USERNAME((short)3, "username"),
+    SHARED_USERS((short)4, "sharedUsers"),
+    SHARED_PUBLIC((short)5, "sharedPublic"),
+    USER_FRIENDLY_NAME((short)6, "userFriendlyName"),
+    USER_FRIENDLY_DESCRIPTION((short)7, "userFriendlyDescription"),
+    /**
+     * 
+     * @see MetadataType
+     */
+    METADATA_TYPE((short)8, "metadataType"),
+    ASSOCIATED_ENTITY_ID((short)9, "associatedEntityId"),
+    CUSTOM_INFORMATION((short)10, "customInformation");
+
+    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: // METADATA_ID
+          return METADATA_ID;
+        case 2: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 3: // USERNAME
+          return USERNAME;
+        case 4: // SHARED_USERS
+          return SHARED_USERS;
+        case 5: // SHARED_PUBLIC
+          return SHARED_PUBLIC;
+        case 6: // USER_FRIENDLY_NAME
+          return USER_FRIENDLY_NAME;
+        case 7: // USER_FRIENDLY_DESCRIPTION
+          return USER_FRIENDLY_DESCRIPTION;
+        case 8: // METADATA_TYPE
+          return METADATA_TYPE;
+        case 9: // ASSOCIATED_ENTITY_ID
+          return ASSOCIATED_ENTITY_ID;
+        case 10: // CUSTOM_INFORMATION
+          return CUSTOM_INFORMATION;
+        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 __SHAREDPUBLIC_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.METADATA_ID,_Fields.GATEWAY_ID,_Fields.USERNAME,_Fields.SHARED_USERS,_Fields.SHARED_PUBLIC,_Fields.USER_FRIENDLY_NAME,_Fields.USER_FRIENDLY_DESCRIPTION,_Fields.METADATA_TYPE,_Fields.ASSOCIATED_ENTITY_ID,_Fields.CUSTOM_INFORMATION};
+  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.METADATA_ID, new org.apache.thrift.meta_data.FieldMetaData("metadataId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SHARED_USERS, new org.apache.thrift.meta_data.FieldMetaData("sharedUsers", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.SHARED_PUBLIC, new org.apache.thrift.meta_data.FieldMetaData("sharedPublic", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.USER_FRIENDLY_NAME, new org.apache.thrift.meta_data.FieldMetaData("userFriendlyName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.USER_FRIENDLY_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("userFriendlyDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.METADATA_TYPE, new org.apache.thrift.meta_data.FieldMetaData("metadataType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, MetadataType.class)));
+    tmpMap.put(_Fields.ASSOCIATED_ENTITY_ID, new org.apache.thrift.meta_data.FieldMetaData("associatedEntityId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.CUSTOM_INFORMATION, new org.apache.thrift.meta_data.FieldMetaData("customInformation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(MetadataModel.class, metaDataMap);
+  }
+
+  public MetadataModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public MetadataModel(MetadataModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetMetadataId()) {
+      this.metadataId = other.metadataId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetUsername()) {
+      this.username = other.username;
+    }
+    if (other.isSetSharedUsers()) {
+      List<String> __this__sharedUsers = new ArrayList<String>(other.sharedUsers);
+      this.sharedUsers = __this__sharedUsers;
+    }
+    this.sharedPublic = other.sharedPublic;
+    if (other.isSetUserFriendlyName()) {
+      this.userFriendlyName = other.userFriendlyName;
+    }
+    if (other.isSetUserFriendlyDescription()) {
+      this.userFriendlyDescription = other.userFriendlyDescription;
+    }
+    if (other.isSetMetadataType()) {
+      this.metadataType = other.metadataType;
+    }
+    if (other.isSetAssociatedEntityId()) {
+      this.associatedEntityId = other.associatedEntityId;
+    }
+    if (other.isSetCustomInformation()) {
+      Map<String,String> __this__customInformation = new HashMap<String,String>(other.customInformation);
+      this.customInformation = __this__customInformation;
+    }
+  }
+
+  public MetadataModel deepCopy() {
+    return new MetadataModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.metadataId = null;
+    this.gatewayId = null;
+    this.username = null;
+    this.sharedUsers = null;
+    setSharedPublicIsSet(false);
+    this.sharedPublic = false;
+    this.userFriendlyName = null;
+    this.userFriendlyDescription = null;
+    this.metadataType = null;
+    this.associatedEntityId = null;
+    this.customInformation = null;
+  }
+
+  public String getMetadataId() {
+    return this.metadataId;
+  }
+
+  public void setMetadataId(String metadataId) {
+    this.metadataId = metadataId;
+  }
+
+  public void unsetMetadataId() {
+    this.metadataId = null;
+  }
+
+  /** Returns true if field metadataId is set (has been assigned a value) and false otherwise */
+  public boolean isSetMetadataId() {
+    return this.metadataId != null;
+  }
+
+  public void setMetadataIdIsSet(boolean value) {
+    if (!value) {
+      this.metadataId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public void setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public String getUsername() {
+    return this.username;
+  }
+
+  public void setUsername(String username) {
+    this.username = username;
+  }
+
+  public void unsetUsername() {
+    this.username = null;
+  }
+
+  /** Returns true if field username is set (has been assigned a value) and false otherwise */
+  public boolean isSetUsername() {
+    return this.username != null;
+  }
+
+  public void setUsernameIsSet(boolean value) {
+    if (!value) {
+      this.username = null;
+    }
+  }
+
+  public int getSharedUsersSize() {
+    return (this.sharedUsers == null) ? 0 : this.sharedUsers.size();
+  }
+
+  public java.util.Iterator<String> getSharedUsersIterator() {
+    return (this.sharedUsers == null) ? null : this.sharedUsers.iterator();
+  }
+
+  public void addToSharedUsers(String elem) {
+    if (this.sharedUsers == null) {
+      this.sharedUsers = new ArrayList<String>();
+    }
+    this.sharedUsers.add(elem);
+  }
+
+  public List<String> getSharedUsers() {
+    return this.sharedUsers;
+  }
+
+  public void setSharedUsers(List<String> sharedUsers) {
+    this.sharedUsers = sharedUsers;
+  }
+
+  public void unsetSharedUsers() {
+    this.sharedUsers = null;
+  }
+
+  /** Returns true if field sharedUsers is set (has been assigned a value) and false otherwise */
+  public boolean isSetSharedUsers() {
+    return this.sharedUsers != null;
+  }
+
+  public void setSharedUsersIsSet(boolean value) {
+    if (!value) {
+      this.sharedUsers = null;
+    }
+  }
+
+  public boolean isSharedPublic() {
+    return this.sharedPublic;
+  }
+
+  public void setSharedPublic(boolean sharedPublic) {
+    this.sharedPublic = sharedPublic;
+    setSharedPublicIsSet(true);
+  }
+
+  public void unsetSharedPublic() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
+  }
+
+  /** Returns true if field sharedPublic is set (has been assigned a value) and false otherwise */
+  public boolean isSetSharedPublic() {
+    return EncodingUtils.testBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
+  }
+
+  public void setSharedPublicIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID, value);
+  }
+
+  public String getUserFriendlyName() {
+    return this.userFriendlyName;
+  }
+
+  public void setUserFriendlyName(String userFriendlyName) {
+    this.userFriendlyName = userFriendlyName;
+  }
+
+  public void unsetUserFriendlyName() {
+    this.userFriendlyName = null;
+  }
+
+  /** Returns true if field userFriendlyName is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserFriendlyName() {
+    return this.userFriendlyName != null;
+  }
+
+  public void setUserFriendlyNameIsSet(boolean value) {
+    if (!value) {
+      this.userFriendlyName = null;
+    }
+  }
+
+  public String getUserFriendlyDescription() {
+    return this.userFriendlyDescription;
+  }
+
+  public void setUserFriendlyDescription(String userFriendlyDescription) {
+    this.userFriendlyDescription = userFriendlyDescription;
+  }
+
+  public void unsetUserFriendlyDescription() {
+    this.userFriendlyDescription = null;
+  }
+
+  /** Returns true if field userFriendlyDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserFriendlyDescription() {
+    return this.userFriendlyDescription != null;
+  }
+
+  public void setUserFriendlyDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.userFriendlyDescription = null;
+    }
+  }
+
+  /**
+   * 
+   * @see MetadataType
+   */
+  public MetadataType getMetadataType() {
+    return this.metadataType;
+  }
+
+  /**
+   * 
+   * @see MetadataType
+   */
+  public void setMetadataType(MetadataType metadataType) {
+    this.metadataType = metadataType;
+  }
+
+  public void unsetMetadataType() {
+    this.metadataType = null;
+  }
+
+  /** Returns true if field metadataType is set (has been assigned a value) and false otherwise */
+  public boolean isSetMetadataType() {
+    return this.metadataType != null;
+  }
+
+  public void setMetadataTypeIsSet(boolean value) {
+    if (!value) {
+      this.metadataType = null;
+    }
+  }
+
+  public String getAssociatedEntityId() {
+    return this.associatedEntityId;
+  }
+
+  public void setAssociatedEntityId(String associatedEntityId) {
+    this.associatedEntityId = associatedEntityId;
+  }
+
+  public void unsetAssociatedEntityId() {
+    this.associatedEntityId = null;
+  }
+
+  /** Returns true if field associatedEntityId is set (has been assigned a value) and false otherwise */
+  public boolean isSetAssociatedEntityId() {
+    return this.associatedEntityId != null;
+  }
+
+  public void setAssociatedEntityIdIsSet(boolean value) {
+    if (!value) {
+      this.associatedEntityId = null;
+    }
+  }
+
+  public int getCustomInformationSize() {
+    return (this.customInformation == null) ? 0 : this.customInformation.size();
+  }
+
+  public void putToCustomInformation(String key, String val) {
+    if (this.customInformation == null) {
+      this.customInformation = new HashMap<String,String>();
+    }
+    this.customInformation.put(key, val);
+  }
+
+  public Map<String,String> getCustomInformation() {
+    return this.customInformation;
+  }
+
+  public void setCustomInformation(Map<String,String> customInformation) {
+    this.customInformation = customInformation;
+  }
+
+  public void unsetCustomInformation() {
+    this.customInformation = null;
+  }
+
+  /** Returns true if field customInformation is set (has been assigned a value) and false otherwise */
+  public boolean isSetCustomInformation() {
+    return this.customInformation != null;
+  }
+
+  public void setCustomInformationIsSet(boolean value) {
+    if (!value) {
+      this.customInformation = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case METADATA_ID:
+      if (value == null) {
+        unsetMetadataId();
+      } else {
+        setMetadataId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case USERNAME:
+      if (value == null) {
+        unsetUsername();
+      } else {
+        setUsername((String)value);
+      }
+      break;
+
+    case SHARED_USERS:
+      if (value == null) {
+        unsetSharedUsers();
+      } else {
+        setSharedUsers((List<String>)value);
+      }
+      break;
+
+    case SHARED_PUBLIC:
+      if (value == null) {
+        unsetSharedPublic();
+      } else {
+        setSharedPublic((Boolean)value);
+      }
+      break;
+
+    case USER_FRIENDLY_NAME:
+      if (value == null) {
+        unsetUserFriendlyName();
+      } else {
+        setUserFriendlyName((String)value);
+      }
+      break;
+
+    case USER_FRIENDLY_DESCRIPTION:
+      if (value == null) {
+        unsetUserFriendlyDescription();
+      } else {
+        setUserFriendlyDescription((String)value);
+      }
+      break;
+
+    case METADATA_TYPE:
+      if (value == null) {
+        unsetMetadataType();
+      } else {
+        setMetadataType((MetadataType)value);
+      }
+      break;
+
+    case ASSOCIATED_ENTITY_ID:
+      if (value == null) {
+        unsetAssociatedEntityId();
+      } else {
+        setAssociatedEntityId((String)value);
+      }
+      break;
+
+    case CUSTOM_INFORMATION:
+      if (value == null) {
+        unsetCustomInformation();
+      } else {
+        setCustomInformation((Map<String,String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case METADATA_ID:
+      return getMetadataId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case USERNAME:
+      return getUsername();
+
+    case SHARED_USERS:
+      return getSharedUsers();
+
+    case SHARED_PUBLIC:
+      return isSharedPublic();
+
+    case USER_FRIENDLY_NAME:
+      return getUserFriendlyName();
+
+    case USER_FRIENDLY_DESCRIPTION:
+      return getUserFriendlyDescription();
+
+    case METADATA_TYPE:
+      return getMetadataType();
+
+    case ASSOCIATED_ENTITY_ID:
+      return getAssociatedEntityId();
+
+    case CUSTOM_INFORMATION:
+      return getCustomInformation();
+
+    }
+    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 METADATA_ID:
+      return isSetMetadataId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    case USERNAME:
+      return isSetUsername();
+    case SHARED_USERS:
+      return isSetSharedUsers();
+    case SHARED_PUBLIC:
+      return isSetSharedPublic();
+    case USER_FRIENDLY_NAME:
+      return isSetUserFriendlyName();
+    case USER_FRIENDLY_DESCRIPTION:
+      return isSetUserFriendlyDescription();
+    case METADATA_TYPE:
+      return isSetMetadataType();
+    case ASSOCIATED_ENTITY_ID:
+      return isSetAssociatedEntityId();
+    case CUSTOM_INFORMATION:
+      return isSetCustomInformation();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof MetadataModel)
+      return this.equals((MetadataModel)that);
+    return false;
+  }
+
+  public boolean equals(MetadataModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_metadataId = true && this.isSetMetadataId();
+    boolean that_present_metadataId = true && that.isSetMetadataId();
+    if (this_present_metadataId || that_present_metadataId) {
+      if (!(this_present_metadataId && that_present_metadataId))
+        return false;
+      if (!this.metadataId.equals(that.metadataId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_username = true && this.isSetUsername();
+    boolean that_present_username = true && that.isSetUsername();
+    if (this_present_username || that_present_username) {
+      if (!(this_present_username && that_present_username))
+        return false;
+      if (!this.username.equals(that.username))
+        return false;
+    }
+
+    boolean this_present_sharedUsers = true && this.isSetSharedUsers();
+    boolean that_present_sharedUsers = true && that.isSetSharedUsers();
+    if (this_present_sharedUsers || that_present_sharedUsers) {
+      if (!(this_present_sharedUsers && that_present_sharedUsers))
+        return false;
+      if (!this.sharedUsers.equals(that.sharedUsers))
+        return false;
+    }
+
+    boolean this_present_sharedPublic = true && this.isSetSharedPublic();
+    boolean that_present_sharedPublic = true && that.isSetSharedPublic();
+    if (this_present_sharedPublic || that_present_sharedPublic) {
+      if (!(this_present_sharedPublic && that_present_sharedPublic))
+        return false;
+      if (this.sharedPublic != that.sharedPublic)
+        return false;
+    }
+
+    boolean this_present_userFriendlyName = true && this.isSetUserFriendlyName();
+    boolean that_present_userFriendlyName = true && that.isSetUserFriendlyName();
+    if (this_present_userFriendlyName || that_present_userFriendlyName) {
+      if (!(this_present_userFriendlyName && that_present_userFriendlyName))
+        return false;
+      if (!this.userFriendlyName.equals(that.userFriendlyName))
+        return false;
+    }
+
+    boolean this_present_userFriendlyDescription = true && this.isSetUserFriendlyDescription();
+    boolean that_present_userFriendlyDescription = true && that.isSetUserFriendlyDescription();
+    if (this_present_userFriendlyDescription || that_present_userFriendlyDescription) {
+      if (!(this_present_userFriendlyDescription && that_present_userFriendlyDescription))
+        return false;
+      if (!this.userFriendlyDescription.equals(that.userFriendlyDescription))
+        return false;
+    }
+
+    boolean this_present_metadataType = true && this.isSetMetadataType();
+    boolean that_present_metadataType = true && that.isSetMetadataType();
+    if (this_present_metadataType || that_present_metadataType) {
+      if (!(this_present_metadataType && that_present_metadataType))
+        return false;
+      if (!this.metadataType.equals(that.metadataType))
+        return false;
+    }
+
+    boolean this_present_associatedEntityId = true && this.isSetAssociatedEntityId();
+    boolean that_present_associatedEntityId = true && that.isSetAssociatedEntityId();
+    if (this_present_associatedEntityId || that_present_associatedEntityId) {
+      if (!(this_present_associatedEntityId && that_present_associatedEntityId))
+        return false;
+      if (!this.associatedEntityId.equals(that.associatedEntityId))
+        return false;
+    }
+
+    boolean this_present_customInformation = true && this.isSetCustomInformation();
+    boolean that_present_customInformation = true && that.isSetCustomInformation();
+    if (this_present_customInformation || that_present_customInformation) {
+      if (!(this_present_customInformation && that_present_customInformation))
+        return false;
+      if (!this.customInformation.equals(that.customInformation))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_metadataId = true && (isSetMetadataId());
+    list.add(present_metadataId);
+    if (present_metadataId)
+      list.add(metadataId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_username = true && (isSetUsername());
+    list.add(present_username);
+    if (present_username)
+      list.add(username);
+
+    boolean present_sharedUsers = true && (isSetSharedUsers());
+    list.add(present_sharedUsers);
+    if (present_sharedUsers)
+      list.add(sharedUsers);
+
+    boolean present_sharedPublic = true && (isSetSharedPublic());
+    list.add(present_sharedPublic);
+    if (present_sharedPublic)
+      list.add(sharedPublic);
+
+    boolean present_userFriendlyName = true && (isSetUserFriendlyName());
+    list.add(present_userFriendlyName);
+    if (present_userFriendlyName)
+      list.add(userFriendlyName);
+
+    boolean present_userFriendlyDescription = true && (isSetUserFriendlyDescription());
+    list.add(present_userFriendlyDescription);
+    if (present_userFriendlyDescription)
+      list.add(userFriendlyDescription);
+
+    boolean present_metadataType = true && (isSetMetadataType());
+    list.add(present_metadataType);
+    if (present_metadataType)
+      list.add(metadataType.getValue());
+
+    boolean present_associatedEntityId = true && (isSetAssociatedEntityId());
+    list.add(present_associatedEntityId);
+    if (present_associatedEntityId)
+      list.add(associatedEntityId);
+
+    boolean present_customInformation = true && (isSetCustomInformation());
+    list.add(present_customInformation);
+    if (present_customInformation)
+      list.add(customInformation);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(MetadataModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetMetadataId()).compareTo(other.isSetMetadataId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMetadataId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.metadataId, other.metadataId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUsername()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSharedUsers()).compareTo(other.isSetSharedUsers());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSharedUsers()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedUsers, other.sharedUsers);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSharedPublic()).compareTo(other.isSetSharedPublic());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSharedPublic()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedPublic, other.sharedPublic);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUserFriendlyName()).compareTo(other.isSetUserFriendlyName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserFriendlyName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userFriendlyName, other.userFriendlyName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUserFriendlyDescription()).compareTo(other.isSetUserFriendlyDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserFriendlyDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userFriendlyDescription, other.userFriendlyDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMetadataType()).compareTo(other.isSetMetadataType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMetadataType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.metadataType, other.metadataType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAssociatedEntityId()).compareTo(other.isSetAssociatedEntityId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAssociatedEntityId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.associatedEntityId, other.associatedEntityId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCustomInformation()).compareTo(other.isSetCustomInformation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCustomInformation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.customInformation, other.customInformation);
+      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("MetadataModel(");
+    boolean first = true;
+
+    if (isSetMetadataId()) {
+      sb.append("metadataId:");
+      if (this.metadataId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.metadataId);
+      }
+      first = false;
+    }
+    if (isSetGatewayId()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
+    }
+    if (isSetUsername()) {
+      if (!first) sb.append(", ");
+      sb.append("username:");
+      if (this.username == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.username);
+      }
+      first = false;
+    }
+    if (isSetSharedUsers()) {
+      if (!first) sb.append(", ");
+      sb.append("sharedUsers:");
+      if (this.sharedUsers == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.sharedUsers);
+      }
+      first = false;
+    }
+    if (isSetSharedPublic()) {
+      if (!first) sb.append(", ");
+      sb.append("sharedPublic:");
+      sb.append(this.sharedPublic);
+      first = false;
+    }
+    if (isSetUserFriendlyName()) {
+      if (!first) sb.append(", ");
+      sb.append("userFriendlyName:");
+      if (this.userFriendlyName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userFriendlyName);
+      }
+      first = false;
+    }
+    if (isSetUserFriendlyDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("userFriendlyDescription:");
+      if (this.userFriendlyDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userFriendlyDescription);
+      }
+      first = false;
+    }
+    if (isSetMetadataType()) {
+      if (!first) sb.append(", ");
+      sb.append("metadataType:");
+      if (this.metadataType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.metadataType);
+      }
+      first = false;
+    }
+    if (isSetAssociatedEntityId()) {
+      if (!first) sb.append(", ");
+      sb.append("associatedEntityId:");
+      if (this.associatedEntityId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.associatedEntityId);
+      }
+      first = false;
+    }
+    if (isSetCustomInformation()) {
+      if (!first) sb.append(", ");
+      sb.append("customInformation:");
+      if (this.customInformation == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.customInformation);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 MetadataModelStandardSchemeFactory implements SchemeFactory {
+    public MetadataModelStandardScheme getScheme() {
+      return new MetadataModelStandardScheme();
+    }
+  }
+
+  private static class MetadataModelStandardScheme extends StandardScheme<MetadataModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, MetadataModel 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: // METADATA_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.metadataId = iprot.readString();
+              struct.setMetadataIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // USERNAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.username = iprot.readString();
+              struct.setUsernameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // SHARED_USERS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.sharedUsers = new ArrayList<String>(_list0.size);
+                String _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = iprot.readString();
+                  struct.sharedUsers.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setSharedUsersIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // SHARED_PUBLIC
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.sharedPublic = iprot.readBool();
+              struct.setSharedPublicIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // USER_FRIENDLY_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userFriendlyName = iprot.readString();
+              struct.setUserFriendlyNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // USER_FRIENDLY_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userFriendlyDescription = iprot.readString();
+              struct.setUserFriendlyDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // METADATA_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.metadataType = org.apache.airavata.model.data.metadata.MetadataType.findByValue(iprot.readI32());
+              struct.setMetadataTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // ASSOCIATED_ENTITY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.associatedEntityId = iprot.readString();
+              struct.setAssociatedEntityIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // CUSTOM_INFORMATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map3 = iprot.readMapBegin();
+                struct.customInformation = new HashMap<String,String>(2*_map3.size);
+                String _key4;
+                String _val5;
+                for (int _i6 = 0; _i6 < _map3.size; ++_i6)
+                {
+                  _key4 = iprot.readString();
+                  _val5 = iprot.readString();
+                  struct.customInformation.put(_key4, _val5);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setCustomInformationIsSet(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, MetadataModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.metadataId != null) {
+        if (struct.isSetMetadataId()) {
+          oprot.writeFieldBegin(METADATA_ID_FIELD_DESC);
+          oprot.writeString(struct.metadataId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.gatewayId != null) {
+        if (struct.isSetGatewayId()) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.username != null) {
+        if (struct.isSetUsername()) {
+          oprot.writeFieldBegin(USERNAME_FIELD_DESC);
+          oprot.writeString(struct.username);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.sharedUsers != null) {
+        if (struct.isSetSharedUsers()) {
+          oprot.writeFieldBegin(SHARED_USERS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.sharedUsers.size()));
+            for (String _iter7 : struct.sharedUsers)
+            {
+              oprot.writeString(_iter7);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetSharedPublic()) {
+        oprot.writeFieldBegin(SHARED_PUBLIC_FIELD_DESC);
+        oprot.writeBool(struct.sharedPublic);
+        oprot.writeFieldEnd();
+      }
+      if (struct.userFriendlyName != null) {
+        if (struct.isSetUserFriendlyName()) {
+          oprot.writeFieldBegin(USER_FRIENDLY_NAME_FIELD_DESC);
+          oprot.writeString(struct.userFriendlyName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.userFriendlyDescription != null) {
+        if (struct.isSetUserFriendlyDescription()) {
+          oprot.writeFieldBegin(USER_FRIENDLY_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.userFriendlyDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.metadataType != null) {
+        if (struct.isSetMetadataType()) {
+          oprot.writeFieldBegin(METADATA_TYPE_FIELD_DESC);
+          oprot.writeI32(struct.metadataType.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.associatedEntityId != null) {
+        if (struct.isSetAssociatedEntityId()) {
+          oprot.writeFieldBegin(ASSOCIATED_ENTITY_ID_FIELD_DESC);
+          oprot.writeString(struct.associatedEntityId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.customInformation != null) {
+        if (struct.isSetCustomInformation()) {
+          oprot.writeFieldBegin(CUSTOM_INFORMATION_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.customInformation.size()));
+            for (Map.Entry<String, String> _iter8 : struct.customInformation.entrySet())
+            {
+              oprot.writeString(_iter8.getKey());
+              oprot.writeString(_iter8.getValue());
+            }
+            oprot.writeMapEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class MetadataModelTupleSchemeFactory implements SchemeFactory {
+    public MetadataModelTupleScheme getScheme() {
+      return new MetadataModelTupleScheme();
+    }
+  }
+
+  private static class MetadataModelTupleScheme extends TupleScheme<MetadataModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, MetadataModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetMetadataId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetGatewayId()) {
+        optionals.set(1);
+      }
+      if (struct.isSetUsername()) {
+        optionals.set(2);
+      }
+      if (struct.isSetSharedUsers()) {
+        optionals.set(3);
+      }
+      if (struct.isSetSharedPublic()) {
+        optionals.set(4);
+      }
+      if (struct.isSetUserFriendlyName()) {
+        optionals.set(5);
+      }
+      if (struct.isSetUserFriendlyDescription()) {
+        optionals.set(6);
+      }
+      if (struct.isSetMetadataType()) {
+        optionals.set(7);
+      }
+      if (struct.isSetAssociatedEntityId()) {
+        optionals.set(8);
+      }
+      if (struct.isSetCustomInformation()) {
+        optionals.set(9);
+      }
+      oprot.writeBitSet(optionals, 10);
+      if (struct.isSetMetadataId()) {
+        oprot.writeString(struct.metadataId);
+      }
+      if (struct.isSetGatewayId()) {
+        oprot.writeString(struct.gatewayId);
+      }
+      if (struct.isSetUsername()) {
+        oprot.writeString(struct.username);
+      }
+      if (struct.isSetSharedUsers()) {
+        {
+          oprot.writeI32(struct.sharedUsers.size());
+          for (String _iter9 : struct.sharedUsers)
+          {
+            oprot.writeString(_iter9);
+          }
+        }
+      }
+      if (struct.isSetSharedPublic()) {
+        oprot.writeBool(struct.sharedPublic);
+      }
+      if (struct.isSetUserFriendlyName()) {
+        oprot.writeString(struct.userFriendlyName);
+      }
+      if (struct.isSetUserFriendlyDescription()) {
+        oprot.writeString(struct.userFriendlyDescription);
+      }
+      if (struct.isSetMetadataType()) {
+        oprot.writeI32(struct.metadataType.getValue());
+      }
+      if (struct.isSetAssociatedEntityId()) {
+        oprot.writeString(struct.associatedEntityId);
+      }
+      if (struct.isSetCustomInformation()) {
+        {
+          oprot.writeI32(struct.customInformation.size());
+          for (Map.Entry<String, String> _iter10 : struct.customInformation.entrySet())
+          {
+            oprot.writeString(_iter10.getKey());
+            oprot.writeString(_iter10.getValue());
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, MetadataModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(10);
+      if (incoming.get(0)) {
+        struct.metadataId = iprot.readString();
+        struct.setMetadataIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.username = iprot.readString();
+        struct.setUsernameIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list11 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.sharedUsers = new ArrayList<String>(_list11.size);
+          String _elem12;
+          for (int _i13 = 0; _i13 < _list11.size; ++_i13)
+          {
+            _elem12 = iprot.readString();
+            struct.sharedUsers.add(_elem12);
+          }
+        }
+        struct.setSharedUsersIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.sharedPublic = iprot.readBool();
+        struct.setSharedPublicIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.userFriendlyName = iprot.readString();
+        struct.setUserFriendlyNameIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.userFriendlyDescription = iprot.readString();
+        struct.setUserFriendlyDescriptionIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.metadataType = org.apache.airavata.model.data.metadata.MetadataType.findByValue(iprot.readI32());
+        struct.setMetadataTypeIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.associatedEntityId = iprot.readString();
+        struct.setAssociatedEntityIdIsSet(true);
+      }
+      if (incoming.get(9)) {
+        {
+          org.apache.thrift.protocol.TMap _map14 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.customInformation = new HashMap<String,String>(2*_map14.size);
+          String _key15;
+          String _val16;
+          for (int _i17 = 0; _i17 < _map14.size; ++_i17)
+          {
+            _key15 = iprot.readString();
+            _val16 = iprot.readString();
+            struct.customInformation.put(_key15, _val16);
+          }
+        }
+        struct.setCustomInformationIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/metadata/MetadataType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/metadata/MetadataType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/metadata/MetadataType.java
new file mode 100644
index 0000000..693da5d
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/metadata/MetadataType.java
@@ -0,0 +1,62 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.metadata;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum MetadataType implements org.apache.thrift.TEnum {
+  FILE(0),
+  COLLECTION(1);
+
+  private final int value;
+
+  private MetadataType(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 MetadataType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return FILE;
+      case 1:
+        return COLLECTION;
+      default:
+        return null;
+    }
+  }
+}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/Message.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/Message.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/Message.java
new file mode 100644
index 0000000..7d1235a
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/Message.java
@@ -0,0 +1,870 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class Message implements org.apache.thrift.TBase<Message, Message._Fields>, java.io.Serializable, Cloneable, Comparable<Message> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Message");
+
+  private static final org.apache.thrift.protocol.TField EVENT_FIELD_DESC = new org.apache.thrift.protocol.TField("event", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField MESSAGE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("messageId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField MESSAGE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("messageType", org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField UPDATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("updatedTime", org.apache.thrift.protocol.TType.I64, (short)4);
+  private static final org.apache.thrift.protocol.TField MESSAGE_LEVEL_FIELD_DESC = new org.apache.thrift.protocol.TField("messageLevel", org.apache.thrift.protocol.TType.I32, (short)5);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new MessageStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new MessageTupleSchemeFactory());
+  }
+
+  public ByteBuffer event; // required
+  public String messageId; // required
+  /**
+   * 
+   * @see MessageType
+   */
+  public MessageType messageType; // required
+  public long updatedTime; // optional
+  /**
+   * 
+   * @see MessageLevel
+   */
+  public MessageLevel messageLevel; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    EVENT((short)1, "event"),
+    MESSAGE_ID((short)2, "messageId"),
+    /**
+     * 
+     * @see MessageType
+     */
+    MESSAGE_TYPE((short)3, "messageType"),
+    UPDATED_TIME((short)4, "updatedTime"),
+    /**
+     * 
+     * @see MessageLevel
+     */
+    MESSAGE_LEVEL((short)5, "messageLevel");
+
+    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: // EVENT
+          return EVENT;
+        case 2: // MESSAGE_ID
+          return MESSAGE_ID;
+        case 3: // MESSAGE_TYPE
+          return MESSAGE_TYPE;
+        case 4: // UPDATED_TIME
+          return UPDATED_TIME;
+        case 5: // MESSAGE_LEVEL
+          return MESSAGE_LEVEL;
+        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 __UPDATEDTIME_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.UPDATED_TIME,_Fields.MESSAGE_LEVEL};
+  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.EVENT, new org.apache.thrift.meta_data.FieldMetaData("event", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
+    tmpMap.put(_Fields.MESSAGE_ID, new org.apache.thrift.meta_data.FieldMetaData("messageId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.MESSAGE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("messageType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, MessageType.class)));
+    tmpMap.put(_Fields.UPDATED_TIME, new org.apache.thrift.meta_data.FieldMetaData("updatedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.MESSAGE_LEVEL, new org.apache.thrift.meta_data.FieldMetaData("messageLevel", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, MessageLevel.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Message.class, metaDataMap);
+  }
+
+  public Message() {
+    this.messageId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public Message(
+    ByteBuffer event,
+    String messageId,
+    MessageType messageType)
+  {
+    this();
+    this.event = org.apache.thrift.TBaseHelper.copyBinary(event);
+    this.messageId = messageId;
+    this.messageType = messageType;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Message(Message other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetEvent()) {
+      this.event = org.apache.thrift.TBaseHelper.copyBinary(other.event);
+    }
+    if (other.isSetMessageId()) {
+      this.messageId = other.messageId;
+    }
+    if (other.isSetMessageType()) {
+      this.messageType = other.messageType;
+    }
+    this.updatedTime = other.updatedTime;
+    if (other.isSetMessageLevel()) {
+      this.messageLevel = other.messageLevel;
+    }
+  }
+
+  public Message deepCopy() {
+    return new Message(this);
+  }
+
+  @Override
+  public void clear() {
+    this.event = null;
+    this.messageId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.messageType = null;
+    setUpdatedTimeIsSet(false);
+    this.updatedTime = 0;
+    this.messageLevel = null;
+  }
+
+  public byte[] getEvent() {
+    setEvent(org.apache.thrift.TBaseHelper.rightSize(event));
+    return event == null ? null : event.array();
+  }
+
+  public ByteBuffer bufferForEvent() {
+    return org.apache.thrift.TBaseHelper.copyBinary(event);
+  }
+
+  public Message setEvent(byte[] event) {
+    this.event = event == null ? (ByteBuffer)null : ByteBuffer.wrap(Arrays.copyOf(event, event.length));
+    return this;
+  }
+
+  public Message setEvent(ByteBuffer event) {
+    this.event = org.apache.thrift.TBaseHelper.copyBinary(event);
+    return this;
+  }
+
+  public void unsetEvent() {
+    this.event = null;
+  }
+
+  /** Returns true if field event is set (has been assigned a value) and false otherwise */
+  public boolean isSetEvent() {
+    return this.event != null;
+  }
+
+  public void setEventIsSet(boolean value) {
+    if (!value) {
+      this.event = null;
+    }
+  }
+
+  public String getMessageId() {
+    return this.messageId;
+  }
+
+  public Message setMessageId(String messageId) {
+    this.messageId = messageId;
+    return this;
+  }
+
+  public void unsetMessageId() {
+    this.messageId = null;
+  }
+
+  /** Returns true if field messageId is set (has been assigned a value) and false otherwise */
+  public boolean isSetMessageId() {
+    return this.messageId != null;
+  }
+
+  public void setMessageIdIsSet(boolean value) {
+    if (!value) {
+      this.messageId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see MessageType
+   */
+  public MessageType getMessageType() {
+    return this.messageType;
+  }
+
+  /**
+   * 
+   * @see MessageType
+   */
+  public Message setMessageType(MessageType messageType) {
+    this.messageType = messageType;
+    return this;
+  }
+
+  public void unsetMessageType() {
+    this.messageType = null;
+  }
+
+  /** Returns true if field messageType is set (has been assigned a value) and false otherwise */
+  public boolean isSetMessageType() {
+    return this.messageType != null;
+  }
+
+  public void setMessageTypeIsSet(boolean value) {
+    if (!value) {
+      this.messageType = null;
+    }
+  }
+
+  public long getUpdatedTime() {
+    return this.updatedTime;
+  }
+
+  public Message setUpdatedTime(long updatedTime) {
+    this.updatedTime = updatedTime;
+    setUpdatedTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetUpdatedTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UPDATEDTIME_ISSET_ID);
+  }
+
+  /** Returns true if field updatedTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetUpdatedTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __UPDATEDTIME_ISSET_ID);
+  }
+
+  public void setUpdatedTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UPDATEDTIME_ISSET_ID, value);
+  }
+
+  /**
+   * 
+   * @see MessageLevel
+   */
+  public MessageLevel getMessageLevel() {
+    return this.messageLevel;
+  }
+
+  /**
+   * 
+   * @see MessageLevel
+   */
+  public Message setMessageLevel(MessageLevel messageLevel) {
+    this.messageLevel = messageLevel;
+    return this;
+  }
+
+  public void unsetMessageLevel() {
+    this.messageLevel = null;
+  }
+
+  /** Returns true if field messageLevel is set (has been assigned a value) and false otherwise */
+  public boolean isSetMessageLevel() {
+    return this.messageLevel != null;
+  }
+
+  public void setMessageLevelIsSet(boolean value) {
+    if (!value) {
+      this.messageLevel = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case EVENT:
+      if (value == null) {
+        unsetEvent();
+      } else {
+        setEvent((ByteBuffer)value);
+      }
+      break;
+
+    case MESSAGE_ID:
+      if (value == null) {
+        unsetMessageId();
+      } else {
+        setMessageId((String)value);
+      }
+      break;
+
+    case MESSAGE_TYPE:
+      if (value == null) {
+        unsetMessageType();
+      } else {
+        setMessageType((MessageType)value);
+      }
+      break;
+
+    case UPDATED_TIME:
+      if (value == null) {
+        unsetUpdatedTime();
+      } else {
+        setUpdatedTime((Long)value);
+      }
+      break;
+
+    case MESSAGE_LEVEL:
+      if (value == null) {
+        unsetMessageLevel();
+      } else {
+        setMessageLevel((MessageLevel)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case EVENT:
+      return getEvent();
+
+    case MESSAGE_ID:
+      return getMessageId();
+
+    case MESSAGE_TYPE:
+      return getMessageType();
+
+    case UPDATED_TIME:
+      return Long.valueOf(getUpdatedTime());
+
+    case MESSAGE_LEVEL:
+      return getMessageLevel();
+
+    }
+    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 EVENT:
+      return isSetEvent();
+    case MESSAGE_ID:
+      return isSetMessageId();
+    case MESSAGE_TYPE:
+      return isSetMessageType();
+    case UPDATED_TIME:
+      return isSetUpdatedTime();
+    case MESSAGE_LEVEL:
+      return isSetMessageLevel();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Message)
+      return this.equals((Message)that);
+    return false;
+  }
+
+  public boolean equals(Message that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_event = true && this.isSetEvent();
+    boolean that_present_event = true && that.isSetEvent();
+    if (this_present_event || that_present_event) {
+      if (!(this_present_event && that_present_event))
+        return false;
+      if (!this.event.equals(that.event))
+        return false;
+    }
+
+    boolean this_present_messageId = true && this.isSetMessageId();
+    boolean that_present_messageId = true && that.isSetMessageId();
+    if (this_present_messageId || that_present_messageId) {
+      if (!(this_present_messageId && that_present_messageId))
+        return false;
+      if (!this.messageId.equals(that.messageId))
+        return false;
+    }
+
+    boolean this_present_messageType = true && this.isSetMessageType();
+    boolean that_present_messageType = true && that.isSetMessageType();
+    if (this_present_messageType || that_present_messageType) {
+      if (!(this_present_messageType && that_present_messageType))
+        return false;
+      if (!this.messageType.equals(that.messageType))
+        return false;
+    }
+
+    boolean this_present_updatedTime = true && this.isSetUpdatedTime();
+    boolean that_present_updatedTime = true && that.isSetUpdatedTime();
+    if (this_present_updatedTime || that_present_updatedTime) {
+      if (!(this_present_updatedTime && that_present_updatedTime))
+        return false;
+      if (this.updatedTime != that.updatedTime)
+        return false;
+    }
+
+    boolean this_present_messageLevel = true && this.isSetMessageLevel();
+    boolean that_present_messageLevel = true && that.isSetMessageLevel();
+    if (this_present_messageLevel || that_present_messageLevel) {
+      if (!(this_present_messageLevel && that_present_messageLevel))
+        return false;
+      if (!this.messageLevel.equals(that.messageLevel))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_event = true && (isSetEvent());
+    list.add(present_event);
+    if (present_event)
+      list.add(event);
+
+    boolean present_messageId = true && (isSetMessageId());
+    list.add(present_messageId);
+    if (present_messageId)
+      list.add(messageId);
+
+    boolean present_messageType = true && (isSetMessageType());
+    list.add(present_messageType);
+    if (present_messageType)
+      list.add(messageType.getValue());
+
+    boolean present_updatedTime = true && (isSetUpdatedTime());
+    list.add(present_updatedTime);
+    if (present_updatedTime)
+      list.add(updatedTime);
+
+    boolean present_messageLevel = true && (isSetMessageLevel());
+    list.add(present_messageLevel);
+    if (present_messageLevel)
+      list.add(messageLevel.getValue());
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(Message other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetEvent()).compareTo(other.isSetEvent());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEvent()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.event, other.event);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMessageId()).compareTo(other.isSetMessageId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessageId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.messageId, other.messageId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMessageType()).compareTo(other.isSetMessageType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessageType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.messageType, other.messageType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUpdatedTime()).compareTo(other.isSetUpdatedTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUpdatedTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.updatedTime, other.updatedTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMessageLevel()).compareTo(other.isSetMessageLevel());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessageLevel()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.messageLevel, other.messageLevel);
+      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("Message(");
+    boolean first = true;
+
+    sb.append("event:");
+    if (this.event == null) {
+      sb.append("null");
+    } else {
+      org.apache.thrift.TBaseHelper.toString(this.event, sb);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("messageId:");
+    if (this.messageId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.messageId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("messageType:");
+    if (this.messageType == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.messageType);
+    }
+    first = false;
+    if (isSetUpdatedTime()) {
+      if (!first) sb.append(", ");
+      sb.append("updatedTime:");
+      sb.append(this.updatedTime);
+      first = false;
+    }
+    if (isSetMessageLevel()) {
+      if (!first) sb.append(", ");
+      sb.append("messageLevel:");
+      if (this.messageLevel == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.messageLevel);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (event == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'event' was not present! Struct: " + toString());
+    }
+    if (messageId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'messageId' was not present! Struct: " + toString());
+    }
+    if (messageType == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'messageType' was not present! 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 MessageStandardSchemeFactory implements SchemeFactory {
+    public MessageStandardScheme getScheme() {
+      return new MessageStandardScheme();
+    }
+  }
+
+  private static class MessageStandardScheme extends StandardScheme<Message> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Message 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: // EVENT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.event = iprot.readBinary();
+              struct.setEventIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // MESSAGE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.messageId = iprot.readString();
+              struct.setMessageIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // MESSAGE_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.messageType = org.apache.airavata.model.messaging.event.MessageType.findByValue(iprot.readI32());
+              struct.setMessageTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // UPDATED_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.updatedTime = iprot.readI64();
+              struct.setUpdatedTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // MESSAGE_LEVEL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.messageLevel = org.apache.airavata.model.messaging.event.MessageLevel.findByValue(iprot.readI32());
+              struct.setMessageLevelIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, Message struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.event != null) {
+        oprot.writeFieldBegin(EVENT_FIELD_DESC);
+        oprot.writeBinary(struct.event);
+        oprot.writeFieldEnd();
+      }
+      if (struct.messageId != null) {
+        oprot.writeFieldBegin(MESSAGE_ID_FIELD_DESC);
+        oprot.writeString(struct.messageId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.messageType != null) {
+        oprot.writeFieldBegin(MESSAGE_TYPE_FIELD_DESC);
+        oprot.writeI32(struct.messageType.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetUpdatedTime()) {
+        oprot.writeFieldBegin(UPDATED_TIME_FIELD_DESC);
+        oprot.writeI64(struct.updatedTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.messageLevel != null) {
+        if (struct.isSetMessageLevel()) {
+          oprot.writeFieldBegin(MESSAGE_LEVEL_FIELD_DESC);
+          oprot.writeI32(struct.messageLevel.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class MessageTupleSchemeFactory implements SchemeFactory {
+    public MessageTupleScheme getScheme() {
+      return new MessageTupleScheme();
+    }
+  }
+
+  private static class MessageTupleScheme extends TupleScheme<Message> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Message struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeBinary(struct.event);
+      oprot.writeString(struct.messageId);
+      oprot.writeI32(struct.messageType.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetUpdatedTime()) {
+        optionals.set(0);
+      }
+      if (struct.isSetMessageLevel()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetUpdatedTime()) {
+        oprot.writeI64(struct.updatedTime);
+      }
+      if (struct.isSetMessageLevel()) {
+        oprot.writeI32(struct.messageLevel.getValue());
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Message struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.event = iprot.readBinary();
+      struct.setEventIsSet(true);
+      struct.messageId = iprot.readString();
+      struct.setMessageIdIsSet(true);
+      struct.messageType = org.apache.airavata.model.messaging.event.MessageType.findByValue(iprot.readI32());
+      struct.setMessageTypeIsSet(true);
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.updatedTime = iprot.readI64();
+        struct.setUpdatedTimeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.messageLevel = org.apache.airavata.model.messaging.event.MessageLevel.findByValue(iprot.readI32());
+        struct.setMessageLevelIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/MessageLevel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/MessageLevel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/MessageLevel.java
new file mode 100644
index 0000000..808b4d6
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/MessageLevel.java
@@ -0,0 +1,68 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum MessageLevel implements org.apache.thrift.TEnum {
+  INFO(0),
+  DEBUG(1),
+  ERROR(2),
+  ACK(3);
+
+  private final int value;
+
+  private MessageLevel(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 MessageLevel findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return INFO;
+      case 1:
+        return DEBUG;
+      case 2:
+        return ERROR;
+      case 3:
+        return ACK;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/MessageType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/MessageType.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/MessageType.java
new file mode 100644
index 0000000..b27acdb
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/MessageType.java
@@ -0,0 +1,77 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum MessageType implements org.apache.thrift.TEnum {
+  EXPERIMENT(0),
+  TASK(1),
+  PROCESS(2),
+  JOB(3),
+  LAUNCHPROCESS(4),
+  TERMINATEPROCESS(5),
+  PROCESSOUTPUT(6);
+
+  private final int value;
+
+  private MessageType(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 MessageType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return EXPERIMENT;
+      case 1:
+        return TASK;
+      case 2:
+        return PROCESS;
+      case 3:
+        return JOB;
+      case 4:
+        return LAUNCHPROCESS;
+      case 5:
+        return TERMINATEPROCESS;
+      case 6:
+        return PROCESSOUTPUT;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
new file mode 100644
index 0000000..6a238a4
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
@@ -0,0 +1,610 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ProcessIdentifier implements org.apache.thrift.TBase<ProcessIdentifier, ProcessIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessIdentifier> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessIdentifier");
+
+  private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ProcessIdentifierStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ProcessIdentifierTupleSchemeFactory());
+  }
+
+  public String processId; // required
+  public String experimentId; // required
+  public String gatewayId; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    PROCESS_ID((short)1, "processId"),
+    EXPERIMENT_ID((short)2, "experimentId"),
+    GATEWAY_ID((short)3, "gatewayId");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // PROCESS_ID
+          return PROCESS_ID;
+        case 2: // EXPERIMENT_ID
+          return EXPERIMENT_ID;
+        case 3: // GATEWAY_ID
+          return GATEWAY_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ProcessIdentifier.class, metaDataMap);
+  }
+
+  public ProcessIdentifier() {
+  }
+
+  public ProcessIdentifier(
+    String processId,
+    String experimentId,
+    String gatewayId)
+  {
+    this();
+    this.processId = processId;
+    this.experimentId = experimentId;
+    this.gatewayId = gatewayId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ProcessIdentifier(ProcessIdentifier other) {
+    if (other.isSetProcessId()) {
+      this.processId = other.processId;
+    }
+    if (other.isSetExperimentId()) {
+      this.experimentId = other.experimentId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+  }
+
+  public ProcessIdentifier deepCopy() {
+    return new ProcessIdentifier(this);
+  }
+
+  @Override
+  public void clear() {
+    this.processId = null;
+    this.experimentId = null;
+    this.gatewayId = null;
+  }
+
+  public String getProcessId() {
+    return this.processId;
+  }
+
+  public ProcessIdentifier setProcessId(String processId) {
+    this.processId = processId;
+    return this;
+  }
+
+  public void unsetProcessId() {
+    this.processId = null;
+  }
+
+  /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessId() {
+    return this.processId != null;
+  }
+
+  public void setProcessIdIsSet(boolean value) {
+    if (!value) {
+      this.processId = null;
+    }
+  }
+
+  public String getExperimentId() {
+    return this.experimentId;
+  }
+
+  public ProcessIdentifier setExperimentId(String experimentId) {
+    this.experimentId = experimentId;
+    return this;
+  }
+
+  public void unsetExperimentId() {
+    this.experimentId = null;
+  }
+
+  /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentId() {
+    return this.experimentId != null;
+  }
+
+  public void setExperimentIdIsSet(boolean value) {
+    if (!value) {
+      this.experimentId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public ProcessIdentifier setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+    return this;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case PROCESS_ID:
+      if (value == null) {
+        unsetProcessId();
+      } else {
+        setProcessId((String)value);
+      }
+      break;
+
+    case EXPERIMENT_ID:
+      if (value == null) {
+        unsetExperimentId();
+      } else {
+        setExperimentId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PROCESS_ID:
+      return getProcessId();
+
+    case EXPERIMENT_ID:
+      return getExperimentId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case PROCESS_ID:
+      return isSetProcessId();
+    case EXPERIMENT_ID:
+      return isSetExperimentId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ProcessIdentifier)
+      return this.equals((ProcessIdentifier)that);
+    return false;
+  }
+
+  public boolean equals(ProcessIdentifier that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_processId = true && this.isSetProcessId();
+    boolean that_present_processId = true && that.isSetProcessId();
+    if (this_present_processId || that_present_processId) {
+      if (!(this_present_processId && that_present_processId))
+        return false;
+      if (!this.processId.equals(that.processId))
+        return false;
+    }
+
+    boolean this_present_experimentId = true && this.isSetExperimentId();
+    boolean that_present_experimentId = true && that.isSetExperimentId();
+    if (this_present_experimentId || that_present_experimentId) {
+      if (!(this_present_experimentId && that_present_experimentId))
+        return false;
+      if (!this.experimentId.equals(that.experimentId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_processId = true && (isSetProcessId());
+    list.add(present_processId);
+    if (present_processId)
+      list.add(processId);
+
+    boolean present_experimentId = true && (isSetExperimentId());
+    list.add(present_experimentId);
+    if (present_experimentId)
+      list.add(experimentId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ProcessIdentifier other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      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("ProcessIdentifier(");
+    boolean first = true;
+
+    sb.append("processId:");
+    if (this.processId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.processId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("experimentId:");
+    if (this.experimentId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (processId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
+    }
+    if (experimentId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
+    }
+    if (gatewayId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! 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 ProcessIdentifierStandardSchemeFactory implements SchemeFactory {
+    public ProcessIdentifierStandardScheme getScheme() {
+      return new ProcessIdentifierStandardScheme();
+    }
+  }
+
+  private static class ProcessIdentifierStandardScheme extends StandardScheme<ProcessIdentifier> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ProcessIdentifier struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // PROCESS_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.processId = iprot.readString();
+              struct.setProcessIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // EXPERIMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentId = iprot.readString();
+              struct.setExperimentIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ProcessIdentifier struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.processId != null) {
+        oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+        oprot.writeString(struct.processId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentId != null) {
+        oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.experimentId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ProcessIdentifierTupleSchemeFactory implements SchemeFactory {
+    public ProcessIdentifierTupleScheme getScheme() {
+      return new ProcessIdentifierTupleScheme();
+    }
+  }
+
+  private static class ProcessIdentifierTupleScheme extends TupleScheme<ProcessIdentifier> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ProcessIdentifier struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.processId);
+      oprot.writeString(struct.experimentId);
+      oprot.writeString(struct.gatewayId);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ProcessIdentifier struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.processId = iprot.readString();
+      struct.setProcessIdIsSet(true);
+      struct.experimentId = iprot.readString();
+      struct.setExperimentIdIsSet(true);
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
new file mode 100644
index 0000000..94461dc
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
@@ -0,0 +1,530 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ProcessStatusChangeEvent implements org.apache.thrift.TBase<ProcessStatusChangeEvent, ProcessStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeEvent");
+
+  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField PROCESS_IDENTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("processIdentity", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ProcessStatusChangeEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ProcessStatusChangeEventTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.ProcessState
+   */
+  public org.apache.airavata.model.status.ProcessState state; // required
+  public ProcessIdentifier processIdentity; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see org.apache.airavata.model.status.ProcessState
+     */
+    STATE((short)1, "state"),
+    PROCESS_IDENTITY((short)2, "processIdentity");
+
+    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: // STATE
+          return STATE;
+        case 2: // PROCESS_IDENTITY
+          return PROCESS_IDENTITY;
+        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
+  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.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.status.ProcessState.class)));
+    tmpMap.put(_Fields.PROCESS_IDENTITY, new org.apache.thrift.meta_data.FieldMetaData("processIdentity", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ProcessIdentifier.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ProcessStatusChangeEvent.class, metaDataMap);
+  }
+
+  public ProcessStatusChangeEvent() {
+  }
+
+  public ProcessStatusChangeEvent(
+    org.apache.airavata.model.status.ProcessState state,
+    ProcessIdentifier processIdentity)
+  {
+    this();
+    this.state = state;
+    this.processIdentity = processIdentity;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ProcessStatusChangeEvent(ProcessStatusChangeEvent other) {
+    if (other.isSetState()) {
+      this.state = other.state;
+    }
+    if (other.isSetProcessIdentity()) {
+      this.processIdentity = new ProcessIdentifier(other.processIdentity);
+    }
+  }
+
+  public ProcessStatusChangeEvent deepCopy() {
+    return new ProcessStatusChangeEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state = null;
+    this.processIdentity = null;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.ProcessState
+   */
+  public org.apache.airavata.model.status.ProcessState getState() {
+    return this.state;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.ProcessState
+   */
+  public ProcessStatusChangeEvent setState(org.apache.airavata.model.status.ProcessState state) {
+    this.state = state;
+    return this;
+  }
+
+  public void unsetState() {
+    this.state = null;
+  }
+
+  /** Returns true if field state is set (has been assigned a value) and false otherwise */
+  public boolean isSetState() {
+    return this.state != null;
+  }
+
+  public void setStateIsSet(boolean value) {
+    if (!value) {
+      this.state = null;
+    }
+  }
+
+  public ProcessIdentifier getProcessIdentity() {
+    return this.processIdentity;
+  }
+
+  public ProcessStatusChangeEvent setProcessIdentity(ProcessIdentifier processIdentity) {
+    this.processIdentity = processIdentity;
+    return this;
+  }
+
+  public void unsetProcessIdentity() {
+    this.processIdentity = null;
+  }
+
+  /** Returns true if field processIdentity is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessIdentity() {
+    return this.processIdentity != null;
+  }
+
+  public void setProcessIdentityIsSet(boolean value) {
+    if (!value) {
+      this.processIdentity = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE:
+      if (value == null) {
+        unsetState();
+      } else {
+        setState((org.apache.airavata.model.status.ProcessState)value);
+      }
+      break;
+
+    case PROCESS_IDENTITY:
+      if (value == null) {
+        unsetProcessIdentity();
+      } else {
+        setProcessIdentity((ProcessIdentifier)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE:
+      return getState();
+
+    case PROCESS_IDENTITY:
+      return getProcessIdentity();
+
+    }
+    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 STATE:
+      return isSetState();
+    case PROCESS_IDENTITY:
+      return isSetProcessIdentity();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ProcessStatusChangeEvent)
+      return this.equals((ProcessStatusChangeEvent)that);
+    return false;
+  }
+
+  public boolean equals(ProcessStatusChangeEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_state = true && this.isSetState();
+    boolean that_present_state = true && that.isSetState();
+    if (this_present_state || that_present_state) {
+      if (!(this_present_state && that_present_state))
+        return false;
+      if (!this.state.equals(that.state))
+        return false;
+    }
+
+    boolean this_present_processIdentity = true && this.isSetProcessIdentity();
+    boolean that_present_processIdentity = true && that.isSetProcessIdentity();
+    if (this_present_processIdentity || that_present_processIdentity) {
+      if (!(this_present_processIdentity && that_present_processIdentity))
+        return false;
+      if (!this.processIdentity.equals(that.processIdentity))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state = true && (isSetState());
+    list.add(present_state);
+    if (present_state)
+      list.add(state.getValue());
+
+    boolean present_processIdentity = true && (isSetProcessIdentity());
+    list.add(present_processIdentity);
+    if (present_processIdentity)
+      list.add(processIdentity);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ProcessStatusChangeEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetState()).compareTo(other.isSetState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessIdentity()).compareTo(other.isSetProcessIdentity());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessIdentity()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processIdentity, other.processIdentity);
+      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("ProcessStatusChangeEvent(");
+    boolean first = true;
+
+    sb.append("state:");
+    if (this.state == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("processIdentity:");
+    if (this.processIdentity == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.processIdentity);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (state == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state' was not present! Struct: " + toString());
+    }
+    if (processIdentity == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processIdentity' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (processIdentity != null) {
+      processIdentity.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 {
+      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 ProcessStatusChangeEventStandardSchemeFactory implements SchemeFactory {
+    public ProcessStatusChangeEventStandardScheme getScheme() {
+      return new ProcessStatusChangeEventStandardScheme();
+    }
+  }
+
+  private static class ProcessStatusChangeEventStandardScheme extends StandardScheme<ProcessStatusChangeEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ProcessStatusChangeEvent 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: // STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.state = org.apache.airavata.model.status.ProcessState.findByValue(iprot.readI32());
+              struct.setStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PROCESS_IDENTITY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.processIdentity = new ProcessIdentifier();
+              struct.processIdentity.read(iprot);
+              struct.setProcessIdentityIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ProcessStatusChangeEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state != null) {
+        oprot.writeFieldBegin(STATE_FIELD_DESC);
+        oprot.writeI32(struct.state.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.processIdentity != null) {
+        oprot.writeFieldBegin(PROCESS_IDENTITY_FIELD_DESC);
+        struct.processIdentity.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ProcessStatusChangeEventTupleSchemeFactory implements SchemeFactory {
+    public ProcessStatusChangeEventTupleScheme getScheme() {
+      return new ProcessStatusChangeEventTupleScheme();
+    }
+  }
+
+  private static class ProcessStatusChangeEventTupleScheme extends TupleScheme<ProcessStatusChangeEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ProcessStatusChangeEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.state.getValue());
+      struct.processIdentity.write(oprot);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ProcessStatusChangeEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state = org.apache.airavata.model.status.ProcessState.findByValue(iprot.readI32());
+      struct.setStateIsSet(true);
+      struct.processIdentity = new ProcessIdentifier();
+      struct.processIdentity.read(iprot);
+      struct.setProcessIdentityIsSet(true);
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_types.cpp
new file mode 100644
index 0000000..d260a1c
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_types.cpp
@@ -0,0 +1,299 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "data_resource_models_types.h"
+
+#include <algorithm>
+#include <ostream>
+
+#include <thrift/TToString.h>
+
+namespace apache { namespace airavata { namespace model { namespace data { namespace resource {
+
+
+ResourceModel::~ResourceModel() throw() {
+}
+
+
+void ResourceModel::__set_resourceId(const std::string& val) {
+  this->resourceId = val;
+__isset.resourceId = true;
+}
+
+void ResourceModel::__set_resourceName(const std::string& val) {
+  this->resourceName = val;
+__isset.resourceName = true;
+}
+
+void ResourceModel::__set_replicaLocations(const std::vector<ReplicaLocationModel> & val) {
+  this->replicaLocations = val;
+}
+
+const char* ResourceModel::ascii_fingerprint = "D638A8293F444DF2C34755C1D925146E";
+const uint8_t ResourceModel::binary_fingerprint[16] = {0xD6,0x38,0xA8,0x29,0x3F,0x44,0x4D,0xF2,0xC3,0x47,0x55,0xC1,0xD9,0x25,0x14,0x6E};
+
+uint32_t ResourceModel::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->resourceId);
+          this->__isset.resourceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->resourceName);
+          this->__isset.resourceName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->replicaLocations.clear();
+            uint32_t _size0;
+            ::apache::thrift::protocol::TType _etype3;
+            xfer += iprot->readListBegin(_etype3, _size0);
+            this->replicaLocations.resize(_size0);
+            uint32_t _i4;
+            for (_i4 = 0; _i4 < _size0; ++_i4)
+            {
+              xfer += this->replicaLocations[_i4].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.replicaLocations = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ResourceModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  oprot->incrementRecursionDepth();
+  xfer += oprot->writeStructBegin("ResourceModel");
+
+  if (this->__isset.resourceId) {
+    xfer += oprot->writeFieldBegin("resourceId", ::apache::thrift::protocol::T_STRING, 1);
+    xfer += oprot->writeString(this->resourceId);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.resourceName) {
+    xfer += oprot->writeFieldBegin("resourceName", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->resourceName);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldBegin("replicaLocations", ::apache::thrift::protocol::T_LIST, 3);
+  {
+    xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->replicaLocations.size()));
+    std::vector<ReplicaLocationModel> ::const_iterator _iter5;
+    for (_iter5 = this->replicaLocations.begin(); _iter5 != this->replicaLocations.end(); ++_iter5)
+    {
+      xfer += (*_iter5).write(oprot);
+    }
+    xfer += oprot->writeListEnd();
+  }
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
+  return xfer;
+}
+
+void swap(ResourceModel &a, ResourceModel &b) {
+  using ::std::swap;
+  swap(a.resourceId, b.resourceId);
+  swap(a.resourceName, b.resourceName);
+  swap(a.replicaLocations, b.replicaLocations);
+  swap(a.__isset, b.__isset);
+}
+
+ResourceModel::ResourceModel(const ResourceModel& other6) {
+  resourceId = other6.resourceId;
+  resourceName = other6.resourceName;
+  replicaLocations = other6.replicaLocations;
+  __isset = other6.__isset;
+}
+ResourceModel& ResourceModel::operator=(const ResourceModel& other7) {
+  resourceId = other7.resourceId;
+  resourceName = other7.resourceName;
+  replicaLocations = other7.replicaLocations;
+  __isset = other7.__isset;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const ResourceModel& obj) {
+  using apache::thrift::to_string;
+  out << "ResourceModel(";
+  out << "resourceId="; (obj.__isset.resourceId ? (out << to_string(obj.resourceId)) : (out << "<null>"));
+  out << ", " << "resourceName="; (obj.__isset.resourceName ? (out << to_string(obj.resourceName)) : (out << "<null>"));
+  out << ", " << "replicaLocations=" << to_string(obj.replicaLocations);
+  out << ")";
+  return out;
+}
+
+
+ReplicaLocationModel::~ReplicaLocationModel() throw() {
+}
+
+
+void ReplicaLocationModel::__set_physicalLocations(const std::vector<std::string> & val) {
+  this->physicalLocations = val;
+__isset.physicalLocations = true;
+}
+
+const char* ReplicaLocationModel::ascii_fingerprint = "6A3474ADDA840BE2091105F0DFB630C7";
+const uint8_t ReplicaLocationModel::binary_fingerprint[16] = {0x6A,0x34,0x74,0xAD,0xDA,0x84,0x0B,0xE2,0x09,0x11,0x05,0xF0,0xDF,0xB6,0x30,0xC7};
+
+uint32_t ReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->physicalLocations.clear();
+            uint32_t _size8;
+            ::apache::thrift::protocol::TType _etype11;
+            xfer += iprot->readListBegin(_etype11, _size8);
+            this->physicalLocations.resize(_size8);
+            uint32_t _i12;
+            for (_i12 = 0; _i12 < _size8; ++_i12)
+            {
+              xfer += iprot->readString(this->physicalLocations[_i12]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.physicalLocations = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ReplicaLocationModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  oprot->incrementRecursionDepth();
+  xfer += oprot->writeStructBegin("ReplicaLocationModel");
+
+  if (this->__isset.physicalLocations) {
+    xfer += oprot->writeFieldBegin("physicalLocations", ::apache::thrift::protocol::T_LIST, 1);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->physicalLocations.size()));
+      std::vector<std::string> ::const_iterator _iter13;
+      for (_iter13 = this->physicalLocations.begin(); _iter13 != this->physicalLocations.end(); ++_iter13)
+      {
+        xfer += oprot->writeString((*_iter13));
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
+  return xfer;
+}
+
+void swap(ReplicaLocationModel &a, ReplicaLocationModel &b) {
+  using ::std::swap;
+  swap(a.physicalLocations, b.physicalLocations);
+  swap(a.__isset, b.__isset);
+}
+
+ReplicaLocationModel::ReplicaLocationModel(const ReplicaLocationModel& other14) {
+  physicalLocations = other14.physicalLocations;
+  __isset = other14.__isset;
+}
+ReplicaLocationModel& ReplicaLocationModel::operator=(const ReplicaLocationModel& other15) {
+  physicalLocations = other15.physicalLocations;
+  __isset = other15.__isset;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const ReplicaLocationModel& obj) {
+  using apache::thrift::to_string;
+  out << "ReplicaLocationModel(";
+  out << "physicalLocations="; (obj.__isset.physicalLocations ? (out << to_string(obj.physicalLocations)) : (out << "<null>"));
+  out << ")";
+  return out;
+}
+
+}}}}} // namespace

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_types.h
new file mode 100644
index 0000000..213bd9e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_types.h
@@ -0,0 +1,149 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef data_resource_models_TYPES_H
+#define data_resource_models_TYPES_H
+
+#include <iosfwd>
+
+#include <thrift/Thrift.h>
+#include <thrift/TApplicationException.h>
+#include <thrift/protocol/TProtocol.h>
+#include <thrift/transport/TTransport.h>
+
+#include <thrift/cxxfunctional.h>
+
+
+namespace apache { namespace airavata { namespace model { namespace data { namespace resource {
+
+class ResourceModel;
+
+class ReplicaLocationModel;
+
+typedef struct _ResourceModel__isset {
+  _ResourceModel__isset() : resourceId(false), resourceName(false), replicaLocations(false) {}
+  bool resourceId :1;
+  bool resourceName :1;
+  bool replicaLocations :1;
+} _ResourceModel__isset;
+
+class ResourceModel {
+ public:
+
+  static const char* ascii_fingerprint; // = "D638A8293F444DF2C34755C1D925146E";
+  static const uint8_t binary_fingerprint[16]; // = {0xD6,0x38,0xA8,0x29,0x3F,0x44,0x4D,0xF2,0xC3,0x47,0x55,0xC1,0xD9,0x25,0x14,0x6E};
+
+  ResourceModel(const ResourceModel&);
+  ResourceModel& operator=(const ResourceModel&);
+  ResourceModel() : resourceId(), resourceName() {
+  }
+
+  virtual ~ResourceModel() throw();
+  std::string resourceId;
+  std::string resourceName;
+  std::vector<ReplicaLocationModel>  replicaLocations;
+
+  _ResourceModel__isset __isset;
+
+  void __set_resourceId(const std::string& val);
+
+  void __set_resourceName(const std::string& val);
+
+  void __set_replicaLocations(const std::vector<ReplicaLocationModel> & val);
+
+  bool operator == (const ResourceModel & rhs) const
+  {
+    if (__isset.resourceId != rhs.__isset.resourceId)
+      return false;
+    else if (__isset.resourceId && !(resourceId == rhs.resourceId))
+      return false;
+    if (__isset.resourceName != rhs.__isset.resourceName)
+      return false;
+    else if (__isset.resourceName && !(resourceName == rhs.resourceName))
+      return false;
+    if (!(replicaLocations == rhs.replicaLocations))
+      return false;
+    return true;
+  }
+  bool operator != (const ResourceModel &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ResourceModel & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const ResourceModel& obj);
+};
+
+void swap(ResourceModel &a, ResourceModel &b);
+
+typedef struct _ReplicaLocationModel__isset {
+  _ReplicaLocationModel__isset() : physicalLocations(false) {}
+  bool physicalLocations :1;
+} _ReplicaLocationModel__isset;
+
+class ReplicaLocationModel {
+ public:
+
+  static const char* ascii_fingerprint; // = "6A3474ADDA840BE2091105F0DFB630C7";
+  static const uint8_t binary_fingerprint[16]; // = {0x6A,0x34,0x74,0xAD,0xDA,0x84,0x0B,0xE2,0x09,0x11,0x05,0xF0,0xDF,0xB6,0x30,0xC7};
+
+  ReplicaLocationModel(const ReplicaLocationModel&);
+  ReplicaLocationModel& operator=(const ReplicaLocationModel&);
+  ReplicaLocationModel() {
+  }
+
+  virtual ~ReplicaLocationModel() throw();
+  std::vector<std::string>  physicalLocations;
+
+  _ReplicaLocationModel__isset __isset;
+
+  void __set_physicalLocations(const std::vector<std::string> & val);
+
+  bool operator == (const ReplicaLocationModel & rhs) const
+  {
+    if (__isset.physicalLocations != rhs.__isset.physicalLocations)
+      return false;
+    else if (__isset.physicalLocations && !(physicalLocations == rhs.physicalLocations))
+      return false;
+    return true;
+  }
+  bool operator != (const ReplicaLocationModel &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ReplicaLocationModel & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const ReplicaLocationModel& obj);
+};
+
+void swap(ReplicaLocationModel &a, ReplicaLocationModel &b);
+
+}}}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Resource/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Resource/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Resource/Types.php
new file mode 100644
index 0000000..4e638e6
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Resource/Types.php
@@ -0,0 +1,270 @@
+<?php
+namespace Airavata\Model\Data\Resource;
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+use Thrift\Base\TBase;
+use Thrift\Type\TType;
+use Thrift\Type\TMessageType;
+use Thrift\Exception\TException;
+use Thrift\Exception\TProtocolException;
+use Thrift\Protocol\TProtocol;
+use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Thrift\Exception\TApplicationException;
+
+
+class ResourceModel {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $resourceId = null;
+  /**
+   * @var string
+   */
+  public $resourceName = null;
+  /**
+   * @var \Airavata\Model\Data\Resource\ReplicaLocationModel[]
+   */
+  public $replicaLocations = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'resourceId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'resourceName',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'replicaLocations',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Data\Resource\ReplicaLocationModel',
+            ),
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['resourceId'])) {
+        $this->resourceId = $vals['resourceId'];
+      }
+      if (isset($vals['resourceName'])) {
+        $this->resourceName = $vals['resourceName'];
+      }
+      if (isset($vals['replicaLocations'])) {
+        $this->replicaLocations = $vals['replicaLocations'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ResourceModel';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->resourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->resourceName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::LST) {
+            $this->replicaLocations = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $elem5 = new \Airavata\Model\Data\Resource\ReplicaLocationModel();
+              $xfer += $elem5->read($input);
+              $this->replicaLocations []= $elem5;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ResourceModel');
+    if ($this->resourceId !== null) {
+      $xfer += $output->writeFieldBegin('resourceId', TType::STRING, 1);
+      $xfer += $output->writeString($this->resourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->resourceName !== null) {
+      $xfer += $output->writeFieldBegin('resourceName', TType::STRING, 2);
+      $xfer += $output->writeString($this->resourceName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->replicaLocations !== null) {
+      if (!is_array($this->replicaLocations)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('replicaLocations', TType::LST, 3);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->replicaLocations));
+        {
+          foreach ($this->replicaLocations as $iter6)
+          {
+            $xfer += $iter6->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ReplicaLocationModel {
+  static $_TSPEC;
+
+  /**
+   * @var string[]
+   */
+  public $physicalLocations = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'physicalLocations',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['physicalLocations'])) {
+        $this->physicalLocations = $vals['physicalLocations'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ReplicaLocationModel';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::LST) {
+            $this->physicalLocations = array();
+            $_size7 = 0;
+            $_etype10 = 0;
+            $xfer += $input->readListBegin($_etype10, $_size7);
+            for ($_i11 = 0; $_i11 < $_size7; ++$_i11)
+            {
+              $elem12 = null;
+              $xfer += $input->readString($elem12);
+              $this->physicalLocations []= $elem12;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ReplicaLocationModel');
+    if ($this->physicalLocations !== null) {
+      if (!is_array($this->physicalLocations)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('physicalLocations', TType::LST, 1);
+      {
+        $output->writeListBegin(TType::STRING, count($this->physicalLocations));
+        {
+          foreach ($this->physicalLocations as $iter13)
+          {
+            $xfer += $output->writeString($iter13);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/constants.py
new file mode 100644
index 0000000..99717a9
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.2)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+from ttypes import *
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/ttypes.py
new file mode 100644
index 0000000..7d5197e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/resource/ttypes.py
@@ -0,0 +1,191 @@
+#
+# Autogenerated by Thrift Compiler (0.9.2)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+
+class ResourceModel:
+  """
+  Attributes:
+   - resourceId
+   - resourceName
+   - replicaLocations
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'resourceId', None, None, ), # 1
+    (2, TType.STRING, 'resourceName', None, None, ), # 2
+    (3, TType.LIST, 'replicaLocations', (TType.STRUCT,(ReplicaLocationModel, ReplicaLocationModel.thrift_spec)), None, ), # 3
+  )
+
+  def __init__(self, resourceId=None, resourceName=None, replicaLocations=None,):
+    self.resourceId = resourceId
+    self.resourceName = resourceName
+    self.replicaLocations = replicaLocations
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.resourceId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.resourceName = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.LIST:
+          self.replicaLocations = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = ReplicaLocationModel()
+            _elem5.read(iprot)
+            self.replicaLocations.append(_elem5)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ResourceModel')
+    if self.resourceId is not None:
+      oprot.writeFieldBegin('resourceId', TType.STRING, 1)
+      oprot.writeString(self.resourceId)
+      oprot.writeFieldEnd()
+    if self.resourceName is not None:
+      oprot.writeFieldBegin('resourceName', TType.STRING, 2)
+      oprot.writeString(self.resourceName)
+      oprot.writeFieldEnd()
+    if self.replicaLocations is not None:
+      oprot.writeFieldBegin('replicaLocations', TType.LIST, 3)
+      oprot.writeListBegin(TType.STRUCT, len(self.replicaLocations))
+      for iter6 in self.replicaLocations:
+        iter6.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.resourceId)
+    value = (value * 31) ^ hash(self.resourceName)
+    value = (value * 31) ^ hash(self.replicaLocations)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class ReplicaLocationModel:
+  """
+  Attributes:
+   - physicalLocations
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.LIST, 'physicalLocations', (TType.STRING,None), None, ), # 1
+  )
+
+  def __init__(self, physicalLocations=None,):
+    self.physicalLocations = physicalLocations
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.LIST:
+          self.physicalLocations = []
+          (_etype10, _size7) = iprot.readListBegin()
+          for _i11 in xrange(_size7):
+            _elem12 = iprot.readString();
+            self.physicalLocations.append(_elem12)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ReplicaLocationModel')
+    if self.physicalLocations is not None:
+      oprot.writeFieldBegin('physicalLocations', TType.LIST, 1)
+      oprot.writeListBegin(TType.STRING, len(self.physicalLocations))
+      for iter13 in self.physicalLocations:
+        oprot.writeString(iter13)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.physicalLocations)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/resource/ReplicaLocationModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/resource/ReplicaLocationModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/resource/ReplicaLocationModel.java
new file mode 100644
index 0000000..f3af020
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/resource/ReplicaLocationModel.java
@@ -0,0 +1,459 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.resource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ReplicaLocationModel implements org.apache.thrift.TBase<ReplicaLocationModel, ReplicaLocationModel._Fields>, java.io.Serializable, Cloneable, Comparable<ReplicaLocationModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ReplicaLocationModel");
+
+  private static final org.apache.thrift.protocol.TField PHYSICAL_LOCATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("physicalLocations", org.apache.thrift.protocol.TType.LIST, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ReplicaLocationModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ReplicaLocationModelTupleSchemeFactory());
+  }
+
+  private List<String> physicalLocations; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    PHYSICAL_LOCATIONS((short)1, "physicalLocations");
+
+    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: // PHYSICAL_LOCATIONS
+          return PHYSICAL_LOCATIONS;
+        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 _Fields optionals[] = {_Fields.PHYSICAL_LOCATIONS};
+  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.PHYSICAL_LOCATIONS, new org.apache.thrift.meta_data.FieldMetaData("physicalLocations", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ReplicaLocationModel.class, metaDataMap);
+  }
+
+  public ReplicaLocationModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ReplicaLocationModel(ReplicaLocationModel other) {
+    if (other.isSetPhysicalLocations()) {
+      List<String> __this__physicalLocations = new ArrayList<String>(other.physicalLocations);
+      this.physicalLocations = __this__physicalLocations;
+    }
+  }
+
+  public ReplicaLocationModel deepCopy() {
+    return new ReplicaLocationModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.physicalLocations = null;
+  }
+
+  public int getPhysicalLocationsSize() {
+    return (this.physicalLocations == null) ? 0 : this.physicalLocations.size();
+  }
+
+  public java.util.Iterator<String> getPhysicalLocationsIterator() {
+    return (this.physicalLocations == null) ? null : this.physicalLocations.iterator();
+  }
+
+  public void addToPhysicalLocations(String elem) {
+    if (this.physicalLocations == null) {
+      this.physicalLocations = new ArrayList<String>();
+    }
+    this.physicalLocations.add(elem);
+  }
+
+  public List<String> getPhysicalLocations() {
+    return this.physicalLocations;
+  }
+
+  public void setPhysicalLocations(List<String> physicalLocations) {
+    this.physicalLocations = physicalLocations;
+  }
+
+  public void unsetPhysicalLocations() {
+    this.physicalLocations = null;
+  }
+
+  /** Returns true if field physicalLocations is set (has been assigned a value) and false otherwise */
+  public boolean isSetPhysicalLocations() {
+    return this.physicalLocations != null;
+  }
+
+  public void setPhysicalLocationsIsSet(boolean value) {
+    if (!value) {
+      this.physicalLocations = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case PHYSICAL_LOCATIONS:
+      if (value == null) {
+        unsetPhysicalLocations();
+      } else {
+        setPhysicalLocations((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PHYSICAL_LOCATIONS:
+      return getPhysicalLocations();
+
+    }
+    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 PHYSICAL_LOCATIONS:
+      return isSetPhysicalLocations();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ReplicaLocationModel)
+      return this.equals((ReplicaLocationModel)that);
+    return false;
+  }
+
+  public boolean equals(ReplicaLocationModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_physicalLocations = true && this.isSetPhysicalLocations();
+    boolean that_present_physicalLocations = true && that.isSetPhysicalLocations();
+    if (this_present_physicalLocations || that_present_physicalLocations) {
+      if (!(this_present_physicalLocations && that_present_physicalLocations))
+        return false;
+      if (!this.physicalLocations.equals(that.physicalLocations))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_physicalLocations = true && (isSetPhysicalLocations());
+    list.add(present_physicalLocations);
+    if (present_physicalLocations)
+      list.add(physicalLocations);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ReplicaLocationModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetPhysicalLocations()).compareTo(other.isSetPhysicalLocations());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPhysicalLocations()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.physicalLocations, other.physicalLocations);
+      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("ReplicaLocationModel(");
+    boolean first = true;
+
+    if (isSetPhysicalLocations()) {
+      sb.append("physicalLocations:");
+      if (this.physicalLocations == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.physicalLocations);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 ReplicaLocationModelStandardSchemeFactory implements SchemeFactory {
+    public ReplicaLocationModelStandardScheme getScheme() {
+      return new ReplicaLocationModelStandardScheme();
+    }
+  }
+
+  private static class ReplicaLocationModelStandardScheme extends StandardScheme<ReplicaLocationModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ReplicaLocationModel 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: // PHYSICAL_LOCATIONS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list8 = iprot.readListBegin();
+                struct.physicalLocations = new ArrayList<String>(_list8.size);
+                String _elem9;
+                for (int _i10 = 0; _i10 < _list8.size; ++_i10)
+                {
+                  _elem9 = iprot.readString();
+                  struct.physicalLocations.add(_elem9);
+                }
+                iprot.readListEnd();
+              }
+              struct.setPhysicalLocationsIsSet(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, ReplicaLocationModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.physicalLocations != null) {
+        if (struct.isSetPhysicalLocations()) {
+          oprot.writeFieldBegin(PHYSICAL_LOCATIONS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.physicalLocations.size()));
+            for (String _iter11 : struct.physicalLocations)
+            {
+              oprot.writeString(_iter11);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ReplicaLocationModelTupleSchemeFactory implements SchemeFactory {
+    public ReplicaLocationModelTupleScheme getScheme() {
+      return new ReplicaLocationModelTupleScheme();
+    }
+  }
+
+  private static class ReplicaLocationModelTupleScheme extends TupleScheme<ReplicaLocationModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ReplicaLocationModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetPhysicalLocations()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetPhysicalLocations()) {
+        {
+          oprot.writeI32(struct.physicalLocations.size());
+          for (String _iter12 : struct.physicalLocations)
+          {
+            oprot.writeString(_iter12);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ReplicaLocationModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.physicalLocations = new ArrayList<String>(_list13.size);
+          String _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+          {
+            _elem14 = iprot.readString();
+            struct.physicalLocations.add(_elem14);
+          }
+        }
+        struct.setPhysicalLocationsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/resource/ResourceModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/resource/ResourceModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/resource/ResourceModel.java
new file mode 100644
index 0000000..bdaf535
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/resource/ResourceModel.java
@@ -0,0 +1,679 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.resource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ResourceModel implements org.apache.thrift.TBase<ResourceModel, ResourceModel._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceModel");
+
+  private static final org.apache.thrift.protocol.TField RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField RESOURCE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField REPLICA_LOCATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaLocations", org.apache.thrift.protocol.TType.LIST, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ResourceModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ResourceModelTupleSchemeFactory());
+  }
+
+  private String resourceId; // optional
+  private String resourceName; // optional
+  private List<ReplicaLocationModel> replicaLocations; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    RESOURCE_ID((short)1, "resourceId"),
+    RESOURCE_NAME((short)2, "resourceName"),
+    REPLICA_LOCATIONS((short)3, "replicaLocations");
+
+    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: // RESOURCE_ID
+          return RESOURCE_ID;
+        case 2: // RESOURCE_NAME
+          return RESOURCE_NAME;
+        case 3: // REPLICA_LOCATIONS
+          return REPLICA_LOCATIONS;
+        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 _Fields optionals[] = {_Fields.RESOURCE_ID,_Fields.RESOURCE_NAME};
+  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.RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("resourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_NAME, new org.apache.thrift.meta_data.FieldMetaData("resourceName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REPLICA_LOCATIONS, new org.apache.thrift.meta_data.FieldMetaData("replicaLocations", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT            , "ReplicaLocationModel"))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ResourceModel.class, metaDataMap);
+  }
+
+  public ResourceModel() {
+  }
+
+  public ResourceModel(
+    List<ReplicaLocationModel> replicaLocations)
+  {
+    this();
+    this.replicaLocations = replicaLocations;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ResourceModel(ResourceModel other) {
+    if (other.isSetResourceId()) {
+      this.resourceId = other.resourceId;
+    }
+    if (other.isSetResourceName()) {
+      this.resourceName = other.resourceName;
+    }
+    if (other.isSetReplicaLocations()) {
+      List<ReplicaLocationModel> __this__replicaLocations = new ArrayList<ReplicaLocationModel>(other.replicaLocations.size());
+      for (ReplicaLocationModel other_element : other.replicaLocations) {
+        __this__replicaLocations.add(other_element);
+      }
+      this.replicaLocations = __this__replicaLocations;
+    }
+  }
+
+  public ResourceModel deepCopy() {
+    return new ResourceModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.resourceId = null;
+    this.resourceName = null;
+    this.replicaLocations = null;
+  }
+
+  public String getResourceId() {
+    return this.resourceId;
+  }
+
+  public void setResourceId(String resourceId) {
+    this.resourceId = resourceId;
+  }
+
+  public void unsetResourceId() {
+    this.resourceId = null;
+  }
+
+  /** Returns true if field resourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceId() {
+    return this.resourceId != null;
+  }
+
+  public void setResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.resourceId = null;
+    }
+  }
+
+  public String getResourceName() {
+    return this.resourceName;
+  }
+
+  public void setResourceName(String resourceName) {
+    this.resourceName = resourceName;
+  }
+
+  public void unsetResourceName() {
+    this.resourceName = null;
+  }
+
+  /** Returns true if field resourceName is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceName() {
+    return this.resourceName != null;
+  }
+
+  public void setResourceNameIsSet(boolean value) {
+    if (!value) {
+      this.resourceName = null;
+    }
+  }
+
+  public int getReplicaLocationsSize() {
+    return (this.replicaLocations == null) ? 0 : this.replicaLocations.size();
+  }
+
+  public java.util.Iterator<ReplicaLocationModel> getReplicaLocationsIterator() {
+    return (this.replicaLocations == null) ? null : this.replicaLocations.iterator();
+  }
+
+  public void addToReplicaLocations(ReplicaLocationModel elem) {
+    if (this.replicaLocations == null) {
+      this.replicaLocations = new ArrayList<ReplicaLocationModel>();
+    }
+    this.replicaLocations.add(elem);
+  }
+
+  public List<ReplicaLocationModel> getReplicaLocations() {
+    return this.replicaLocations;
+  }
+
+  public void setReplicaLocations(List<ReplicaLocationModel> replicaLocations) {
+    this.replicaLocations = replicaLocations;
+  }
+
+  public void unsetReplicaLocations() {
+    this.replicaLocations = null;
+  }
+
+  /** Returns true if field replicaLocations is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaLocations() {
+    return this.replicaLocations != null;
+  }
+
+  public void setReplicaLocationsIsSet(boolean value) {
+    if (!value) {
+      this.replicaLocations = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case RESOURCE_ID:
+      if (value == null) {
+        unsetResourceId();
+      } else {
+        setResourceId((String)value);
+      }
+      break;
+
+    case RESOURCE_NAME:
+      if (value == null) {
+        unsetResourceName();
+      } else {
+        setResourceName((String)value);
+      }
+      break;
+
+    case REPLICA_LOCATIONS:
+      if (value == null) {
+        unsetReplicaLocations();
+      } else {
+        setReplicaLocations((List<ReplicaLocationModel>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case RESOURCE_ID:
+      return getResourceId();
+
+    case RESOURCE_NAME:
+      return getResourceName();
+
+    case REPLICA_LOCATIONS:
+      return getReplicaLocations();
+
+    }
+    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 RESOURCE_ID:
+      return isSetResourceId();
+    case RESOURCE_NAME:
+      return isSetResourceName();
+    case REPLICA_LOCATIONS:
+      return isSetReplicaLocations();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ResourceModel)
+      return this.equals((ResourceModel)that);
+    return false;
+  }
+
+  public boolean equals(ResourceModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_resourceId = true && this.isSetResourceId();
+    boolean that_present_resourceId = true && that.isSetResourceId();
+    if (this_present_resourceId || that_present_resourceId) {
+      if (!(this_present_resourceId && that_present_resourceId))
+        return false;
+      if (!this.resourceId.equals(that.resourceId))
+        return false;
+    }
+
+    boolean this_present_resourceName = true && this.isSetResourceName();
+    boolean that_present_resourceName = true && that.isSetResourceName();
+    if (this_present_resourceName || that_present_resourceName) {
+      if (!(this_present_resourceName && that_present_resourceName))
+        return false;
+      if (!this.resourceName.equals(that.resourceName))
+        return false;
+    }
+
+    boolean this_present_replicaLocations = true && this.isSetReplicaLocations();
+    boolean that_present_replicaLocations = true && that.isSetReplicaLocations();
+    if (this_present_replicaLocations || that_present_replicaLocations) {
+      if (!(this_present_replicaLocations && that_present_replicaLocations))
+        return false;
+      if (!this.replicaLocations.equals(that.replicaLocations))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_resourceId = true && (isSetResourceId());
+    list.add(present_resourceId);
+    if (present_resourceId)
+      list.add(resourceId);
+
+    boolean present_resourceName = true && (isSetResourceName());
+    list.add(present_resourceName);
+    if (present_resourceName)
+      list.add(resourceName);
+
+    boolean present_replicaLocations = true && (isSetReplicaLocations());
+    list.add(present_replicaLocations);
+    if (present_replicaLocations)
+      list.add(replicaLocations);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ResourceModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetResourceId()).compareTo(other.isSetResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceId, other.resourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceName()).compareTo(other.isSetResourceName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceName, other.resourceName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaLocations()).compareTo(other.isSetReplicaLocations());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaLocations()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaLocations, other.replicaLocations);
+      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("ResourceModel(");
+    boolean first = true;
+
+    if (isSetResourceId()) {
+      sb.append("resourceId:");
+      if (this.resourceId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceId);
+      }
+      first = false;
+    }
+    if (isSetResourceName()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceName:");
+      if (this.resourceName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceName);
+      }
+      first = false;
+    }
+    if (!first) sb.append(", ");
+    sb.append("replicaLocations:");
+    if (this.replicaLocations == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.replicaLocations);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 ResourceModelStandardSchemeFactory implements SchemeFactory {
+    public ResourceModelStandardScheme getScheme() {
+      return new ResourceModelStandardScheme();
+    }
+  }
+
+  private static class ResourceModelStandardScheme extends StandardScheme<ResourceModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ResourceModel 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: // RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceId = iprot.readString();
+              struct.setResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // RESOURCE_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceName = iprot.readString();
+              struct.setResourceNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // REPLICA_LOCATIONS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.replicaLocations = new ArrayList<ReplicaLocationModel>(_list0.size);
+                ReplicaLocationModel _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new ReplicaLocationModel();
+                  _elem1.read(iprot);
+                  struct.replicaLocations.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setReplicaLocationsIsSet(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, ResourceModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.resourceId != null) {
+        if (struct.isSetResourceId()) {
+          oprot.writeFieldBegin(RESOURCE_ID_FIELD_DESC);
+          oprot.writeString(struct.resourceId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceName != null) {
+        if (struct.isSetResourceName()) {
+          oprot.writeFieldBegin(RESOURCE_NAME_FIELD_DESC);
+          oprot.writeString(struct.resourceName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaLocations != null) {
+        oprot.writeFieldBegin(REPLICA_LOCATIONS_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.replicaLocations.size()));
+          for (ReplicaLocationModel _iter3 : struct.replicaLocations)
+          {
+            _iter3.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ResourceModelTupleSchemeFactory implements SchemeFactory {
+    public ResourceModelTupleScheme getScheme() {
+      return new ResourceModelTupleScheme();
+    }
+  }
+
+  private static class ResourceModelTupleScheme extends TupleScheme<ResourceModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ResourceModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetResourceId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetResourceName()) {
+        optionals.set(1);
+      }
+      if (struct.isSetReplicaLocations()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetResourceId()) {
+        oprot.writeString(struct.resourceId);
+      }
+      if (struct.isSetResourceName()) {
+        oprot.writeString(struct.resourceName);
+      }
+      if (struct.isSetReplicaLocations()) {
+        {
+          oprot.writeI32(struct.replicaLocations.size());
+          for (ReplicaLocationModel _iter4 : struct.replicaLocations)
+          {
+            _iter4.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ResourceModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.resourceId = iprot.readString();
+        struct.setResourceIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.resourceName = iprot.readString();
+        struct.setResourceNameIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.replicaLocations = new ArrayList<ReplicaLocationModel>(_list5.size);
+          ReplicaLocationModel _elem6;
+          for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+          {
+            _elem6 = new ReplicaLocationModel();
+            _elem6.read(iprot);
+            struct.replicaLocations.add(_elem6);
+          }
+        }
+        struct.setReplicaLocationsIsSet(true);
+      }
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
new file mode 100644
index 0000000..e7a7891
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
@@ -0,0 +1,745 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.appdeployment;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Application Module Information. A module has to be registered before registering a deployment.
+ * 
+ * appModuleId: Airavata Internal Unique Job ID. This is set by the registry.
+ * 
+ * appModuleName:
+ *   Name of the application module.
+ * 
+ * appModuleVersion:
+ *   Version of the application.
+ * 
+ * appModuleDescription:
+ *    Descriprion of the Module
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ApplicationModule implements org.apache.thrift.TBase<ApplicationModule, ApplicationModule._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationModule> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationModule");
+
+  private static final org.apache.thrift.protocol.TField APP_MODULE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("appModuleId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField APP_MODULE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("appModuleName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField APP_MODULE_VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("appModuleVersion", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField APP_MODULE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("appModuleDescription", 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 ApplicationModuleStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ApplicationModuleTupleSchemeFactory());
+  }
+
+  public String appModuleId; // required
+  public String appModuleName; // required
+  public String appModuleVersion; // optional
+  public String appModuleDescription; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    APP_MODULE_ID((short)1, "appModuleId"),
+    APP_MODULE_NAME((short)2, "appModuleName"),
+    APP_MODULE_VERSION((short)3, "appModuleVersion"),
+    APP_MODULE_DESCRIPTION((short)4, "appModuleDescription");
+
+    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: // APP_MODULE_ID
+          return APP_MODULE_ID;
+        case 2: // APP_MODULE_NAME
+          return APP_MODULE_NAME;
+        case 3: // APP_MODULE_VERSION
+          return APP_MODULE_VERSION;
+        case 4: // APP_MODULE_DESCRIPTION
+          return APP_MODULE_DESCRIPTION;
+        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 _Fields optionals[] = {_Fields.APP_MODULE_VERSION,_Fields.APP_MODULE_DESCRIPTION};
+  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.APP_MODULE_ID, new org.apache.thrift.meta_data.FieldMetaData("appModuleId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APP_MODULE_NAME, new org.apache.thrift.meta_data.FieldMetaData("appModuleName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APP_MODULE_VERSION, new org.apache.thrift.meta_data.FieldMetaData("appModuleVersion", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APP_MODULE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("appModuleDescription", 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(ApplicationModule.class, metaDataMap);
+  }
+
+  public ApplicationModule() {
+    this.appModuleId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public ApplicationModule(
+    String appModuleId,
+    String appModuleName)
+  {
+    this();
+    this.appModuleId = appModuleId;
+    this.appModuleName = appModuleName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ApplicationModule(ApplicationModule other) {
+    if (other.isSetAppModuleId()) {
+      this.appModuleId = other.appModuleId;
+    }
+    if (other.isSetAppModuleName()) {
+      this.appModuleName = other.appModuleName;
+    }
+    if (other.isSetAppModuleVersion()) {
+      this.appModuleVersion = other.appModuleVersion;
+    }
+    if (other.isSetAppModuleDescription()) {
+      this.appModuleDescription = other.appModuleDescription;
+    }
+  }
+
+  public ApplicationModule deepCopy() {
+    return new ApplicationModule(this);
+  }
+
+  @Override
+  public void clear() {
+    this.appModuleId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.appModuleName = null;
+    this.appModuleVersion = null;
+    this.appModuleDescription = null;
+  }
+
+  public String getAppModuleId() {
+    return this.appModuleId;
+  }
+
+  public ApplicationModule setAppModuleId(String appModuleId) {
+    this.appModuleId = appModuleId;
+    return this;
+  }
+
+  public void unsetAppModuleId() {
+    this.appModuleId = null;
+  }
+
+  /** Returns true if field appModuleId is set (has been assigned a value) and false otherwise */
+  public boolean isSetAppModuleId() {
+    return this.appModuleId != null;
+  }
+
+  public void setAppModuleIdIsSet(boolean value) {
+    if (!value) {
+      this.appModuleId = null;
+    }
+  }
+
+  public String getAppModuleName() {
+    return this.appModuleName;
+  }
+
+  public ApplicationModule setAppModuleName(String appModuleName) {
+    this.appModuleName = appModuleName;
+    return this;
+  }
+
+  public void unsetAppModuleName() {
+    this.appModuleName = null;
+  }
+
+  /** Returns true if field appModuleName is set (has been assigned a value) and false otherwise */
+  public boolean isSetAppModuleName() {
+    return this.appModuleName != null;
+  }
+
+  public void setAppModuleNameIsSet(boolean value) {
+    if (!value) {
+      this.appModuleName = null;
+    }
+  }
+
+  public String getAppModuleVersion() {
+    return this.appModuleVersion;
+  }
+
+  public ApplicationModule setAppModuleVersion(String appModuleVersion) {
+    this.appModuleVersion = appModuleVersion;
+    return this;
+  }
+
+  public void unsetAppModuleVersion() {
+    this.appModuleVersion = null;
+  }
+
+  /** Returns true if field appModuleVersion is set (has been assigned a value) and false otherwise */
+  public boolean isSetAppModuleVersion() {
+    return this.appModuleVersion != null;
+  }
+
+  public void setAppModuleVersionIsSet(boolean value) {
+    if (!value) {
+      this.appModuleVersion = null;
+    }
+  }
+
+  public String getAppModuleDescription() {
+    return this.appModuleDescription;
+  }
+
+  public ApplicationModule setAppModuleDescription(String appModuleDescription) {
+    this.appModuleDescription = appModuleDescription;
+    return this;
+  }
+
+  public void unsetAppModuleDescription() {
+    this.appModuleDescription = null;
+  }
+
+  /** Returns true if field appModuleDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetAppModuleDescription() {
+    return this.appModuleDescription != null;
+  }
+
+  public void setAppModuleDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.appModuleDescription = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case APP_MODULE_ID:
+      if (value == null) {
+        unsetAppModuleId();
+      } else {
+        setAppModuleId((String)value);
+      }
+      break;
+
+    case APP_MODULE_NAME:
+      if (value == null) {
+        unsetAppModuleName();
+      } else {
+        setAppModuleName((String)value);
+      }
+      break;
+
+    case APP_MODULE_VERSION:
+      if (value == null) {
+        unsetAppModuleVersion();
+      } else {
+        setAppModuleVersion((String)value);
+      }
+      break;
+
+    case APP_MODULE_DESCRIPTION:
+      if (value == null) {
+        unsetAppModuleDescription();
+      } else {
+        setAppModuleDescription((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case APP_MODULE_ID:
+      return getAppModuleId();
+
+    case APP_MODULE_NAME:
+      return getAppModuleName();
+
+    case APP_MODULE_VERSION:
+      return getAppModuleVersion();
+
+    case APP_MODULE_DESCRIPTION:
+      return getAppModuleDescription();
+
+    }
+    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 APP_MODULE_ID:
+      return isSetAppModuleId();
+    case APP_MODULE_NAME:
+      return isSetAppModuleName();
+    case APP_MODULE_VERSION:
+      return isSetAppModuleVersion();
+    case APP_MODULE_DESCRIPTION:
+      return isSetAppModuleDescription();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ApplicationModule)
+      return this.equals((ApplicationModule)that);
+    return false;
+  }
+
+  public boolean equals(ApplicationModule that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_appModuleId = true && this.isSetAppModuleId();
+    boolean that_present_appModuleId = true && that.isSetAppModuleId();
+    if (this_present_appModuleId || that_present_appModuleId) {
+      if (!(this_present_appModuleId && that_present_appModuleId))
+        return false;
+      if (!this.appModuleId.equals(that.appModuleId))
+        return false;
+    }
+
+    boolean this_present_appModuleName = true && this.isSetAppModuleName();
+    boolean that_present_appModuleName = true && that.isSetAppModuleName();
+    if (this_present_appModuleName || that_present_appModuleName) {
+      if (!(this_present_appModuleName && that_present_appModuleName))
+        return false;
+      if (!this.appModuleName.equals(that.appModuleName))
+        return false;
+    }
+
+    boolean this_present_appModuleVersion = true && this.isSetAppModuleVersion();
+    boolean that_present_appModuleVersion = true && that.isSetAppModuleVersion();
+    if (this_present_appModuleVersion || that_present_appModuleVersion) {
+      if (!(this_present_appModuleVersion && that_present_appModuleVersion))
+        return false;
+      if (!this.appModuleVersion.equals(that.appModuleVersion))
+        return false;
+    }
+
+    boolean this_present_appModuleDescription = true && this.isSetAppModuleDescription();
+    boolean that_present_appModuleDescription = true && that.isSetAppModuleDescription();
+    if (this_present_appModuleDescription || that_present_appModuleDescription) {
+      if (!(this_present_appModuleDescription && that_present_appModuleDescription))
+        return false;
+      if (!this.appModuleDescription.equals(that.appModuleDescription))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_appModuleId = true && (isSetAppModuleId());
+    list.add(present_appModuleId);
+    if (present_appModuleId)
+      list.add(appModuleId);
+
+    boolean present_appModuleName = true && (isSetAppModuleName());
+    list.add(present_appModuleName);
+    if (present_appModuleName)
+      list.add(appModuleName);
+
+    boolean present_appModuleVersion = true && (isSetAppModuleVersion());
+    list.add(present_appModuleVersion);
+    if (present_appModuleVersion)
+      list.add(appModuleVersion);
+
+    boolean present_appModuleDescription = true && (isSetAppModuleDescription());
+    list.add(present_appModuleDescription);
+    if (present_appModuleDescription)
+      list.add(appModuleDescription);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ApplicationModule other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetAppModuleId()).compareTo(other.isSetAppModuleId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAppModuleId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appModuleId, other.appModuleId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAppModuleName()).compareTo(other.isSetAppModuleName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAppModuleName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appModuleName, other.appModuleName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAppModuleVersion()).compareTo(other.isSetAppModuleVersion());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAppModuleVersion()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appModuleVersion, other.appModuleVersion);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAppModuleDescription()).compareTo(other.isSetAppModuleDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAppModuleDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appModuleDescription, other.appModuleDescription);
+      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("ApplicationModule(");
+    boolean first = true;
+
+    sb.append("appModuleId:");
+    if (this.appModuleId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.appModuleId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("appModuleName:");
+    if (this.appModuleName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.appModuleName);
+    }
+    first = false;
+    if (isSetAppModuleVersion()) {
+      if (!first) sb.append(", ");
+      sb.append("appModuleVersion:");
+      if (this.appModuleVersion == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.appModuleVersion);
+      }
+      first = false;
+    }
+    if (isSetAppModuleDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("appModuleDescription:");
+      if (this.appModuleDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.appModuleDescription);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (appModuleId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'appModuleId' was not present! Struct: " + toString());
+    }
+    if (appModuleName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'appModuleName' was not present! 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 ApplicationModuleStandardSchemeFactory implements SchemeFactory {
+    public ApplicationModuleStandardScheme getScheme() {
+      return new ApplicationModuleStandardScheme();
+    }
+  }
+
+  private static class ApplicationModuleStandardScheme extends StandardScheme<ApplicationModule> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ApplicationModule 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: // APP_MODULE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.appModuleId = iprot.readString();
+              struct.setAppModuleIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // APP_MODULE_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.appModuleName = iprot.readString();
+              struct.setAppModuleNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // APP_MODULE_VERSION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.appModuleVersion = iprot.readString();
+              struct.setAppModuleVersionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // APP_MODULE_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.appModuleDescription = iprot.readString();
+              struct.setAppModuleDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ApplicationModule struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.appModuleId != null) {
+        oprot.writeFieldBegin(APP_MODULE_ID_FIELD_DESC);
+        oprot.writeString(struct.appModuleId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.appModuleName != null) {
+        oprot.writeFieldBegin(APP_MODULE_NAME_FIELD_DESC);
+        oprot.writeString(struct.appModuleName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.appModuleVersion != null) {
+        if (struct.isSetAppModuleVersion()) {
+          oprot.writeFieldBegin(APP_MODULE_VERSION_FIELD_DESC);
+          oprot.writeString(struct.appModuleVersion);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.appModuleDescription != null) {
+        if (struct.isSetAppModuleDescription()) {
+          oprot.writeFieldBegin(APP_MODULE_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.appModuleDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ApplicationModuleTupleSchemeFactory implements SchemeFactory {
+    public ApplicationModuleTupleScheme getScheme() {
+      return new ApplicationModuleTupleScheme();
+    }
+  }
+
+  private static class ApplicationModuleTupleScheme extends TupleScheme<ApplicationModule> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ApplicationModule struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.appModuleId);
+      oprot.writeString(struct.appModuleName);
+      BitSet optionals = new BitSet();
+      if (struct.isSetAppModuleVersion()) {
+        optionals.set(0);
+      }
+      if (struct.isSetAppModuleDescription()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetAppModuleVersion()) {
+        oprot.writeString(struct.appModuleVersion);
+      }
+      if (struct.isSetAppModuleDescription()) {
+        oprot.writeString(struct.appModuleDescription);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ApplicationModule struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.appModuleId = iprot.readString();
+      struct.setAppModuleIdIsSet(true);
+      struct.appModuleName = iprot.readString();
+      struct.setAppModuleNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.appModuleVersion = iprot.readString();
+        struct.setAppModuleVersionIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.appModuleDescription = iprot.readString();
+        struct.setAppModuleDescriptionIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationParallelismType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationParallelismType.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationParallelismType.java
new file mode 100644
index 0000000..28c4003
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationParallelismType.java
@@ -0,0 +1,90 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.appdeployment;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of application parallelism supported by Airavata
+ * 
+ * SERIAL:
+ *  Single processor applications without any parallelization.
+ * 
+ * MPI:
+ *  Messaging Passing Interface.
+ * 
+ * OPENMP:
+ *  Shared Memory Implementtaion.
+ * 
+ * OPENMP_MPI:
+ *  Hybrid Applications.
+ * 
+ */
+public enum ApplicationParallelismType implements org.apache.thrift.TEnum {
+  SERIAL(0),
+  MPI(1),
+  OPENMP(2),
+  OPENMP_MPI(3),
+  CCM(4),
+  CRAY_MPI(5);
+
+  private final int value;
+
+  private ApplicationParallelismType(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 ApplicationParallelismType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return SERIAL;
+      case 1:
+        return MPI;
+      case 2:
+        return OPENMP;
+      case 3:
+        return OPENMP_MPI;
+      case 4:
+        return CCM;
+      case 5:
+        return CRAY_MPI;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
new file mode 100644
index 0000000..80c44b4
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
@@ -0,0 +1,525 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.appdeployment;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Job commands to be used in Pre Job, Post Job and Module Load Commands
+ * 
+ * command:
+ *   The actual command in string format
+ * 
+ * commandOrder:
+ *   Order of the command in the multiple command situation
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class CommandObject implements org.apache.thrift.TBase<CommandObject, CommandObject._Fields>, java.io.Serializable, Cloneable, Comparable<CommandObject> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CommandObject");
+
+  private static final org.apache.thrift.protocol.TField COMMAND_FIELD_DESC = new org.apache.thrift.protocol.TField("command", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField COMMAND_ORDER_FIELD_DESC = new org.apache.thrift.protocol.TField("commandOrder", org.apache.thrift.protocol.TType.I32, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new CommandObjectStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new CommandObjectTupleSchemeFactory());
+  }
+
+  public String command; // required
+  public int commandOrder; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    COMMAND((short)1, "command"),
+    COMMAND_ORDER((short)2, "commandOrder");
+
+    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: // COMMAND
+          return COMMAND;
+        case 2: // COMMAND_ORDER
+          return COMMAND_ORDER;
+        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 __COMMANDORDER_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.COMMAND_ORDER};
+  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.COMMAND, new org.apache.thrift.meta_data.FieldMetaData("command", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.COMMAND_ORDER, new org.apache.thrift.meta_data.FieldMetaData("commandOrder", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CommandObject.class, metaDataMap);
+  }
+
+  public CommandObject() {
+  }
+
+  public CommandObject(
+    String command)
+  {
+    this();
+    this.command = command;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public CommandObject(CommandObject other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetCommand()) {
+      this.command = other.command;
+    }
+    this.commandOrder = other.commandOrder;
+  }
+
+  public CommandObject deepCopy() {
+    return new CommandObject(this);
+  }
+
+  @Override
+  public void clear() {
+    this.command = null;
+    setCommandOrderIsSet(false);
+    this.commandOrder = 0;
+  }
+
+  public String getCommand() {
+    return this.command;
+  }
+
+  public CommandObject setCommand(String command) {
+    this.command = command;
+    return this;
+  }
+
+  public void unsetCommand() {
+    this.command = null;
+  }
+
+  /** Returns true if field command is set (has been assigned a value) and false otherwise */
+  public boolean isSetCommand() {
+    return this.command != null;
+  }
+
+  public void setCommandIsSet(boolean value) {
+    if (!value) {
+      this.command = null;
+    }
+  }
+
+  public int getCommandOrder() {
+    return this.commandOrder;
+  }
+
+  public CommandObject setCommandOrder(int commandOrder) {
+    this.commandOrder = commandOrder;
+    setCommandOrderIsSet(true);
+    return this;
+  }
+
+  public void unsetCommandOrder() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __COMMANDORDER_ISSET_ID);
+  }
+
+  /** Returns true if field commandOrder is set (has been assigned a value) and false otherwise */
+  public boolean isSetCommandOrder() {
+    return EncodingUtils.testBit(__isset_bitfield, __COMMANDORDER_ISSET_ID);
+  }
+
+  public void setCommandOrderIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __COMMANDORDER_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case COMMAND:
+      if (value == null) {
+        unsetCommand();
+      } else {
+        setCommand((String)value);
+      }
+      break;
+
+    case COMMAND_ORDER:
+      if (value == null) {
+        unsetCommandOrder();
+      } else {
+        setCommandOrder((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case COMMAND:
+      return getCommand();
+
+    case COMMAND_ORDER:
+      return Integer.valueOf(getCommandOrder());
+
+    }
+    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 COMMAND:
+      return isSetCommand();
+    case COMMAND_ORDER:
+      return isSetCommandOrder();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof CommandObject)
+      return this.equals((CommandObject)that);
+    return false;
+  }
+
+  public boolean equals(CommandObject that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_command = true && this.isSetCommand();
+    boolean that_present_command = true && that.isSetCommand();
+    if (this_present_command || that_present_command) {
+      if (!(this_present_command && that_present_command))
+        return false;
+      if (!this.command.equals(that.command))
+        return false;
+    }
+
+    boolean this_present_commandOrder = true && this.isSetCommandOrder();
+    boolean that_present_commandOrder = true && that.isSetCommandOrder();
+    if (this_present_commandOrder || that_present_commandOrder) {
+      if (!(this_present_commandOrder && that_present_commandOrder))
+        return false;
+      if (this.commandOrder != that.commandOrder)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_command = true && (isSetCommand());
+    list.add(present_command);
+    if (present_command)
+      list.add(command);
+
+    boolean present_commandOrder = true && (isSetCommandOrder());
+    list.add(present_commandOrder);
+    if (present_commandOrder)
+      list.add(commandOrder);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(CommandObject other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetCommand()).compareTo(other.isSetCommand());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCommand()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.command, other.command);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCommandOrder()).compareTo(other.isSetCommandOrder());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCommandOrder()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.commandOrder, other.commandOrder);
+      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("CommandObject(");
+    boolean first = true;
+
+    sb.append("command:");
+    if (this.command == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.command);
+    }
+    first = false;
+    if (isSetCommandOrder()) {
+      if (!first) sb.append(", ");
+      sb.append("commandOrder:");
+      sb.append(this.commandOrder);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (command == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'command' was not present! 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 CommandObjectStandardSchemeFactory implements SchemeFactory {
+    public CommandObjectStandardScheme getScheme() {
+      return new CommandObjectStandardScheme();
+    }
+  }
+
+  private static class CommandObjectStandardScheme extends StandardScheme<CommandObject> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, CommandObject 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: // COMMAND
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.command = iprot.readString();
+              struct.setCommandIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // COMMAND_ORDER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.commandOrder = iprot.readI32();
+              struct.setCommandOrderIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, CommandObject struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.command != null) {
+        oprot.writeFieldBegin(COMMAND_FIELD_DESC);
+        oprot.writeString(struct.command);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCommandOrder()) {
+        oprot.writeFieldBegin(COMMAND_ORDER_FIELD_DESC);
+        oprot.writeI32(struct.commandOrder);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class CommandObjectTupleSchemeFactory implements SchemeFactory {
+    public CommandObjectTupleScheme getScheme() {
+      return new CommandObjectTupleScheme();
+    }
+  }
+
+  private static class CommandObjectTupleScheme extends TupleScheme<CommandObject> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, CommandObject struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.command);
+      BitSet optionals = new BitSet();
+      if (struct.isSetCommandOrder()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetCommandOrder()) {
+        oprot.writeI32(struct.commandOrder);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, CommandObject struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.command = iprot.readString();
+      struct.setCommandIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.commandOrder = iprot.readI32();
+        struct.setCommandOrderIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
new file mode 100644
index 0000000..9fba942
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
@@ -0,0 +1,629 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.appdeployment;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Key Value pairs to be used to set environments
+ * 
+ * name:
+ *   Name of the environment variable such as PATH, LD_LIBRARY_PATH, NETCDF_HOME.
+ * 
+ * value:
+ *   Value of the environment variable to set
+ * 
+ * envPathOrder:
+ *   The order of the setting of the env variables when there are multiple env variables
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class SetEnvPaths implements org.apache.thrift.TBase<SetEnvPaths, SetEnvPaths._Fields>, java.io.Serializable, Cloneable, Comparable<SetEnvPaths> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetEnvPaths");
+
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", 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 ENV_PATH_ORDER_FIELD_DESC = new org.apache.thrift.protocol.TField("envPathOrder", org.apache.thrift.protocol.TType.I32, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new SetEnvPathsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new SetEnvPathsTupleSchemeFactory());
+  }
+
+  public String name; // required
+  public String value; // required
+  public int envPathOrder; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    NAME((short)1, "name"),
+    VALUE((short)2, "value"),
+    ENV_PATH_ORDER((short)3, "envPathOrder");
+
+    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: // NAME
+          return NAME;
+        case 2: // VALUE
+          return VALUE;
+        case 3: // ENV_PATH_ORDER
+          return ENV_PATH_ORDER;
+        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 __ENVPATHORDER_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.ENV_PATH_ORDER};
+  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.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", 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.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.ENV_PATH_ORDER, new org.apache.thrift.meta_data.FieldMetaData("envPathOrder", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SetEnvPaths.class, metaDataMap);
+  }
+
+  public SetEnvPaths() {
+  }
+
+  public SetEnvPaths(
+    String name,
+    String value)
+  {
+    this();
+    this.name = name;
+    this.value = value;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public SetEnvPaths(SetEnvPaths other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetName()) {
+      this.name = other.name;
+    }
+    if (other.isSetValue()) {
+      this.value = other.value;
+    }
+    this.envPathOrder = other.envPathOrder;
+  }
+
+  public SetEnvPaths deepCopy() {
+    return new SetEnvPaths(this);
+  }
+
+  @Override
+  public void clear() {
+    this.name = null;
+    this.value = null;
+    setEnvPathOrderIsSet(false);
+    this.envPathOrder = 0;
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public SetEnvPaths setName(String name) {
+    this.name = name;
+    return this;
+  }
+
+  public void unsetName() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false otherwise */
+  public boolean isSetName() {
+    return this.name != null;
+  }
+
+  public void setNameIsSet(boolean value) {
+    if (!value) {
+      this.name = null;
+    }
+  }
+
+  public String getValue() {
+    return this.value;
+  }
+
+  public SetEnvPaths setValue(String value) {
+    this.value = value;
+    return this;
+  }
+
+  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 int getEnvPathOrder() {
+    return this.envPathOrder;
+  }
+
+  public SetEnvPaths setEnvPathOrder(int envPathOrder) {
+    this.envPathOrder = envPathOrder;
+    setEnvPathOrderIsSet(true);
+    return this;
+  }
+
+  public void unsetEnvPathOrder() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ENVPATHORDER_ISSET_ID);
+  }
+
+  /** Returns true if field envPathOrder is set (has been assigned a value) and false otherwise */
+  public boolean isSetEnvPathOrder() {
+    return EncodingUtils.testBit(__isset_bitfield, __ENVPATHORDER_ISSET_ID);
+  }
+
+  public void setEnvPathOrderIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ENVPATHORDER_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case NAME:
+      if (value == null) {
+        unsetName();
+      } else {
+        setName((String)value);
+      }
+      break;
+
+    case VALUE:
+      if (value == null) {
+        unsetValue();
+      } else {
+        setValue((String)value);
+      }
+      break;
+
+    case ENV_PATH_ORDER:
+      if (value == null) {
+        unsetEnvPathOrder();
+      } else {
+        setEnvPathOrder((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case NAME:
+      return getName();
+
+    case VALUE:
+      return getValue();
+
+    case ENV_PATH_ORDER:
+      return Integer.valueOf(getEnvPathOrder());
+
+    }
+    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 NAME:
+      return isSetName();
+    case VALUE:
+      return isSetValue();
+    case ENV_PATH_ORDER:
+      return isSetEnvPathOrder();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof SetEnvPaths)
+      return this.equals((SetEnvPaths)that);
+    return false;
+  }
+
+  public boolean equals(SetEnvPaths that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
+        return false;
+      if (!this.name.equals(that.name))
+        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_envPathOrder = true && this.isSetEnvPathOrder();
+    boolean that_present_envPathOrder = true && that.isSetEnvPathOrder();
+    if (this_present_envPathOrder || that_present_envPathOrder) {
+      if (!(this_present_envPathOrder && that_present_envPathOrder))
+        return false;
+      if (this.envPathOrder != that.envPathOrder)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_name = true && (isSetName());
+    list.add(present_name);
+    if (present_name)
+      list.add(name);
+
+    boolean present_value = true && (isSetValue());
+    list.add(present_value);
+    if (present_value)
+      list.add(value);
+
+    boolean present_envPathOrder = true && (isSetEnvPathOrder());
+    list.add(present_envPathOrder);
+    if (present_envPathOrder)
+      list.add(envPathOrder);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(SetEnvPaths other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+      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(isSetEnvPathOrder()).compareTo(other.isSetEnvPathOrder());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEnvPathOrder()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.envPathOrder, other.envPathOrder);
+      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("SetEnvPaths(");
+    boolean first = true;
+
+    sb.append("name:");
+    if (this.name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.name);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("value:");
+    if (this.value == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.value);
+    }
+    first = false;
+    if (isSetEnvPathOrder()) {
+      if (!first) sb.append(", ");
+      sb.append("envPathOrder:");
+      sb.append(this.envPathOrder);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (name == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! Struct: " + toString());
+    }
+    if (value == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'value' was not present! 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 SetEnvPathsStandardSchemeFactory implements SchemeFactory {
+    public SetEnvPathsStandardScheme getScheme() {
+      return new SetEnvPathsStandardScheme();
+    }
+  }
+
+  private static class SetEnvPathsStandardScheme extends StandardScheme<SetEnvPaths> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, SetEnvPaths 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: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(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: // ENV_PATH_ORDER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.envPathOrder = iprot.readI32();
+              struct.setEnvPathOrderIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, SetEnvPaths struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        oprot.writeFieldEnd();
+      }
+      if (struct.value != null) {
+        oprot.writeFieldBegin(VALUE_FIELD_DESC);
+        oprot.writeString(struct.value);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetEnvPathOrder()) {
+        oprot.writeFieldBegin(ENV_PATH_ORDER_FIELD_DESC);
+        oprot.writeI32(struct.envPathOrder);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class SetEnvPathsTupleSchemeFactory implements SchemeFactory {
+    public SetEnvPathsTupleScheme getScheme() {
+      return new SetEnvPathsTupleScheme();
+    }
+  }
+
+  private static class SetEnvPathsTupleScheme extends TupleScheme<SetEnvPaths> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, SetEnvPaths struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.name);
+      oprot.writeString(struct.value);
+      BitSet optionals = new BitSet();
+      if (struct.isSetEnvPathOrder()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetEnvPathOrder()) {
+        oprot.writeI32(struct.envPathOrder);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, SetEnvPaths struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.name = iprot.readString();
+      struct.setNameIsSet(true);
+      struct.value = iprot.readString();
+      struct.setValueIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.envPathOrder = iprot.readI32();
+        struct.setEnvPathOrderIsSet(true);
+      }
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
new file mode 100644
index 0000000..5e197fb
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
@@ -0,0 +1,530 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<ProcessStatusChangeRequestEvent, ProcessStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeRequestEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeRequestEvent");
+
+  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField PROCESS_IDENTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("processIdentity", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ProcessStatusChangeRequestEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ProcessStatusChangeRequestEventTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.ProcessState
+   */
+  public org.apache.airavata.model.status.ProcessState state; // required
+  public ProcessIdentifier processIdentity; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see org.apache.airavata.model.status.ProcessState
+     */
+    STATE((short)1, "state"),
+    PROCESS_IDENTITY((short)2, "processIdentity");
+
+    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: // STATE
+          return STATE;
+        case 2: // PROCESS_IDENTITY
+          return PROCESS_IDENTITY;
+        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
+  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.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.status.ProcessState.class)));
+    tmpMap.put(_Fields.PROCESS_IDENTITY, new org.apache.thrift.meta_data.FieldMetaData("processIdentity", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ProcessIdentifier.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ProcessStatusChangeRequestEvent.class, metaDataMap);
+  }
+
+  public ProcessStatusChangeRequestEvent() {
+  }
+
+  public ProcessStatusChangeRequestEvent(
+    org.apache.airavata.model.status.ProcessState state,
+    ProcessIdentifier processIdentity)
+  {
+    this();
+    this.state = state;
+    this.processIdentity = processIdentity;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ProcessStatusChangeRequestEvent(ProcessStatusChangeRequestEvent other) {
+    if (other.isSetState()) {
+      this.state = other.state;
+    }
+    if (other.isSetProcessIdentity()) {
+      this.processIdentity = new ProcessIdentifier(other.processIdentity);
+    }
+  }
+
+  public ProcessStatusChangeRequestEvent deepCopy() {
+    return new ProcessStatusChangeRequestEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state = null;
+    this.processIdentity = null;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.ProcessState
+   */
+  public org.apache.airavata.model.status.ProcessState getState() {
+    return this.state;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.ProcessState
+   */
+  public ProcessStatusChangeRequestEvent setState(org.apache.airavata.model.status.ProcessState state) {
+    this.state = state;
+    return this;
+  }
+
+  public void unsetState() {
+    this.state = null;
+  }
+
+  /** Returns true if field state is set (has been assigned a value) and false otherwise */
+  public boolean isSetState() {
+    return this.state != null;
+  }
+
+  public void setStateIsSet(boolean value) {
+    if (!value) {
+      this.state = null;
+    }
+  }
+
+  public ProcessIdentifier getProcessIdentity() {
+    return this.processIdentity;
+  }
+
+  public ProcessStatusChangeRequestEvent setProcessIdentity(ProcessIdentifier processIdentity) {
+    this.processIdentity = processIdentity;
+    return this;
+  }
+
+  public void unsetProcessIdentity() {
+    this.processIdentity = null;
+  }
+
+  /** Returns true if field processIdentity is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessIdentity() {
+    return this.processIdentity != null;
+  }
+
+  public void setProcessIdentityIsSet(boolean value) {
+    if (!value) {
+      this.processIdentity = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE:
+      if (value == null) {
+        unsetState();
+      } else {
+        setState((org.apache.airavata.model.status.ProcessState)value);
+      }
+      break;
+
+    case PROCESS_IDENTITY:
+      if (value == null) {
+        unsetProcessIdentity();
+      } else {
+        setProcessIdentity((ProcessIdentifier)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE:
+      return getState();
+
+    case PROCESS_IDENTITY:
+      return getProcessIdentity();
+
+    }
+    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 STATE:
+      return isSetState();
+    case PROCESS_IDENTITY:
+      return isSetProcessIdentity();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ProcessStatusChangeRequestEvent)
+      return this.equals((ProcessStatusChangeRequestEvent)that);
+    return false;
+  }
+
+  public boolean equals(ProcessStatusChangeRequestEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_state = true && this.isSetState();
+    boolean that_present_state = true && that.isSetState();
+    if (this_present_state || that_present_state) {
+      if (!(this_present_state && that_present_state))
+        return false;
+      if (!this.state.equals(that.state))
+        return false;
+    }
+
+    boolean this_present_processIdentity = true && this.isSetProcessIdentity();
+    boolean that_present_processIdentity = true && that.isSetProcessIdentity();
+    if (this_present_processIdentity || that_present_processIdentity) {
+      if (!(this_present_processIdentity && that_present_processIdentity))
+        return false;
+      if (!this.processIdentity.equals(that.processIdentity))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state = true && (isSetState());
+    list.add(present_state);
+    if (present_state)
+      list.add(state.getValue());
+
+    boolean present_processIdentity = true && (isSetProcessIdentity());
+    list.add(present_processIdentity);
+    if (present_processIdentity)
+      list.add(processIdentity);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ProcessStatusChangeRequestEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetState()).compareTo(other.isSetState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessIdentity()).compareTo(other.isSetProcessIdentity());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessIdentity()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processIdentity, other.processIdentity);
+      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("ProcessStatusChangeRequestEvent(");
+    boolean first = true;
+
+    sb.append("state:");
+    if (this.state == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("processIdentity:");
+    if (this.processIdentity == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.processIdentity);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (state == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state' was not present! Struct: " + toString());
+    }
+    if (processIdentity == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processIdentity' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (processIdentity != null) {
+      processIdentity.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 {
+      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 ProcessStatusChangeRequestEventStandardSchemeFactory implements SchemeFactory {
+    public ProcessStatusChangeRequestEventStandardScheme getScheme() {
+      return new ProcessStatusChangeRequestEventStandardScheme();
+    }
+  }
+
+  private static class ProcessStatusChangeRequestEventStandardScheme extends StandardScheme<ProcessStatusChangeRequestEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ProcessStatusChangeRequestEvent 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: // STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.state = org.apache.airavata.model.status.ProcessState.findByValue(iprot.readI32());
+              struct.setStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PROCESS_IDENTITY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.processIdentity = new ProcessIdentifier();
+              struct.processIdentity.read(iprot);
+              struct.setProcessIdentityIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ProcessStatusChangeRequestEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state != null) {
+        oprot.writeFieldBegin(STATE_FIELD_DESC);
+        oprot.writeI32(struct.state.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.processIdentity != null) {
+        oprot.writeFieldBegin(PROCESS_IDENTITY_FIELD_DESC);
+        struct.processIdentity.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ProcessStatusChangeRequestEventTupleSchemeFactory implements SchemeFactory {
+    public ProcessStatusChangeRequestEventTupleScheme getScheme() {
+      return new ProcessStatusChangeRequestEventTupleScheme();
+    }
+  }
+
+  private static class ProcessStatusChangeRequestEventTupleScheme extends TupleScheme<ProcessStatusChangeRequestEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ProcessStatusChangeRequestEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.state.getValue());
+      struct.processIdentity.write(oprot);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ProcessStatusChangeRequestEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state = org.apache.airavata.model.status.ProcessState.findByValue(iprot.readI32());
+      struct.setStateIsSet(true);
+      struct.processIdentity = new ProcessIdentifier();
+      struct.processIdentity.read(iprot);
+      struct.setProcessIdentityIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
new file mode 100644
index 0000000..d3ae737
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
@@ -0,0 +1,711 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmitEvent, ProcessSubmitEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessSubmitEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessSubmitEvent");
+
+  private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField TOKEN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("tokenId", 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 ProcessSubmitEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ProcessSubmitEventTupleSchemeFactory());
+  }
+
+  public String processId; // required
+  public String gatewayId; // required
+  public String experimentId; // required
+  public String tokenId; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    PROCESS_ID((short)1, "processId"),
+    GATEWAY_ID((short)2, "gatewayId"),
+    EXPERIMENT_ID((short)3, "experimentId"),
+    TOKEN_ID((short)4, "tokenId");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // PROCESS_ID
+          return PROCESS_ID;
+        case 2: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 3: // EXPERIMENT_ID
+          return EXPERIMENT_ID;
+        case 4: // TOKEN_ID
+          return TOKEN_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TOKEN_ID, new org.apache.thrift.meta_data.FieldMetaData("tokenId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ProcessSubmitEvent.class, metaDataMap);
+  }
+
+  public ProcessSubmitEvent() {
+  }
+
+  public ProcessSubmitEvent(
+    String processId,
+    String gatewayId,
+    String experimentId,
+    String tokenId)
+  {
+    this();
+    this.processId = processId;
+    this.gatewayId = gatewayId;
+    this.experimentId = experimentId;
+    this.tokenId = tokenId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ProcessSubmitEvent(ProcessSubmitEvent other) {
+    if (other.isSetProcessId()) {
+      this.processId = other.processId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetExperimentId()) {
+      this.experimentId = other.experimentId;
+    }
+    if (other.isSetTokenId()) {
+      this.tokenId = other.tokenId;
+    }
+  }
+
+  public ProcessSubmitEvent deepCopy() {
+    return new ProcessSubmitEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.processId = null;
+    this.gatewayId = null;
+    this.experimentId = null;
+    this.tokenId = null;
+  }
+
+  public String getProcessId() {
+    return this.processId;
+  }
+
+  public ProcessSubmitEvent setProcessId(String processId) {
+    this.processId = processId;
+    return this;
+  }
+
+  public void unsetProcessId() {
+    this.processId = null;
+  }
+
+  /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessId() {
+    return this.processId != null;
+  }
+
+  public void setProcessIdIsSet(boolean value) {
+    if (!value) {
+      this.processId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public ProcessSubmitEvent setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+    return this;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public String getExperimentId() {
+    return this.experimentId;
+  }
+
+  public ProcessSubmitEvent setExperimentId(String experimentId) {
+    this.experimentId = experimentId;
+    return this;
+  }
+
+  public void unsetExperimentId() {
+    this.experimentId = null;
+  }
+
+  /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentId() {
+    return this.experimentId != null;
+  }
+
+  public void setExperimentIdIsSet(boolean value) {
+    if (!value) {
+      this.experimentId = null;
+    }
+  }
+
+  public String getTokenId() {
+    return this.tokenId;
+  }
+
+  public ProcessSubmitEvent setTokenId(String tokenId) {
+    this.tokenId = tokenId;
+    return this;
+  }
+
+  public void unsetTokenId() {
+    this.tokenId = null;
+  }
+
+  /** Returns true if field tokenId is set (has been assigned a value) and false otherwise */
+  public boolean isSetTokenId() {
+    return this.tokenId != null;
+  }
+
+  public void setTokenIdIsSet(boolean value) {
+    if (!value) {
+      this.tokenId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case PROCESS_ID:
+      if (value == null) {
+        unsetProcessId();
+      } else {
+        setProcessId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case EXPERIMENT_ID:
+      if (value == null) {
+        unsetExperimentId();
+      } else {
+        setExperimentId((String)value);
+      }
+      break;
+
+    case TOKEN_ID:
+      if (value == null) {
+        unsetTokenId();
+      } else {
+        setTokenId((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PROCESS_ID:
+      return getProcessId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case EXPERIMENT_ID:
+      return getExperimentId();
+
+    case TOKEN_ID:
+      return getTokenId();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case PROCESS_ID:
+      return isSetProcessId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    case EXPERIMENT_ID:
+      return isSetExperimentId();
+    case TOKEN_ID:
+      return isSetTokenId();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ProcessSubmitEvent)
+      return this.equals((ProcessSubmitEvent)that);
+    return false;
+  }
+
+  public boolean equals(ProcessSubmitEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_processId = true && this.isSetProcessId();
+    boolean that_present_processId = true && that.isSetProcessId();
+    if (this_present_processId || that_present_processId) {
+      if (!(this_present_processId && that_present_processId))
+        return false;
+      if (!this.processId.equals(that.processId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_experimentId = true && this.isSetExperimentId();
+    boolean that_present_experimentId = true && that.isSetExperimentId();
+    if (this_present_experimentId || that_present_experimentId) {
+      if (!(this_present_experimentId && that_present_experimentId))
+        return false;
+      if (!this.experimentId.equals(that.experimentId))
+        return false;
+    }
+
+    boolean this_present_tokenId = true && this.isSetTokenId();
+    boolean that_present_tokenId = true && that.isSetTokenId();
+    if (this_present_tokenId || that_present_tokenId) {
+      if (!(this_present_tokenId && that_present_tokenId))
+        return false;
+      if (!this.tokenId.equals(that.tokenId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_processId = true && (isSetProcessId());
+    list.add(present_processId);
+    if (present_processId)
+      list.add(processId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_experimentId = true && (isSetExperimentId());
+    list.add(present_experimentId);
+    if (present_experimentId)
+      list.add(experimentId);
+
+    boolean present_tokenId = true && (isSetTokenId());
+    list.add(present_tokenId);
+    if (present_tokenId)
+      list.add(tokenId);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ProcessSubmitEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTokenId()).compareTo(other.isSetTokenId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTokenId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tokenId, other.tokenId);
+      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("ProcessSubmitEvent(");
+    boolean first = true;
+
+    sb.append("processId:");
+    if (this.processId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.processId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("experimentId:");
+    if (this.experimentId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("tokenId:");
+    if (this.tokenId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.tokenId);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (processId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
+    }
+    if (gatewayId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
+    }
+    if (experimentId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
+    }
+    if (tokenId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'tokenId' was not present! 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 ProcessSubmitEventStandardSchemeFactory implements SchemeFactory {
+    public ProcessSubmitEventStandardScheme getScheme() {
+      return new ProcessSubmitEventStandardScheme();
+    }
+  }
+
+  private static class ProcessSubmitEventStandardScheme extends StandardScheme<ProcessSubmitEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ProcessSubmitEvent struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // PROCESS_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.processId = iprot.readString();
+              struct.setProcessIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // EXPERIMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentId = iprot.readString();
+              struct.setExperimentIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // TOKEN_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tokenId = iprot.readString();
+              struct.setTokenIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ProcessSubmitEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.processId != null) {
+        oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+        oprot.writeString(struct.processId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentId != null) {
+        oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.experimentId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.tokenId != null) {
+        oprot.writeFieldBegin(TOKEN_ID_FIELD_DESC);
+        oprot.writeString(struct.tokenId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ProcessSubmitEventTupleSchemeFactory implements SchemeFactory {
+    public ProcessSubmitEventTupleScheme getScheme() {
+      return new ProcessSubmitEventTupleScheme();
+    }
+  }
+
+  private static class ProcessSubmitEventTupleScheme extends TupleScheme<ProcessSubmitEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ProcessSubmitEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.processId);
+      oprot.writeString(struct.gatewayId);
+      oprot.writeString(struct.experimentId);
+      oprot.writeString(struct.tokenId);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ProcessSubmitEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.processId = iprot.readString();
+      struct.setProcessIdIsSet(true);
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
+      struct.experimentId = iprot.readString();
+      struct.setExperimentIdIsSet(true);
+      struct.tokenId = iprot.readString();
+      struct.setTokenIdIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
new file mode 100644
index 0000000..a2f02f2
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
@@ -0,0 +1,610 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ProcessTerminateEvent implements org.apache.thrift.TBase<ProcessTerminateEvent, ProcessTerminateEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessTerminateEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessTerminateEvent");
+
+  private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField TOKEN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("tokenId", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ProcessTerminateEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ProcessTerminateEventTupleSchemeFactory());
+  }
+
+  public String processId; // required
+  public String gatewayId; // required
+  public String tokenId; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    PROCESS_ID((short)1, "processId"),
+    GATEWAY_ID((short)2, "gatewayId"),
+    TOKEN_ID((short)3, "tokenId");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // PROCESS_ID
+          return PROCESS_ID;
+        case 2: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 3: // TOKEN_ID
+          return TOKEN_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TOKEN_ID, new org.apache.thrift.meta_data.FieldMetaData("tokenId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ProcessTerminateEvent.class, metaDataMap);
+  }
+
+  public ProcessTerminateEvent() {
+  }
+
+  public ProcessTerminateEvent(
+    String processId,
+    String gatewayId,
+    String tokenId)
+  {
+    this();
+    this.processId = processId;
+    this.gatewayId = gatewayId;
+    this.tokenId = tokenId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ProcessTerminateEvent(ProcessTerminateEvent other) {
+    if (other.isSetProcessId()) {
+      this.processId = other.processId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetTokenId()) {
+      this.tokenId = other.tokenId;
+    }
+  }
+
+  public ProcessTerminateEvent deepCopy() {
+    return new ProcessTerminateEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.processId = null;
+    this.gatewayId = null;
+    this.tokenId = null;
+  }
+
+  public String getProcessId() {
+    return this.processId;
+  }
+
+  public ProcessTerminateEvent setProcessId(String processId) {
+    this.processId = processId;
+    return this;
+  }
+
+  public void unsetProcessId() {
+    this.processId = null;
+  }
+
+  /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessId() {
+    return this.processId != null;
+  }
+
+  public void setProcessIdIsSet(boolean value) {
+    if (!value) {
+      this.processId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public ProcessTerminateEvent setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+    return this;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public String getTokenId() {
+    return this.tokenId;
+  }
+
+  public ProcessTerminateEvent setTokenId(String tokenId) {
+    this.tokenId = tokenId;
+    return this;
+  }
+
+  public void unsetTokenId() {
+    this.tokenId = null;
+  }
+
+  /** Returns true if field tokenId is set (has been assigned a value) and false otherwise */
+  public boolean isSetTokenId() {
+    return this.tokenId != null;
+  }
+
+  public void setTokenIdIsSet(boolean value) {
+    if (!value) {
+      this.tokenId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case PROCESS_ID:
+      if (value == null) {
+        unsetProcessId();
+      } else {
+        setProcessId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case TOKEN_ID:
+      if (value == null) {
+        unsetTokenId();
+      } else {
+        setTokenId((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PROCESS_ID:
+      return getProcessId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case TOKEN_ID:
+      return getTokenId();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case PROCESS_ID:
+      return isSetProcessId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    case TOKEN_ID:
+      return isSetTokenId();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ProcessTerminateEvent)
+      return this.equals((ProcessTerminateEvent)that);
+    return false;
+  }
+
+  public boolean equals(ProcessTerminateEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_processId = true && this.isSetProcessId();
+    boolean that_present_processId = true && that.isSetProcessId();
+    if (this_present_processId || that_present_processId) {
+      if (!(this_present_processId && that_present_processId))
+        return false;
+      if (!this.processId.equals(that.processId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_tokenId = true && this.isSetTokenId();
+    boolean that_present_tokenId = true && that.isSetTokenId();
+    if (this_present_tokenId || that_present_tokenId) {
+      if (!(this_present_tokenId && that_present_tokenId))
+        return false;
+      if (!this.tokenId.equals(that.tokenId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_processId = true && (isSetProcessId());
+    list.add(present_processId);
+    if (present_processId)
+      list.add(processId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_tokenId = true && (isSetTokenId());
+    list.add(present_tokenId);
+    if (present_tokenId)
+      list.add(tokenId);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ProcessTerminateEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTokenId()).compareTo(other.isSetTokenId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTokenId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tokenId, other.tokenId);
+      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("ProcessTerminateEvent(");
+    boolean first = true;
+
+    sb.append("processId:");
+    if (this.processId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.processId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("tokenId:");
+    if (this.tokenId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.tokenId);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (processId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
+    }
+    if (gatewayId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
+    }
+    if (tokenId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'tokenId' was not present! 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 ProcessTerminateEventStandardSchemeFactory implements SchemeFactory {
+    public ProcessTerminateEventStandardScheme getScheme() {
+      return new ProcessTerminateEventStandardScheme();
+    }
+  }
+
+  private static class ProcessTerminateEventStandardScheme extends StandardScheme<ProcessTerminateEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ProcessTerminateEvent struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // PROCESS_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.processId = iprot.readString();
+              struct.setProcessIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // TOKEN_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tokenId = iprot.readString();
+              struct.setTokenIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ProcessTerminateEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.processId != null) {
+        oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+        oprot.writeString(struct.processId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.tokenId != null) {
+        oprot.writeFieldBegin(TOKEN_ID_FIELD_DESC);
+        oprot.writeString(struct.tokenId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ProcessTerminateEventTupleSchemeFactory implements SchemeFactory {
+    public ProcessTerminateEventTupleScheme getScheme() {
+      return new ProcessTerminateEventTupleScheme();
+    }
+  }
+
+  private static class ProcessTerminateEventTupleScheme extends TupleScheme<ProcessTerminateEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ProcessTerminateEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.processId);
+      oprot.writeString(struct.gatewayId);
+      oprot.writeString(struct.tokenId);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ProcessTerminateEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.processId = iprot.readString();
+      struct.setProcessIdIsSet(true);
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
+      struct.tokenId = iprot.readString();
+      struct.setTokenIdIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
new file mode 100644
index 0000000..ae2c854
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
@@ -0,0 +1,711 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class TaskIdentifier implements org.apache.thrift.TBase<TaskIdentifier, TaskIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<TaskIdentifier> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskIdentifier");
+
+  private static final org.apache.thrift.protocol.TField TASK_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("taskId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", 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 TaskIdentifierStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TaskIdentifierTupleSchemeFactory());
+  }
+
+  public String taskId; // required
+  public String processId; // required
+  public String experimentId; // required
+  public String gatewayId; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    TASK_ID((short)1, "taskId"),
+    PROCESS_ID((short)2, "processId"),
+    EXPERIMENT_ID((short)3, "experimentId"),
+    GATEWAY_ID((short)4, "gatewayId");
+
+    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: // TASK_ID
+          return TASK_ID;
+        case 2: // PROCESS_ID
+          return PROCESS_ID;
+        case 3: // EXPERIMENT_ID
+          return EXPERIMENT_ID;
+        case 4: // GATEWAY_ID
+          return GATEWAY_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  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.TASK_ID, new org.apache.thrift.meta_data.FieldMetaData("taskId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TaskIdentifier.class, metaDataMap);
+  }
+
+  public TaskIdentifier() {
+  }
+
+  public TaskIdentifier(
+    String taskId,
+    String processId,
+    String experimentId,
+    String gatewayId)
+  {
+    this();
+    this.taskId = taskId;
+    this.processId = processId;
+    this.experimentId = experimentId;
+    this.gatewayId = gatewayId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TaskIdentifier(TaskIdentifier other) {
+    if (other.isSetTaskId()) {
+      this.taskId = other.taskId;
+    }
+    if (other.isSetProcessId()) {
+      this.processId = other.processId;
+    }
+    if (other.isSetExperimentId()) {
+      this.experimentId = other.experimentId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+  }
+
+  public TaskIdentifier deepCopy() {
+    return new TaskIdentifier(this);
+  }
+
+  @Override
+  public void clear() {
+    this.taskId = null;
+    this.processId = null;
+    this.experimentId = null;
+    this.gatewayId = null;
+  }
+
+  public String getTaskId() {
+    return this.taskId;
+  }
+
+  public TaskIdentifier setTaskId(String taskId) {
+    this.taskId = taskId;
+    return this;
+  }
+
+  public void unsetTaskId() {
+    this.taskId = null;
+  }
+
+  /** Returns true if field taskId is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskId() {
+    return this.taskId != null;
+  }
+
+  public void setTaskIdIsSet(boolean value) {
+    if (!value) {
+      this.taskId = null;
+    }
+  }
+
+  public String getProcessId() {
+    return this.processId;
+  }
+
+  public TaskIdentifier setProcessId(String processId) {
+    this.processId = processId;
+    return this;
+  }
+
+  public void unsetProcessId() {
+    this.processId = null;
+  }
+
+  /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessId() {
+    return this.processId != null;
+  }
+
+  public void setProcessIdIsSet(boolean value) {
+    if (!value) {
+      this.processId = null;
+    }
+  }
+
+  public String getExperimentId() {
+    return this.experimentId;
+  }
+
+  public TaskIdentifier setExperimentId(String experimentId) {
+    this.experimentId = experimentId;
+    return this;
+  }
+
+  public void unsetExperimentId() {
+    this.experimentId = null;
+  }
+
+  /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentId() {
+    return this.experimentId != null;
+  }
+
+  public void setExperimentIdIsSet(boolean value) {
+    if (!value) {
+      this.experimentId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public TaskIdentifier setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+    return this;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TASK_ID:
+      if (value == null) {
+        unsetTaskId();
+      } else {
+        setTaskId((String)value);
+      }
+      break;
+
+    case PROCESS_ID:
+      if (value == null) {
+        unsetProcessId();
+      } else {
+        setProcessId((String)value);
+      }
+      break;
+
+    case EXPERIMENT_ID:
+      if (value == null) {
+        unsetExperimentId();
+      } else {
+        setExperimentId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TASK_ID:
+      return getTaskId();
+
+    case PROCESS_ID:
+      return getProcessId();
+
+    case EXPERIMENT_ID:
+      return getExperimentId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    }
+    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 TASK_ID:
+      return isSetTaskId();
+    case PROCESS_ID:
+      return isSetProcessId();
+    case EXPERIMENT_ID:
+      return isSetExperimentId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TaskIdentifier)
+      return this.equals((TaskIdentifier)that);
+    return false;
+  }
+
+  public boolean equals(TaskIdentifier that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_taskId = true && this.isSetTaskId();
+    boolean that_present_taskId = true && that.isSetTaskId();
+    if (this_present_taskId || that_present_taskId) {
+      if (!(this_present_taskId && that_present_taskId))
+        return false;
+      if (!this.taskId.equals(that.taskId))
+        return false;
+    }
+
+    boolean this_present_processId = true && this.isSetProcessId();
+    boolean that_present_processId = true && that.isSetProcessId();
+    if (this_present_processId || that_present_processId) {
+      if (!(this_present_processId && that_present_processId))
+        return false;
+      if (!this.processId.equals(that.processId))
+        return false;
+    }
+
+    boolean this_present_experimentId = true && this.isSetExperimentId();
+    boolean that_present_experimentId = true && that.isSetExperimentId();
+    if (this_present_experimentId || that_present_experimentId) {
+      if (!(this_present_experimentId && that_present_experimentId))
+        return false;
+      if (!this.experimentId.equals(that.experimentId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_taskId = true && (isSetTaskId());
+    list.add(present_taskId);
+    if (present_taskId)
+      list.add(taskId);
+
+    boolean present_processId = true && (isSetProcessId());
+    list.add(present_processId);
+    if (present_processId)
+      list.add(processId);
+
+    boolean present_experimentId = true && (isSetExperimentId());
+    list.add(present_experimentId);
+    if (present_experimentId)
+      list.add(experimentId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(TaskIdentifier other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetTaskId()).compareTo(other.isSetTaskId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskId, other.taskId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      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("TaskIdentifier(");
+    boolean first = true;
+
+    sb.append("taskId:");
+    if (this.taskId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.taskId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("processId:");
+    if (this.processId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.processId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("experimentId:");
+    if (this.experimentId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (taskId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskId' was not present! Struct: " + toString());
+    }
+    if (processId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
+    }
+    if (experimentId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
+    }
+    if (gatewayId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! 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 TaskIdentifierStandardSchemeFactory implements SchemeFactory {
+    public TaskIdentifierStandardScheme getScheme() {
+      return new TaskIdentifierStandardScheme();
+    }
+  }
+
+  private static class TaskIdentifierStandardScheme extends StandardScheme<TaskIdentifier> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TaskIdentifier 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: // TASK_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.taskId = iprot.readString();
+              struct.setTaskIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PROCESS_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.processId = iprot.readString();
+              struct.setProcessIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // EXPERIMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentId = iprot.readString();
+              struct.setExperimentIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, TaskIdentifier struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.taskId != null) {
+        oprot.writeFieldBegin(TASK_ID_FIELD_DESC);
+        oprot.writeString(struct.taskId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.processId != null) {
+        oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+        oprot.writeString(struct.processId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentId != null) {
+        oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.experimentId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TaskIdentifierTupleSchemeFactory implements SchemeFactory {
+    public TaskIdentifierTupleScheme getScheme() {
+      return new TaskIdentifierTupleScheme();
+    }
+  }
+
+  private static class TaskIdentifierTupleScheme extends TupleScheme<TaskIdentifier> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TaskIdentifier struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.taskId);
+      oprot.writeString(struct.processId);
+      oprot.writeString(struct.experimentId);
+      oprot.writeString(struct.gatewayId);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TaskIdentifier struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.taskId = iprot.readString();
+      struct.setTaskIdIsSet(true);
+      struct.processId = iprot.readString();
+      struct.setProcessIdIsSet(true);
+      struct.experimentId = iprot.readString();
+      struct.setExperimentIdIsSet(true);
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
new file mode 100644
index 0000000..08b807f
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
@@ -0,0 +1,1243 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.scheduling;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * ComputationalResourceSchedulingModel:
+ * 
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ComputationalResourceSchedulingModel implements org.apache.thrift.TBase<ComputationalResourceSchedulingModel, ComputationalResourceSchedulingModel._Fields>, java.io.Serializable, Cloneable, Comparable<ComputationalResourceSchedulingModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputationalResourceSchedulingModel");
+
+  private static final org.apache.thrift.protocol.TField RESOURCE_HOST_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceHostId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField TOTAL_CPUCOUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("totalCPUCount", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField NODE_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeCount", org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField NUMBER_OF_THREADS_FIELD_DESC = new org.apache.thrift.protocol.TField("numberOfThreads", org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField QUEUE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("queueName", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField WALL_TIME_LIMIT_FIELD_DESC = new org.apache.thrift.protocol.TField("wallTimeLimit", org.apache.thrift.protocol.TType.I32, (short)6);
+  private static final org.apache.thrift.protocol.TField TOTAL_PHYSICAL_MEMORY_FIELD_DESC = new org.apache.thrift.protocol.TField("totalPhysicalMemory", org.apache.thrift.protocol.TType.I32, (short)7);
+  private static final org.apache.thrift.protocol.TField CHESSIS_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("chessisNumber", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField STATIC_WORKING_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("staticWorkingDir", org.apache.thrift.protocol.TType.STRING, (short)9);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ComputationalResourceSchedulingModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ComputationalResourceSchedulingModelTupleSchemeFactory());
+  }
+
+  public String resourceHostId; // optional
+  public int totalCPUCount; // optional
+  public int nodeCount; // optional
+  public int numberOfThreads; // optional
+  public String queueName; // optional
+  public int wallTimeLimit; // optional
+  public int totalPhysicalMemory; // optional
+  public String chessisNumber; // optional
+  public String staticWorkingDir; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    RESOURCE_HOST_ID((short)1, "resourceHostId"),
+    TOTAL_CPUCOUNT((short)2, "totalCPUCount"),
+    NODE_COUNT((short)3, "nodeCount"),
+    NUMBER_OF_THREADS((short)4, "numberOfThreads"),
+    QUEUE_NAME((short)5, "queueName"),
+    WALL_TIME_LIMIT((short)6, "wallTimeLimit"),
+    TOTAL_PHYSICAL_MEMORY((short)7, "totalPhysicalMemory"),
+    CHESSIS_NUMBER((short)8, "chessisNumber"),
+    STATIC_WORKING_DIR((short)9, "staticWorkingDir");
+
+    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: // RESOURCE_HOST_ID
+          return RESOURCE_HOST_ID;
+        case 2: // TOTAL_CPUCOUNT
+          return TOTAL_CPUCOUNT;
+        case 3: // NODE_COUNT
+          return NODE_COUNT;
+        case 4: // NUMBER_OF_THREADS
+          return NUMBER_OF_THREADS;
+        case 5: // QUEUE_NAME
+          return QUEUE_NAME;
+        case 6: // WALL_TIME_LIMIT
+          return WALL_TIME_LIMIT;
+        case 7: // TOTAL_PHYSICAL_MEMORY
+          return TOTAL_PHYSICAL_MEMORY;
+        case 8: // CHESSIS_NUMBER
+          return CHESSIS_NUMBER;
+        case 9: // STATIC_WORKING_DIR
+          return STATIC_WORKING_DIR;
+        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 __TOTALCPUCOUNT_ISSET_ID = 0;
+  private static final int __NODECOUNT_ISSET_ID = 1;
+  private static final int __NUMBEROFTHREADS_ISSET_ID = 2;
+  private static final int __WALLTIMELIMIT_ISSET_ID = 3;
+  private static final int __TOTALPHYSICALMEMORY_ISSET_ID = 4;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.RESOURCE_HOST_ID,_Fields.TOTAL_CPUCOUNT,_Fields.NODE_COUNT,_Fields.NUMBER_OF_THREADS,_Fields.QUEUE_NAME,_Fields.WALL_TIME_LIMIT,_Fields.TOTAL_PHYSICAL_MEMORY,_Fields.CHESSIS_NUMBER,_Fields.STATIC_WORKING_DIR};
+  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.RESOURCE_HOST_ID, new org.apache.thrift.meta_data.FieldMetaData("resourceHostId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TOTAL_CPUCOUNT, new org.apache.thrift.meta_data.FieldMetaData("totalCPUCount", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.NODE_COUNT, new org.apache.thrift.meta_data.FieldMetaData("nodeCount", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.NUMBER_OF_THREADS, new org.apache.thrift.meta_data.FieldMetaData("numberOfThreads", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.QUEUE_NAME, new org.apache.thrift.meta_data.FieldMetaData("queueName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.WALL_TIME_LIMIT, new org.apache.thrift.meta_data.FieldMetaData("wallTimeLimit", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.TOTAL_PHYSICAL_MEMORY, new org.apache.thrift.meta_data.FieldMetaData("totalPhysicalMemory", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.CHESSIS_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("chessisNumber", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STATIC_WORKING_DIR, new org.apache.thrift.meta_data.FieldMetaData("staticWorkingDir", 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(ComputationalResourceSchedulingModel.class, metaDataMap);
+  }
+
+  public ComputationalResourceSchedulingModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ComputationalResourceSchedulingModel(ComputationalResourceSchedulingModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetResourceHostId()) {
+      this.resourceHostId = other.resourceHostId;
+    }
+    this.totalCPUCount = other.totalCPUCount;
+    this.nodeCount = other.nodeCount;
+    this.numberOfThreads = other.numberOfThreads;
+    if (other.isSetQueueName()) {
+      this.queueName = other.queueName;
+    }
+    this.wallTimeLimit = other.wallTimeLimit;
+    this.totalPhysicalMemory = other.totalPhysicalMemory;
+    if (other.isSetChessisNumber()) {
+      this.chessisNumber = other.chessisNumber;
+    }
+    if (other.isSetStaticWorkingDir()) {
+      this.staticWorkingDir = other.staticWorkingDir;
+    }
+  }
+
+  public ComputationalResourceSchedulingModel deepCopy() {
+    return new ComputationalResourceSchedulingModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.resourceHostId = null;
+    setTotalCPUCountIsSet(false);
+    this.totalCPUCount = 0;
+    setNodeCountIsSet(false);
+    this.nodeCount = 0;
+    setNumberOfThreadsIsSet(false);
+    this.numberOfThreads = 0;
+    this.queueName = null;
+    setWallTimeLimitIsSet(false);
+    this.wallTimeLimit = 0;
+    setTotalPhysicalMemoryIsSet(false);
+    this.totalPhysicalMemory = 0;
+    this.chessisNumber = null;
+    this.staticWorkingDir = null;
+  }
+
+  public String getResourceHostId() {
+    return this.resourceHostId;
+  }
+
+  public ComputationalResourceSchedulingModel setResourceHostId(String resourceHostId) {
+    this.resourceHostId = resourceHostId;
+    return this;
+  }
+
+  public void unsetResourceHostId() {
+    this.resourceHostId = null;
+  }
+
+  /** Returns true if field resourceHostId is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceHostId() {
+    return this.resourceHostId != null;
+  }
+
+  public void setResourceHostIdIsSet(boolean value) {
+    if (!value) {
+      this.resourceHostId = null;
+    }
+  }
+
+  public int getTotalCPUCount() {
+    return this.totalCPUCount;
+  }
+
+  public ComputationalResourceSchedulingModel setTotalCPUCount(int totalCPUCount) {
+    this.totalCPUCount = totalCPUCount;
+    setTotalCPUCountIsSet(true);
+    return this;
+  }
+
+  public void unsetTotalCPUCount() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TOTALCPUCOUNT_ISSET_ID);
+  }
+
+  /** Returns true if field totalCPUCount is set (has been assigned a value) and false otherwise */
+  public boolean isSetTotalCPUCount() {
+    return EncodingUtils.testBit(__isset_bitfield, __TOTALCPUCOUNT_ISSET_ID);
+  }
+
+  public void setTotalCPUCountIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TOTALCPUCOUNT_ISSET_ID, value);
+  }
+
+  public int getNodeCount() {
+    return this.nodeCount;
+  }
+
+  public ComputationalResourceSchedulingModel setNodeCount(int nodeCount) {
+    this.nodeCount = nodeCount;
+    setNodeCountIsSet(true);
+    return this;
+  }
+
+  public void unsetNodeCount() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NODECOUNT_ISSET_ID);
+  }
+
+  /** Returns true if field nodeCount is set (has been assigned a value) and false otherwise */
+  public boolean isSetNodeCount() {
+    return EncodingUtils.testBit(__isset_bitfield, __NODECOUNT_ISSET_ID);
+  }
+
+  public void setNodeCountIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NODECOUNT_ISSET_ID, value);
+  }
+
+  public int getNumberOfThreads() {
+    return this.numberOfThreads;
+  }
+
+  public ComputationalResourceSchedulingModel setNumberOfThreads(int numberOfThreads) {
+    this.numberOfThreads = numberOfThreads;
+    setNumberOfThreadsIsSet(true);
+    return this;
+  }
+
+  public void unsetNumberOfThreads() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NUMBEROFTHREADS_ISSET_ID);
+  }
+
+  /** Returns true if field numberOfThreads is set (has been assigned a value) and false otherwise */
+  public boolean isSetNumberOfThreads() {
+    return EncodingUtils.testBit(__isset_bitfield, __NUMBEROFTHREADS_ISSET_ID);
+  }
+
+  public void setNumberOfThreadsIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NUMBEROFTHREADS_ISSET_ID, value);
+  }
+
+  public String getQueueName() {
+    return this.queueName;
+  }
+
+  public ComputationalResourceSchedulingModel setQueueName(String queueName) {
+    this.queueName = queueName;
+    return this;
+  }
+
+  public void unsetQueueName() {
+    this.queueName = null;
+  }
+
+  /** Returns true if field queueName is set (has been assigned a value) and false otherwise */
+  public boolean isSetQueueName() {
+    return this.queueName != null;
+  }
+
+  public void setQueueNameIsSet(boolean value) {
+    if (!value) {
+      this.queueName = null;
+    }
+  }
+
+  public int getWallTimeLimit() {
+    return this.wallTimeLimit;
+  }
+
+  public ComputationalResourceSchedulingModel setWallTimeLimit(int wallTimeLimit) {
+    this.wallTimeLimit = wallTimeLimit;
+    setWallTimeLimitIsSet(true);
+    return this;
+  }
+
+  public void unsetWallTimeLimit() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WALLTIMELIMIT_ISSET_ID);
+  }
+
+  /** Returns true if field wallTimeLimit is set (has been assigned a value) and false otherwise */
+  public boolean isSetWallTimeLimit() {
+    return EncodingUtils.testBit(__isset_bitfield, __WALLTIMELIMIT_ISSET_ID);
+  }
+
+  public void setWallTimeLimitIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WALLTIMELIMIT_ISSET_ID, value);
+  }
+
+  public int getTotalPhysicalMemory() {
+    return this.totalPhysicalMemory;
+  }
+
+  public ComputationalResourceSchedulingModel setTotalPhysicalMemory(int totalPhysicalMemory) {
+    this.totalPhysicalMemory = totalPhysicalMemory;
+    setTotalPhysicalMemoryIsSet(true);
+    return this;
+  }
+
+  public void unsetTotalPhysicalMemory() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TOTALPHYSICALMEMORY_ISSET_ID);
+  }
+
+  /** Returns true if field totalPhysicalMemory is set (has been assigned a value) and false otherwise */
+  public boolean isSetTotalPhysicalMemory() {
+    return EncodingUtils.testBit(__isset_bitfield, __TOTALPHYSICALMEMORY_ISSET_ID);
+  }
+
+  public void setTotalPhysicalMemoryIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TOTALPHYSICALMEMORY_ISSET_ID, value);
+  }
+
+  public String getChessisNumber() {
+    return this.chessisNumber;
+  }
+
+  public ComputationalResourceSchedulingModel setChessisNumber(String chessisNumber) {
+    this.chessisNumber = chessisNumber;
+    return this;
+  }
+
+  public void unsetChessisNumber() {
+    this.chessisNumber = null;
+  }
+
+  /** Returns true if field chessisNumber is set (has been assigned a value) and false otherwise */
+  public boolean isSetChessisNumber() {
+    return this.chessisNumber != null;
+  }
+
+  public void setChessisNumberIsSet(boolean value) {
+    if (!value) {
+      this.chessisNumber = null;
+    }
+  }
+
+  public String getStaticWorkingDir() {
+    return this.staticWorkingDir;
+  }
+
+  public ComputationalResourceSchedulingModel setStaticWorkingDir(String staticWorkingDir) {
+    this.staticWorkingDir = staticWorkingDir;
+    return this;
+  }
+
+  public void unsetStaticWorkingDir() {
+    this.staticWorkingDir = null;
+  }
+
+  /** Returns true if field staticWorkingDir is set (has been assigned a value) and false otherwise */
+  public boolean isSetStaticWorkingDir() {
+    return this.staticWorkingDir != null;
+  }
+
+  public void setStaticWorkingDirIsSet(boolean value) {
+    if (!value) {
+      this.staticWorkingDir = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case RESOURCE_HOST_ID:
+      if (value == null) {
+        unsetResourceHostId();
+      } else {
+        setResourceHostId((String)value);
+      }
+      break;
+
+    case TOTAL_CPUCOUNT:
+      if (value == null) {
+        unsetTotalCPUCount();
+      } else {
+        setTotalCPUCount((Integer)value);
+      }
+      break;
+
+    case NODE_COUNT:
+      if (value == null) {
+        unsetNodeCount();
+      } else {
+        setNodeCount((Integer)value);
+      }
+      break;
+
+    case NUMBER_OF_THREADS:
+      if (value == null) {
+        unsetNumberOfThreads();
+      } else {
+        setNumberOfThreads((Integer)value);
+      }
+      break;
+
+    case QUEUE_NAME:
+      if (value == null) {
+        unsetQueueName();
+      } else {
+        setQueueName((String)value);
+      }
+      break;
+
+    case WALL_TIME_LIMIT:
+      if (value == null) {
+        unsetWallTimeLimit();
+      } else {
+        setWallTimeLimit((Integer)value);
+      }
+      break;
+
+    case TOTAL_PHYSICAL_MEMORY:
+      if (value == null) {
+        unsetTotalPhysicalMemory();
+      } else {
+        setTotalPhysicalMemory((Integer)value);
+      }
+      break;
+
+    case CHESSIS_NUMBER:
+      if (value == null) {
+        unsetChessisNumber();
+      } else {
+        setChessisNumber((String)value);
+      }
+      break;
+
+    case STATIC_WORKING_DIR:
+      if (value == null) {
+        unsetStaticWorkingDir();
+      } else {
+        setStaticWorkingDir((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case RESOURCE_HOST_ID:
+      return getResourceHostId();
+
+    case TOTAL_CPUCOUNT:
+      return Integer.valueOf(getTotalCPUCount());
+
+    case NODE_COUNT:
+      return Integer.valueOf(getNodeCount());
+
+    case NUMBER_OF_THREADS:
+      return Integer.valueOf(getNumberOfThreads());
+
+    case QUEUE_NAME:
+      return getQueueName();
+
+    case WALL_TIME_LIMIT:
+      return Integer.valueOf(getWallTimeLimit());
+
+    case TOTAL_PHYSICAL_MEMORY:
+      return Integer.valueOf(getTotalPhysicalMemory());
+
+    case CHESSIS_NUMBER:
+      return getChessisNumber();
+
+    case STATIC_WORKING_DIR:
+      return getStaticWorkingDir();
+
+    }
+    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 RESOURCE_HOST_ID:
+      return isSetResourceHostId();
+    case TOTAL_CPUCOUNT:
+      return isSetTotalCPUCount();
+    case NODE_COUNT:
+      return isSetNodeCount();
+    case NUMBER_OF_THREADS:
+      return isSetNumberOfThreads();
+    case QUEUE_NAME:
+      return isSetQueueName();
+    case WALL_TIME_LIMIT:
+      return isSetWallTimeLimit();
+    case TOTAL_PHYSICAL_MEMORY:
+      return isSetTotalPhysicalMemory();
+    case CHESSIS_NUMBER:
+      return isSetChessisNumber();
+    case STATIC_WORKING_DIR:
+      return isSetStaticWorkingDir();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ComputationalResourceSchedulingModel)
+      return this.equals((ComputationalResourceSchedulingModel)that);
+    return false;
+  }
+
+  public boolean equals(ComputationalResourceSchedulingModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_resourceHostId = true && this.isSetResourceHostId();
+    boolean that_present_resourceHostId = true && that.isSetResourceHostId();
+    if (this_present_resourceHostId || that_present_resourceHostId) {
+      if (!(this_present_resourceHostId && that_present_resourceHostId))
+        return false;
+      if (!this.resourceHostId.equals(that.resourceHostId))
+        return false;
+    }
+
+    boolean this_present_totalCPUCount = true && this.isSetTotalCPUCount();
+    boolean that_present_totalCPUCount = true && that.isSetTotalCPUCount();
+    if (this_present_totalCPUCount || that_present_totalCPUCount) {
+      if (!(this_present_totalCPUCount && that_present_totalCPUCount))
+        return false;
+      if (this.totalCPUCount != that.totalCPUCount)
+        return false;
+    }
+
+    boolean this_present_nodeCount = true && this.isSetNodeCount();
+    boolean that_present_nodeCount = true && that.isSetNodeCount();
+    if (this_present_nodeCount || that_present_nodeCount) {
+      if (!(this_present_nodeCount && that_present_nodeCount))
+        return false;
+      if (this.nodeCount != that.nodeCount)
+        return false;
+    }
+
+    boolean this_present_numberOfThreads = true && this.isSetNumberOfThreads();
+    boolean that_present_numberOfThreads = true && that.isSetNumberOfThreads();
+    if (this_present_numberOfThreads || that_present_numberOfThreads) {
+      if (!(this_present_numberOfThreads && that_present_numberOfThreads))
+        return false;
+      if (this.numberOfThreads != that.numberOfThreads)
+        return false;
+    }
+
+    boolean this_present_queueName = true && this.isSetQueueName();
+    boolean that_present_queueName = true && that.isSetQueueName();
+    if (this_present_queueName || that_present_queueName) {
+      if (!(this_present_queueName && that_present_queueName))
+        return false;
+      if (!this.queueName.equals(that.queueName))
+        return false;
+    }
+
+    boolean this_present_wallTimeLimit = true && this.isSetWallTimeLimit();
+    boolean that_present_wallTimeLimit = true && that.isSetWallTimeLimit();
+    if (this_present_wallTimeLimit || that_present_wallTimeLimit) {
+      if (!(this_present_wallTimeLimit && that_present_wallTimeLimit))
+        return false;
+      if (this.wallTimeLimit != that.wallTimeLimit)
+        return false;
+    }
+
+    boolean this_present_totalPhysicalMemory = true && this.isSetTotalPhysicalMemory();
+    boolean that_present_totalPhysicalMemory = true && that.isSetTotalPhysicalMemory();
+    if (this_present_totalPhysicalMemory || that_present_totalPhysicalMemory) {
+      if (!(this_present_totalPhysicalMemory && that_present_totalPhysicalMemory))
+        return false;
+      if (this.totalPhysicalMemory != that.totalPhysicalMemory)
+        return false;
+    }
+
+    boolean this_present_chessisNumber = true && this.isSetChessisNumber();
+    boolean that_present_chessisNumber = true && that.isSetChessisNumber();
+    if (this_present_chessisNumber || that_present_chessisNumber) {
+      if (!(this_present_chessisNumber && that_present_chessisNumber))
+        return false;
+      if (!this.chessisNumber.equals(that.chessisNumber))
+        return false;
+    }
+
+    boolean this_present_staticWorkingDir = true && this.isSetStaticWorkingDir();
+    boolean that_present_staticWorkingDir = true && that.isSetStaticWorkingDir();
+    if (this_present_staticWorkingDir || that_present_staticWorkingDir) {
+      if (!(this_present_staticWorkingDir && that_present_staticWorkingDir))
+        return false;
+      if (!this.staticWorkingDir.equals(that.staticWorkingDir))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_resourceHostId = true && (isSetResourceHostId());
+    list.add(present_resourceHostId);
+    if (present_resourceHostId)
+      list.add(resourceHostId);
+
+    boolean present_totalCPUCount = true && (isSetTotalCPUCount());
+    list.add(present_totalCPUCount);
+    if (present_totalCPUCount)
+      list.add(totalCPUCount);
+
+    boolean present_nodeCount = true && (isSetNodeCount());
+    list.add(present_nodeCount);
+    if (present_nodeCount)
+      list.add(nodeCount);
+
+    boolean present_numberOfThreads = true && (isSetNumberOfThreads());
+    list.add(present_numberOfThreads);
+    if (present_numberOfThreads)
+      list.add(numberOfThreads);
+
+    boolean present_queueName = true && (isSetQueueName());
+    list.add(present_queueName);
+    if (present_queueName)
+      list.add(queueName);
+
+    boolean present_wallTimeLimit = true && (isSetWallTimeLimit());
+    list.add(present_wallTimeLimit);
+    if (present_wallTimeLimit)
+      list.add(wallTimeLimit);
+
+    boolean present_totalPhysicalMemory = true && (isSetTotalPhysicalMemory());
+    list.add(present_totalPhysicalMemory);
+    if (present_totalPhysicalMemory)
+      list.add(totalPhysicalMemory);
+
+    boolean present_chessisNumber = true && (isSetChessisNumber());
+    list.add(present_chessisNumber);
+    if (present_chessisNumber)
+      list.add(chessisNumber);
+
+    boolean present_staticWorkingDir = true && (isSetStaticWorkingDir());
+    list.add(present_staticWorkingDir);
+    if (present_staticWorkingDir)
+      list.add(staticWorkingDir);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ComputationalResourceSchedulingModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetResourceHostId()).compareTo(other.isSetResourceHostId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceHostId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceHostId, other.resourceHostId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTotalCPUCount()).compareTo(other.isSetTotalCPUCount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTotalCPUCount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.totalCPUCount, other.totalCPUCount);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetNodeCount()).compareTo(other.isSetNodeCount());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNodeCount()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nodeCount, other.nodeCount);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetNumberOfThreads()).compareTo(other.isSetNumberOfThreads());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNumberOfThreads()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.numberOfThreads, other.numberOfThreads);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetQueueName()).compareTo(other.isSetQueueName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetQueueName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.queueName, other.queueName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetWallTimeLimit()).compareTo(other.isSetWallTimeLimit());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWallTimeLimit()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.wallTimeLimit, other.wallTimeLimit);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTotalPhysicalMemory()).compareTo(other.isSetTotalPhysicalMemory());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTotalPhysicalMemory()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.totalPhysicalMemory, other.totalPhysicalMemory);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetChessisNumber()).compareTo(other.isSetChessisNumber());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetChessisNumber()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.chessisNumber, other.chessisNumber);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStaticWorkingDir()).compareTo(other.isSetStaticWorkingDir());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStaticWorkingDir()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.staticWorkingDir, other.staticWorkingDir);
+      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("ComputationalResourceSchedulingModel(");
+    boolean first = true;
+
+    if (isSetResourceHostId()) {
+      sb.append("resourceHostId:");
+      if (this.resourceHostId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceHostId);
+      }
+      first = false;
+    }
+    if (isSetTotalCPUCount()) {
+      if (!first) sb.append(", ");
+      sb.append("totalCPUCount:");
+      sb.append(this.totalCPUCount);
+      first = false;
+    }
+    if (isSetNodeCount()) {
+      if (!first) sb.append(", ");
+      sb.append("nodeCount:");
+      sb.append(this.nodeCount);
+      first = false;
+    }
+    if (isSetNumberOfThreads()) {
+      if (!first) sb.append(", ");
+      sb.append("numberOfThreads:");
+      sb.append(this.numberOfThreads);
+      first = false;
+    }
+    if (isSetQueueName()) {
+      if (!first) sb.append(", ");
+      sb.append("queueName:");
+      if (this.queueName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.queueName);
+      }
+      first = false;
+    }
+    if (isSetWallTimeLimit()) {
+      if (!first) sb.append(", ");
+      sb.append("wallTimeLimit:");
+      sb.append(this.wallTimeLimit);
+      first = false;
+    }
+    if (isSetTotalPhysicalMemory()) {
+      if (!first) sb.append(", ");
+      sb.append("totalPhysicalMemory:");
+      sb.append(this.totalPhysicalMemory);
+      first = false;
+    }
+    if (isSetChessisNumber()) {
+      if (!first) sb.append(", ");
+      sb.append("chessisNumber:");
+      if (this.chessisNumber == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.chessisNumber);
+      }
+      first = false;
+    }
+    if (isSetStaticWorkingDir()) {
+      if (!first) sb.append(", ");
+      sb.append("staticWorkingDir:");
+      if (this.staticWorkingDir == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.staticWorkingDir);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 ComputationalResourceSchedulingModelStandardSchemeFactory implements SchemeFactory {
+    public ComputationalResourceSchedulingModelStandardScheme getScheme() {
+      return new ComputationalResourceSchedulingModelStandardScheme();
+    }
+  }
+
+  private static class ComputationalResourceSchedulingModelStandardScheme extends StandardScheme<ComputationalResourceSchedulingModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ComputationalResourceSchedulingModel 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: // RESOURCE_HOST_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceHostId = iprot.readString();
+              struct.setResourceHostIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TOTAL_CPUCOUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.totalCPUCount = iprot.readI32();
+              struct.setTotalCPUCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // NODE_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.nodeCount = iprot.readI32();
+              struct.setNodeCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // NUMBER_OF_THREADS
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.numberOfThreads = iprot.readI32();
+              struct.setNumberOfThreadsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // QUEUE_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.queueName = iprot.readString();
+              struct.setQueueNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // WALL_TIME_LIMIT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.wallTimeLimit = iprot.readI32();
+              struct.setWallTimeLimitIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // TOTAL_PHYSICAL_MEMORY
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.totalPhysicalMemory = iprot.readI32();
+              struct.setTotalPhysicalMemoryIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // CHESSIS_NUMBER
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.chessisNumber = iprot.readString();
+              struct.setChessisNumberIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // STATIC_WORKING_DIR
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.staticWorkingDir = iprot.readString();
+              struct.setStaticWorkingDirIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ComputationalResourceSchedulingModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.resourceHostId != null) {
+        if (struct.isSetResourceHostId()) {
+          oprot.writeFieldBegin(RESOURCE_HOST_ID_FIELD_DESC);
+          oprot.writeString(struct.resourceHostId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetTotalCPUCount()) {
+        oprot.writeFieldBegin(TOTAL_CPUCOUNT_FIELD_DESC);
+        oprot.writeI32(struct.totalCPUCount);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetNodeCount()) {
+        oprot.writeFieldBegin(NODE_COUNT_FIELD_DESC);
+        oprot.writeI32(struct.nodeCount);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetNumberOfThreads()) {
+        oprot.writeFieldBegin(NUMBER_OF_THREADS_FIELD_DESC);
+        oprot.writeI32(struct.numberOfThreads);
+        oprot.writeFieldEnd();
+      }
+      if (struct.queueName != null) {
+        if (struct.isSetQueueName()) {
+          oprot.writeFieldBegin(QUEUE_NAME_FIELD_DESC);
+          oprot.writeString(struct.queueName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetWallTimeLimit()) {
+        oprot.writeFieldBegin(WALL_TIME_LIMIT_FIELD_DESC);
+        oprot.writeI32(struct.wallTimeLimit);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTotalPhysicalMemory()) {
+        oprot.writeFieldBegin(TOTAL_PHYSICAL_MEMORY_FIELD_DESC);
+        oprot.writeI32(struct.totalPhysicalMemory);
+        oprot.writeFieldEnd();
+      }
+      if (struct.chessisNumber != null) {
+        if (struct.isSetChessisNumber()) {
+          oprot.writeFieldBegin(CHESSIS_NUMBER_FIELD_DESC);
+          oprot.writeString(struct.chessisNumber);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.staticWorkingDir != null) {
+        if (struct.isSetStaticWorkingDir()) {
+          oprot.writeFieldBegin(STATIC_WORKING_DIR_FIELD_DESC);
+          oprot.writeString(struct.staticWorkingDir);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ComputationalResourceSchedulingModelTupleSchemeFactory implements SchemeFactory {
+    public ComputationalResourceSchedulingModelTupleScheme getScheme() {
+      return new ComputationalResourceSchedulingModelTupleScheme();
+    }
+  }
+
+  private static class ComputationalResourceSchedulingModelTupleScheme extends TupleScheme<ComputationalResourceSchedulingModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ComputationalResourceSchedulingModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetResourceHostId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetTotalCPUCount()) {
+        optionals.set(1);
+      }
+      if (struct.isSetNodeCount()) {
+        optionals.set(2);
+      }
+      if (struct.isSetNumberOfThreads()) {
+        optionals.set(3);
+      }
+      if (struct.isSetQueueName()) {
+        optionals.set(4);
+      }
+      if (struct.isSetWallTimeLimit()) {
+        optionals.set(5);
+      }
+      if (struct.isSetTotalPhysicalMemory()) {
+        optionals.set(6);
+      }
+      if (struct.isSetChessisNumber()) {
+        optionals.set(7);
+      }
+      if (struct.isSetStaticWorkingDir()) {
+        optionals.set(8);
+      }
+      oprot.writeBitSet(optionals, 9);
+      if (struct.isSetResourceHostId()) {
+        oprot.writeString(struct.resourceHostId);
+      }
+      if (struct.isSetTotalCPUCount()) {
+        oprot.writeI32(struct.totalCPUCount);
+      }
+      if (struct.isSetNodeCount()) {
+        oprot.writeI32(struct.nodeCount);
+      }
+      if (struct.isSetNumberOfThreads()) {
+        oprot.writeI32(struct.numberOfThreads);
+      }
+      if (struct.isSetQueueName()) {
+        oprot.writeString(struct.queueName);
+      }
+      if (struct.isSetWallTimeLimit()) {
+        oprot.writeI32(struct.wallTimeLimit);
+      }
+      if (struct.isSetTotalPhysicalMemory()) {
+        oprot.writeI32(struct.totalPhysicalMemory);
+      }
+      if (struct.isSetChessisNumber()) {
+        oprot.writeString(struct.chessisNumber);
+      }
+      if (struct.isSetStaticWorkingDir()) {
+        oprot.writeString(struct.staticWorkingDir);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ComputationalResourceSchedulingModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(9);
+      if (incoming.get(0)) {
+        struct.resourceHostId = iprot.readString();
+        struct.setResourceHostIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.totalCPUCount = iprot.readI32();
+        struct.setTotalCPUCountIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.nodeCount = iprot.readI32();
+        struct.setNodeCountIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.numberOfThreads = iprot.readI32();
+        struct.setNumberOfThreadsIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.queueName = iprot.readString();
+        struct.setQueueNameIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.wallTimeLimit = iprot.readI32();
+        struct.setWallTimeLimitIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.totalPhysicalMemory = iprot.readI32();
+        struct.setTotalPhysicalMemoryIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.chessisNumber = iprot.readString();
+        struct.setChessisNumberIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.staticWorkingDir = iprot.readString();
+        struct.setStaticWorkingDirIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/security/AuthzToken.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/security/AuthzToken.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/security/AuthzToken.java
new file mode 100644
index 0000000..b1d1455
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/security/AuthzToken.java
@@ -0,0 +1,571 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.security;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class AuthzToken implements org.apache.thrift.TBase<AuthzToken, AuthzToken._Fields>, java.io.Serializable, Cloneable, Comparable<AuthzToken> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthzToken");
+
+  private static final org.apache.thrift.protocol.TField ACCESS_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("accessToken", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField CLAIMS_MAP_FIELD_DESC = new org.apache.thrift.protocol.TField("claimsMap", org.apache.thrift.protocol.TType.MAP, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new AuthzTokenStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new AuthzTokenTupleSchemeFactory());
+  }
+
+  public String accessToken; // required
+  public Map<String,String> claimsMap; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    ACCESS_TOKEN((short)1, "accessToken"),
+    CLAIMS_MAP((short)2, "claimsMap");
+
+    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: // ACCESS_TOKEN
+          return ACCESS_TOKEN;
+        case 2: // CLAIMS_MAP
+          return CLAIMS_MAP;
+        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 _Fields optionals[] = {_Fields.CLAIMS_MAP};
+  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.ACCESS_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("accessToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.CLAIMS_MAP, new org.apache.thrift.meta_data.FieldMetaData("claimsMap", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(AuthzToken.class, metaDataMap);
+  }
+
+  public AuthzToken() {
+  }
+
+  public AuthzToken(
+    String accessToken)
+  {
+    this();
+    this.accessToken = accessToken;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public AuthzToken(AuthzToken other) {
+    if (other.isSetAccessToken()) {
+      this.accessToken = other.accessToken;
+    }
+    if (other.isSetClaimsMap()) {
+      Map<String,String> __this__claimsMap = new HashMap<String,String>(other.claimsMap);
+      this.claimsMap = __this__claimsMap;
+    }
+  }
+
+  public AuthzToken deepCopy() {
+    return new AuthzToken(this);
+  }
+
+  @Override
+  public void clear() {
+    this.accessToken = null;
+    this.claimsMap = null;
+  }
+
+  public String getAccessToken() {
+    return this.accessToken;
+  }
+
+  public AuthzToken setAccessToken(String accessToken) {
+    this.accessToken = accessToken;
+    return this;
+  }
+
+  public void unsetAccessToken() {
+    this.accessToken = null;
+  }
+
+  /** Returns true if field accessToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetAccessToken() {
+    return this.accessToken != null;
+  }
+
+  public void setAccessTokenIsSet(boolean value) {
+    if (!value) {
+      this.accessToken = null;
+    }
+  }
+
+  public int getClaimsMapSize() {
+    return (this.claimsMap == null) ? 0 : this.claimsMap.size();
+  }
+
+  public void putToClaimsMap(String key, String val) {
+    if (this.claimsMap == null) {
+      this.claimsMap = new HashMap<String,String>();
+    }
+    this.claimsMap.put(key, val);
+  }
+
+  public Map<String,String> getClaimsMap() {
+    return this.claimsMap;
+  }
+
+  public AuthzToken setClaimsMap(Map<String,String> claimsMap) {
+    this.claimsMap = claimsMap;
+    return this;
+  }
+
+  public void unsetClaimsMap() {
+    this.claimsMap = null;
+  }
+
+  /** Returns true if field claimsMap is set (has been assigned a value) and false otherwise */
+  public boolean isSetClaimsMap() {
+    return this.claimsMap != null;
+  }
+
+  public void setClaimsMapIsSet(boolean value) {
+    if (!value) {
+      this.claimsMap = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case ACCESS_TOKEN:
+      if (value == null) {
+        unsetAccessToken();
+      } else {
+        setAccessToken((String)value);
+      }
+      break;
+
+    case CLAIMS_MAP:
+      if (value == null) {
+        unsetClaimsMap();
+      } else {
+        setClaimsMap((Map<String,String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case ACCESS_TOKEN:
+      return getAccessToken();
+
+    case CLAIMS_MAP:
+      return getClaimsMap();
+
+    }
+    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 ACCESS_TOKEN:
+      return isSetAccessToken();
+    case CLAIMS_MAP:
+      return isSetClaimsMap();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof AuthzToken)
+      return this.equals((AuthzToken)that);
+    return false;
+  }
+
+  public boolean equals(AuthzToken that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_accessToken = true && this.isSetAccessToken();
+    boolean that_present_accessToken = true && that.isSetAccessToken();
+    if (this_present_accessToken || that_present_accessToken) {
+      if (!(this_present_accessToken && that_present_accessToken))
+        return false;
+      if (!this.accessToken.equals(that.accessToken))
+        return false;
+    }
+
+    boolean this_present_claimsMap = true && this.isSetClaimsMap();
+    boolean that_present_claimsMap = true && that.isSetClaimsMap();
+    if (this_present_claimsMap || that_present_claimsMap) {
+      if (!(this_present_claimsMap && that_present_claimsMap))
+        return false;
+      if (!this.claimsMap.equals(that.claimsMap))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_accessToken = true && (isSetAccessToken());
+    list.add(present_accessToken);
+    if (present_accessToken)
+      list.add(accessToken);
+
+    boolean present_claimsMap = true && (isSetClaimsMap());
+    list.add(present_claimsMap);
+    if (present_claimsMap)
+      list.add(claimsMap);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(AuthzToken other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetAccessToken()).compareTo(other.isSetAccessToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAccessToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.accessToken, other.accessToken);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetClaimsMap()).compareTo(other.isSetClaimsMap());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetClaimsMap()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.claimsMap, other.claimsMap);
+      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("AuthzToken(");
+    boolean first = true;
+
+    sb.append("accessToken:");
+    if (this.accessToken == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.accessToken);
+    }
+    first = false;
+    if (isSetClaimsMap()) {
+      if (!first) sb.append(", ");
+      sb.append("claimsMap:");
+      if (this.claimsMap == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.claimsMap);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (accessToken == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'accessToken' was not present! 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 AuthzTokenStandardSchemeFactory implements SchemeFactory {
+    public AuthzTokenStandardScheme getScheme() {
+      return new AuthzTokenStandardScheme();
+    }
+  }
+
+  private static class AuthzTokenStandardScheme extends StandardScheme<AuthzToken> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, AuthzToken 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: // ACCESS_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.accessToken = iprot.readString();
+              struct.setAccessTokenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // CLAIMS_MAP
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map0 = iprot.readMapBegin();
+                struct.claimsMap = new HashMap<String,String>(2*_map0.size);
+                String _key1;
+                String _val2;
+                for (int _i3 = 0; _i3 < _map0.size; ++_i3)
+                {
+                  _key1 = iprot.readString();
+                  _val2 = iprot.readString();
+                  struct.claimsMap.put(_key1, _val2);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setClaimsMapIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, AuthzToken struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.accessToken != null) {
+        oprot.writeFieldBegin(ACCESS_TOKEN_FIELD_DESC);
+        oprot.writeString(struct.accessToken);
+        oprot.writeFieldEnd();
+      }
+      if (struct.claimsMap != null) {
+        if (struct.isSetClaimsMap()) {
+          oprot.writeFieldBegin(CLAIMS_MAP_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.claimsMap.size()));
+            for (Map.Entry<String, String> _iter4 : struct.claimsMap.entrySet())
+            {
+              oprot.writeString(_iter4.getKey());
+              oprot.writeString(_iter4.getValue());
+            }
+            oprot.writeMapEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class AuthzTokenTupleSchemeFactory implements SchemeFactory {
+    public AuthzTokenTupleScheme getScheme() {
+      return new AuthzTokenTupleScheme();
+    }
+  }
+
+  private static class AuthzTokenTupleScheme extends TupleScheme<AuthzToken> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, AuthzToken struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.accessToken);
+      BitSet optionals = new BitSet();
+      if (struct.isSetClaimsMap()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetClaimsMap()) {
+        {
+          oprot.writeI32(struct.claimsMap.size());
+          for (Map.Entry<String, String> _iter5 : struct.claimsMap.entrySet())
+          {
+            oprot.writeString(_iter5.getKey());
+            oprot.writeString(_iter5.getValue());
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, AuthzToken struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.accessToken = iprot.readString();
+      struct.setAccessTokenIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TMap _map6 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.claimsMap = new HashMap<String,String>(2*_map6.size);
+          String _key7;
+          String _val8;
+          for (int _i9 = 0; _i9 < _map6.size; ++_i9)
+          {
+            _key7 = iprot.readString();
+            _val8 = iprot.readString();
+            struct.claimsMap.put(_key7, _val8);
+          }
+        }
+        struct.setClaimsMapIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ExperimentState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ExperimentState.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ExperimentState.java
new file mode 100644
index 0000000..f135920
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ExperimentState.java
@@ -0,0 +1,83 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.status;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum ExperimentState implements org.apache.thrift.TEnum {
+  CREATED(0),
+  VALIDATED(1),
+  SCHEDULED(2),
+  LAUNCHED(3),
+  EXECUTING(4),
+  CANCELING(5),
+  CANCELED(6),
+  COMPLETED(7),
+  FAILED(8);
+
+  private final int value;
+
+  private ExperimentState(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 ExperimentState findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return CREATED;
+      case 1:
+        return VALIDATED;
+      case 2:
+        return SCHEDULED;
+      case 3:
+        return LAUNCHED;
+      case 4:
+        return EXECUTING;
+      case 5:
+        return CANCELING;
+      case 6:
+        return CANCELED;
+      case 7:
+        return COMPLETED;
+      case 8:
+        return FAILED;
+      default:
+        return null;
+    }
+  }
+}


[07/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/pom.xml b/modules/data-manager/data-manager-core/pom.xml
new file mode 100644
index 0000000..0dfa59a
--- /dev/null
+++ b/modules/data-manager/data-manager-core/pom.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>data-manager</artifactId>
+        <groupId>org.apache.airavata</groupId>
+        <version>0.16-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>data-manager-core</artifactId>
+    <packaging>jar</packaging>
+    <name>Airavata Data Manager Core</name>
+    <url>http://airavata.apache.org/</url>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-data-models</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-cpi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-commons</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-server-configuration</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>data-manager-cpi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-registry-cpi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jglobus</groupId>
+            <artifactId>gss</artifactId>
+            <version>${jglobus.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jglobus</groupId>
+            <artifactId>gridftp</artifactId>
+            <version>${jglobus.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jglobus</groupId>
+            <artifactId>myproxy</artifactId>
+            <version>2.1.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcprov-jdk16</artifactId>
+            <version>1.44</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.5.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.mongodb</groupId>
+            <artifactId>mongo-java-driver</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+    </dependencies>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerFactory.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerFactory.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerFactory.java
new file mode 100644
index 0000000..af908a3
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerFactory.java
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core;
+
+import org.apache.airavata.data.manager.cpi.DataManager;
+import org.apache.airavata.data.manager.cpi.DataManagerException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FileManagerFactory {
+    private final static Logger logger = LoggerFactory.getLogger(FileManagerFactory.class);
+
+    public static DataManager getFileManager() throws DataManagerException {
+        return new FileManagerImpl();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerImpl.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerImpl.java
new file mode 100644
index 0000000..2570fc5
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileManagerImpl.java
@@ -0,0 +1,78 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core;
+
+import org.apache.airavata.data.manager.cpi.DataManager;
+import org.apache.airavata.data.manager.cpi.DataManagerException;
+import org.apache.airavata.data.manager.cpi.FileTransferService;
+import org.apache.airavata.data.manager.cpi.ReplicaCatalogService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class FileManagerImpl implements DataManager {
+    private final static Logger logger = LoggerFactory.getLogger(FileManagerImpl.class);
+
+    /**
+     * Return file transfer service instance
+     *
+     * @return
+     */
+    @Override
+    public FileTransferService getFileTransferService()  throws DataManagerException {
+        try{
+            return new FileTransferServiceImpl();
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            throw new DataManagerException(e);
+        }
+    }
+
+    /**
+     * Return replica catalog service instance
+     *
+     * @return
+     */
+    @Override
+    public ReplicaCatalogService getReplicaCatalogService()  throws DataManagerException {
+        try{
+            return new ReplicaCatalogServiceImpl();
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            throw new DataManagerException(e);
+        }
+    }
+
+    /**
+     * Return metadata catalog service
+     *
+     * @return
+     */
+    @Override
+    public MetadataCatalogService getMetadataCatalogService()  throws DataManagerException {
+        try{
+            return new MetadataCatalogServiceImpl();
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            throw new DataManagerException(e);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileTransferServiceImpl.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileTransferServiceImpl.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileTransferServiceImpl.java
new file mode 100644
index 0000000..a782ba7
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/FileTransferServiceImpl.java
@@ -0,0 +1,484 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import org.apache.airavata.credential.store.credential.impl.ssh.SSHCredential;
+import org.apache.airavata.data.manager.core.db.dao.FileTransferRequestDao;
+import org.apache.airavata.data.manager.core.remote.client.RemoteStorageClient;
+import org.apache.airavata.data.manager.core.remote.client.http.HTTPStorageClient;
+import org.apache.airavata.data.manager.core.remote.client.scp.SCPStorageClient;
+import org.apache.airavata.data.manager.core.remote.client.sftp.SFTPStorageClient;
+import org.apache.airavata.data.manager.cpi.DataManagerException;
+import org.apache.airavata.data.manager.cpi.FileTransferService;
+import org.apache.airavata.model.data.transfer.*;
+import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.util.List;
+import java.util.UUID;
+
+public class FileTransferServiceImpl implements FileTransferService {
+
+    private final static Logger logger = LoggerFactory.getLogger(FileTransferServiceImpl.class);
+
+    private FileTransferRequestDao fileTransferRequestDao;
+
+    public FileTransferServiceImpl() throws IOException {
+        this.fileTransferRequestDao = new FileTransferRequestDao();
+    }
+
+    /**
+     * Method to upload the give bytes to the destination storage system
+     *
+     * @param gatewayId
+     * @param username
+     * @param fileData
+     * @param destHostName
+     * @param destLoginName
+     * @param destPort
+     * @param destProtocol
+     * @param destinationPath
+     * @param destHostCredToken
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public String uploadFile(String gatewayId, String username, byte[] fileData, String destHostName, String destLoginName, int destPort,
+                             StorageResourceProtocol destProtocol,
+                             String destinationPath, String destHostCredToken) throws DataManagerException {
+        long transferTime = System.currentTimeMillis();
+        if(destProtocol == StorageResourceProtocol.SCP || destProtocol == StorageResourceProtocol.SFTP) {
+            Object credential = getCredential(destHostCredToken);
+            SSHCredential sshCredential;
+            if (credential instanceof SSHCredential) {
+                sshCredential = (SSHCredential) credential;
+                File srcFile = null;
+                FileWriter fileWriter = null;
+                FileTransferRequestModel fileTransferRequestModel = null;
+                try {
+                    String srcFilePath = System.getProperty("java.io.tmpdir")+File.separator+ UUID.randomUUID().toString();
+                    srcFile = new File(srcFilePath);
+                    fileWriter = new FileWriter(srcFile);
+                    fileWriter.write(new String(fileData));
+                    fileWriter.close();
+                    RemoteStorageClient remoteStorageClient;
+                    if(destProtocol == StorageResourceProtocol.SCP)
+                        remoteStorageClient = new SCPStorageClient(destHostName, destPort, destLoginName,
+                            sshCredential.getPrivateKey(),
+                            sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
+                    else
+                        remoteStorageClient = new SFTPStorageClient(destHostName, destPort, destLoginName,
+                                sshCredential.getPrivateKey(),
+                                sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
+
+                    fileTransferRequestModel = new FileTransferRequestModel();
+                    fileTransferRequestModel.setGatewayId(gatewayId);
+                    fileTransferRequestModel.setUsername(username);
+                    fileTransferRequestModel.setSrcHostname(InetAddress.getLocalHost().getHostName());
+                    fileTransferRequestModel.setSrcProtocol(StorageResourceProtocol.LOCAL);
+                    fileTransferRequestModel.setDestHostname(destHostName);
+                    fileTransferRequestModel.setDestLoginName(destLoginName);
+                    fileTransferRequestModel.setDestPort(destPort);
+                    fileTransferRequestModel.setDestProtocol(destProtocol);
+                    fileTransferRequestModel.setDestFilePath(destinationPath);
+                    fileTransferRequestModel.setDestHostCredToken(destHostCredToken);
+                    fileTransferRequestModel.setFileTransferMode(FileTransferMode.SYNC);
+                    remoteStorageClient.writeFile(srcFile, destinationPath);
+                    transferTime = System.currentTimeMillis() - transferTime;
+                    fileTransferRequestModel.setTransferTime(transferTime);
+                    fileTransferRequestModel.setTransferStatus(FileTransferStatus.COMPLETED);
+                    fileTransferRequestModel.setCreatedTime(System.currentTimeMillis());
+                    fileTransferRequestModel.setLastModifiedType(fileTransferRequestModel.getCreatedTime());
+                    fileTransferRequestModel.setFileSize(srcFile.length());
+                    String transferId = fileTransferRequestDao.createFileTransferRequest(fileTransferRequestModel);
+                    return transferId;
+                } catch (Exception e) {
+                    logger.error(e.getMessage(), e);
+                    if(fileTransferRequestModel != null) {
+                        fileTransferRequestModel.setTransferStatus(FileTransferStatus.FAILED);
+                        try {
+                            fileTransferRequestDao.createFileTransferRequest(fileTransferRequestModel);
+                        } catch (JsonProcessingException e1) {
+                            logger.error(e.getMessage(), e);
+                            throw new DataManagerException(e);
+                        }
+                    }
+                    throw new DataManagerException(e.getMessage());
+                } finally {
+                    if(srcFile != null)
+                        srcFile.delete();
+                    if(fileWriter != null)
+                        try {
+                            fileWriter.close();
+                        } catch (IOException e) {
+                            logger.error(e.getMessage(), e);
+                            throw new DataManagerException(e);
+                        }
+                }
+            } else {
+                throw new DataManagerException("Only SSHCredential type is supported");
+            }
+        }else{
+            throw new DataManagerException(destProtocol.toString() + " protocol is not supported for this method");
+        }
+    }
+
+    /**
+     * Transfer file between two storage resources synchronously. Returns the file transfer request id
+     *
+     * @param gatewayId
+     * @param username
+     * @param srcHostname
+     * @param srcLoginName
+     * @param srcPort
+     * @param srcProtocol
+     * @param srcPath
+     * @param srcHostCredToken
+     * @param destHostname
+     * @param destLoginName
+     * @param destPort
+     * @param destProtocol
+     * @param destinationPath
+     * @param destHostCredToken
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public String transferFile(String gatewayId, String username, String srcHostname, String srcLoginName, int srcPort, StorageResourceProtocol srcProtocol,
+                               String srcPath, String srcHostCredToken, String destHostname, String destLoginName, int destPort,
+                               StorageResourceProtocol destProtocol, String destinationPath, String destHostCredToken)
+            throws DataManagerException {
+        long transferTime = System.currentTimeMillis();
+        File srcFile = null;
+        FileTransferRequestModel fileTransferRequestModel = null;
+        try{
+            fileTransferRequestModel = new FileTransferRequestModel();
+            fileTransferRequestModel.setGatewayId(gatewayId);
+            fileTransferRequestModel.setUsername(username);
+            fileTransferRequestModel.setSrcHostname(srcHostname);
+            fileTransferRequestModel.setSrcPort(srcPort);
+            fileTransferRequestModel.setSrcLoginName(srcLoginName);
+            fileTransferRequestModel.setSrcFilePath(srcPath);
+            fileTransferRequestModel.setSrcProtocol(srcProtocol);
+            fileTransferRequestModel.setSrcHostCredToken(srcHostCredToken);
+            fileTransferRequestModel.setDestHostname(destHostname);
+            fileTransferRequestModel.setDestPort(destPort);
+            fileTransferRequestModel.setDestLoginName(destLoginName);
+            fileTransferRequestModel.setDestFilePath(destinationPath);
+            fileTransferRequestModel.setDestProtocol(destProtocol);
+            fileTransferRequestModel.setDestHostCredToken(destHostCredToken);
+            fileTransferRequestModel.setCreatedTime(System.currentTimeMillis());
+            fileTransferRequestModel.setLastModifiedType(fileTransferRequestModel.getCreatedTime());
+            fileTransferRequestModel.setFileTransferMode(FileTransferMode.SYNC);
+
+            if(srcProtocol == StorageResourceProtocol.HTTP || srcProtocol == StorageResourceProtocol.HTTPS ||
+                    srcProtocol == StorageResourceProtocol.SCP || srcProtocol == StorageResourceProtocol.SFTP){
+                RemoteStorageClient srcClient = null;
+                if(srcProtocol == StorageResourceProtocol.HTTP){
+                    srcClient = new HTTPStorageClient(HTTPStorageClient.Protocol.HTTP, srcHostname, srcPort);
+                }else if(srcProtocol == StorageResourceProtocol.HTTPS){
+                    srcClient = new HTTPStorageClient(HTTPStorageClient.Protocol.HTTPS, srcHostname, srcPort);
+                }else if(srcProtocol == StorageResourceProtocol.SCP){
+                    Object credential = getCredential(srcHostCredToken);
+                    if(credential instanceof SSHCredential){
+                        SSHCredential sshCredential = (SSHCredential) credential;
+                        srcClient = new SCPStorageClient(srcHostname, srcPort, srcLoginName, sshCredential.getPrivateKey(),
+                                sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
+                    }else{
+                        throw new DataManagerException("Only support SSHCredentials for SCP host");
+                    }
+                }else{
+                    Object credential = getCredential(srcHostCredToken);
+                    if(credential instanceof SSHCredential){
+                        SSHCredential sshCredential = (SSHCredential) credential;
+                        srcClient = new SFTPStorageClient(srcHostname, srcPort, srcLoginName, sshCredential.getPrivateKey(),
+                                sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
+                    }else{
+                        throw new DataManagerException("Only support SSHCredentials for SFTP host");
+                    }
+                }
+                fileTransferRequestModel.setTransferStatus(FileTransferStatus.RUNNING);
+                srcFile = srcClient.readFile(srcPath);
+            }else{
+                throw new DataManagerException("Unsupported src protocol " + srcProtocol);
+            }
+
+            if(destProtocol == StorageResourceProtocol.SCP || destProtocol == StorageResourceProtocol.SFTP){
+                RemoteStorageClient destClient = null;
+                if(destProtocol == StorageResourceProtocol.SCP){
+                    Object credential = getCredential(srcHostCredToken);
+                    if(credential instanceof SSHCredential){
+                        SSHCredential sshCredential = (SSHCredential) credential;
+                        destClient = new SCPStorageClient(srcHostname, srcPort, srcLoginName, sshCredential.getPrivateKey(),
+                                sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
+                    }else{
+                        throw new DataManagerException("Only support SSHCredentials for SCP host");
+                    }
+                }else{
+                    Object credential = getCredential(srcHostCredToken);
+                    if(credential instanceof SSHCredential){
+                        SSHCredential sshCredential = (SSHCredential) credential;
+                        destClient = new SFTPStorageClient(srcHostname, srcPort, srcLoginName, sshCredential.getPrivateKey(),
+                                sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
+                    }else{
+                        throw new DataManagerException("Only support SSHCredentials for SFTP host");
+                    }
+                }
+                destClient.writeFile(srcFile, destinationPath);
+                transferTime = System.currentTimeMillis() - transferTime;
+                fileTransferRequestModel.setTransferTime(transferTime);
+                fileTransferRequestModel.setFileSize(srcFile.length());
+                fileTransferRequestModel.setTransferStatus(FileTransferStatus.COMPLETED);
+                String transferId = fileTransferRequestDao.createFileTransferRequest(fileTransferRequestModel);
+                return transferId;
+            }else{
+                throw new DataManagerException("Unsupported src protocol " + srcProtocol);
+            }
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            if(fileTransferRequestModel != null) {
+                fileTransferRequestModel.setTransferStatus(FileTransferStatus.FAILED);
+                try {
+                    fileTransferRequestDao.createFileTransferRequest(fileTransferRequestModel);
+                } catch (JsonProcessingException ex) {
+                    logger.error(ex.getMessage(), ex);
+                    throw new DataManagerException(ex);
+                }
+            }
+            throw new DataManagerException(e);
+        }finally {
+            if(srcFile != null)
+                srcFile.delete();
+        }
+    }
+
+    /**
+     * Transfer file between two storage resources asynchronously. Returns the file transfer request id
+     *
+     * @param gatewayId
+     * @param username
+     * @param srcHostname
+     * @param srcLoginName
+     * @param srcPort
+     * @param srcProtocol
+     * @param srcPath
+     * @param srcHostCredToken
+     * @param destHostname
+     * @param destLoginName
+     * @param destPort
+     * @param destProtocol
+     * @param destinationPath
+     * @param destHostCredToken
+     * @param callbackEmails
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public String transferFileAsync(String gatewayId, String username, String srcHostname, String srcLoginName, int srcPort, StorageResourceProtocol srcProtocol,
+                                    String srcPath, String srcHostCredToken, String destHostname, String destLoginName,
+                                    int destPort, StorageResourceProtocol destProtocol, String destinationPath,
+                                    String destHostCredToken, String[] callbackEmails) throws DataManagerException {
+        return null;
+    }
+
+    /**
+     * Get a directory listing of the specified source directory
+     *
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param path
+     * @param hostCredential
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public List<LSEntryModel> getDirectoryListing(String hostname, String loginName, int port, StorageResourceProtocol protocol,
+                                              String path, String hostCredential) throws DataManagerException {
+        return null;
+    }
+
+    /**
+     * Move file from one place to another inside the same storage resource
+     *
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param sourcePath
+     * @param destinationPath
+     * @throws DataManagerException
+     */
+    @Override
+    public void moveFile(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
+                         String sourcePath, String destinationPath) throws DataManagerException {
+
+    }
+
+    /**
+     * Rename a file
+     *
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param sourcePath
+     * @param newName
+     * @throws DataManagerException
+     */
+    @Override
+    public void renameFile(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
+                           String sourcePath, String newName) throws DataManagerException {
+
+    }
+
+    /**
+     * Create new directory
+     *
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param dirPath
+     * @throws DataManagerException
+     */
+    @Override
+    public void mkdir(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
+                      String dirPath) throws DataManagerException {
+
+    }
+
+    /**
+     * Delete File in storage resource
+     *
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param filePath
+     * @throws DataManagerException
+     */
+    @Override
+    public void deleteFile(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
+                           String filePath) throws DataManagerException {
+
+    }
+
+    /**
+     * Check whether the specified file exists
+     *
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param filePath
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public boolean isExists(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
+                            String filePath) throws DataManagerException {
+        return false;
+    }
+
+    /**
+     * Check whether the path points to a directory
+     *
+     * @param hostname
+     * @param loginName
+     * @param port
+     * @param protocol
+     * @param hostCredential
+     * @param filePath
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public boolean isDirectory(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
+                               String filePath) throws DataManagerException {
+        return false;
+    }
+
+    /**
+     * Method to retrieve file transfer status giving transfer id
+     *
+     * @param transferId
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public FileTransferRequestModel getFileTransferRequestStatus(String transferId) throws DataManagerException {
+        try{
+            return fileTransferRequestDao.getFileTransferRequest(transferId);
+        }catch (Exception ex){
+            logger.error(ex.getMessage(), ex);
+            throw new DataManagerException(ex);
+        }
+    }
+
+
+    //TODO API Call to Credential Store
+    private SSHCredential getCredential(String credentialStoreToken) throws DataManagerException {
+        try{
+            SSHCredential sshCredential = new SSHCredential();
+            File privateKey = new File("/Users/supun/.ssh/id_rsa");
+            byte[] privateKeyBytes = IOUtils.toByteArray(new FileInputStream(privateKey));
+            File publicKey = new File("/Users/supun/.ssh/id_rsa.pub");
+            byte[] publicKeyBytes = IOUtils.toByteArray(new FileInputStream(publicKey));
+            String passPhrase = "cecilia@1990";
+            sshCredential.setPrivateKey(privateKeyBytes);
+            sshCredential.setPublicKey(publicKeyBytes);
+            sshCredential.setPassphrase(passPhrase);
+            return sshCredential;
+        }catch (Exception ex){
+            logger.error(ex.getMessage(), ex);
+            throw new DataManagerException(ex);
+        }
+    }
+
+    public static void main(String[] args) throws IOException, DataManagerException {
+        FileTransferServiceImpl fileTransferService = new FileTransferServiceImpl();
+        String sourceFile = "fsgsdgsdgsdgsdg";
+        String transferId = fileTransferService.uploadFile("default", "supun", sourceFile.getBytes(), "gw75.iu.xsede.org",
+                "pga", 22, StorageResourceProtocol.SCP, "/var/www/portals/test.file", null);
+        FileTransferRequestModel fileTransferRequestModel = fileTransferService.fileTransferRequestDao.getFileTransferRequest(transferId);
+        System.out.println("file transfer id:" + fileTransferRequestModel.getTransferId());
+
+        transferId = fileTransferService.transferFile("default", "supun", "gw75.iu.xsede.org", "pga", 22, StorageResourceProtocol.SCP,
+                "/var/www/portals/test.file", null, "gw75.iu.xsede.org", "pga", 22, StorageResourceProtocol.SCP,
+                "/var/www/portals/test2.file", null);
+        fileTransferRequestModel = fileTransferService.fileTransferRequestDao.getFileTransferRequest(transferId);
+        System.out.println("file transfer id:" + fileTransferRequestModel.getTransferId());
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogService.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogService.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogService.java
new file mode 100644
index 0000000..15172a3
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogService.java
@@ -0,0 +1,76 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core;
+
+import org.apache.airavata.data.manager.cpi.DataManagerException;
+import org.apache.airavata.model.data.metadata.MetadataModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class MetadataCatalogService implements org.apache.airavata.data.manager.cpi.MetadataCatalogService {
+    private final static Logger logger = LoggerFactory.getLogger(MetadataCatalogService.class);
+
+    /**
+     * Create new metadata model
+     *
+     * @param metadataModel
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public String createMetadata(MetadataModel metadataModel) throws DataManagerException {
+        return null;
+    }
+
+    /**
+     * Update existing metadata model
+     *
+     * @param metadataModel
+     * @throws DataManagerException
+     */
+    @Override
+    public void updateMetadata(MetadataModel metadataModel) throws DataManagerException {
+
+    }
+
+    /**
+     * Delete existing metadata model
+     *
+     * @param metadataId
+     * @throws DataManagerException
+     */
+    @Override
+    public void deleteMetadata(String metadataId) throws DataManagerException {
+
+    }
+
+    /**
+     * Retrieve metadata model
+     *
+     * @param metadataId
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public MetadataModel getMetadata(String metadataId) throws DataManagerException {
+        return null;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogServiceImpl.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogServiceImpl.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogServiceImpl.java
new file mode 100644
index 0000000..9f29c92
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/MetadataCatalogServiceImpl.java
@@ -0,0 +1,105 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core;
+
+import org.apache.airavata.data.manager.core.db.dao.MetadataDao;
+import org.apache.airavata.data.manager.cpi.DataManagerException;
+import org.apache.airavata.model.data.metadata.MetadataModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+public class MetadataCatalogServiceImpl extends MetadataCatalogService {
+    private final static Logger logger = LoggerFactory.getLogger(MetadataCatalogServiceImpl.class);
+
+    private MetadataDao metadataDao;
+
+    public MetadataCatalogServiceImpl() throws IOException {
+        this.metadataDao = new MetadataDao();
+    }
+
+    /**
+     * Create new metadata model
+     *
+     * @param metadataModel
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public String createMetadata(MetadataModel metadataModel) throws DataManagerException {
+        try{
+            return metadataDao.createMetadata(metadataModel);
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            throw new DataManagerException(e);
+        }
+    }
+
+    /**
+     * Update exisiting metadata model
+     *
+     * @param metadataModel
+     * @throws DataManagerException
+     */
+    @Override
+    public void updateMetadata(MetadataModel metadataModel) throws DataManagerException {
+        try{
+            metadataDao.updateMetadata(metadataModel);
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            throw new DataManagerException(e);
+        }
+    }
+
+    /**
+     * Delete existing metadata model
+     *
+     * @param metadataId
+     * @throws DataManagerException
+     */
+    @Override
+    public void deleteMetadata(String metadataId) throws DataManagerException {
+        try{
+            metadataDao.deleteMetadata(metadataId);
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            throw new DataManagerException(e);
+        }
+    }
+
+    /**
+     * Retrieve metadata model
+     *
+     * @param metadataId
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public MetadataModel getMetadata(String metadataId) throws DataManagerException {
+        try{
+            return metadataDao.getMetadata(metadataId);
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            throw new DataManagerException(e);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/ReplicaCatalogServiceImpl.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/ReplicaCatalogServiceImpl.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/ReplicaCatalogServiceImpl.java
new file mode 100644
index 0000000..e7bde66
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/ReplicaCatalogServiceImpl.java
@@ -0,0 +1,172 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core;
+
+import org.apache.airavata.data.manager.core.db.dao.FileCollectionDao;
+import org.apache.airavata.data.manager.core.db.dao.FileDao;
+import org.apache.airavata.data.manager.cpi.DataManagerException;
+import org.apache.airavata.data.manager.cpi.ReplicaCatalogService;
+import org.apache.airavata.model.data.replica.FileCollectionModel;
+import org.apache.airavata.model.data.replica.FileModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+public class ReplicaCatalogServiceImpl implements ReplicaCatalogService {
+    private final static Logger logger = LoggerFactory.getLogger(ReplicaCatalogServiceImpl.class);
+
+    private FileDao fileDao;
+    private FileCollectionDao fileCollectionDao;
+
+    public ReplicaCatalogServiceImpl() throws IOException {
+        this.fileDao = new FileDao();
+        this.fileCollectionDao = new FileCollectionDao();
+    }
+
+    /**
+     * Creates a new file entry in the replica catalog
+     *
+     * @param fileModel
+     * @return
+     */
+    @Override
+    public String registerFileDetails(FileModel fileModel) throws DataManagerException {
+        try{
+            return fileDao.createFile(fileModel);
+        }catch (Exception ex){
+            logger.error(ex.getMessage(), ex);
+            throw new DataManagerException(ex);
+        }
+    }
+
+    /**
+     * Updates an existing file information
+     *
+     * @param fileModel
+     */
+    @Override
+    public void updateFileDetails(FileModel fileModel) throws DataManagerException {
+        try{
+            fileDao.updateFile(fileModel);
+        }catch (Exception ex){
+            logger.error(ex.getMessage(), ex);
+            throw new DataManagerException(ex);
+        }
+    }
+
+    /**
+     * Deletes the specified file details entry
+     *
+     * @param fileId
+     */
+    @Override
+    public void deleteFileDetails(String fileId) throws DataManagerException {
+        try{
+            fileDao.deleteFile(fileId);
+        }catch (Exception ex){
+            logger.error(ex.getMessage(), ex);
+            throw new DataManagerException(ex);
+        }
+    }
+
+    /**
+     * Retrieves file details for the specified file id
+     *
+     * @param fileId
+     * @return
+     */
+    @Override
+    public FileModel getFileDetails(String fileId) throws DataManagerException {
+        try{
+            return fileDao.getFile(fileId);
+        }catch (Exception ex){
+            logger.error(ex.getMessage(), ex);
+            throw new DataManagerException(ex);
+        }
+    }
+
+    /**
+     * Create new file collection entry
+     *
+     * @param fileCollectionModel
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public String registerFileCollection(FileCollectionModel fileCollectionModel) throws DataManagerException {
+        try{
+            return fileCollectionDao.createFileCollection(fileCollectionModel);
+        }catch (Exception ex){
+            logger.error(ex.getMessage(), ex);
+            throw new DataManagerException(ex);
+        }
+    }
+
+    /**
+     * Update existing file collection
+     *
+     * @param fileCollectionModel
+     * @throws DataManagerException
+     */
+    @Override
+    public void updateFileCollection(FileCollectionModel fileCollectionModel) throws DataManagerException {
+        try{
+            fileCollectionDao.updateFileCollection(fileCollectionModel);
+        }catch (Exception ex){
+            logger.error(ex.getMessage(), ex);
+            throw new DataManagerException(ex);
+        }
+    }
+
+    /**
+     * Delete exisiting file collection
+     *
+     * @param collectionId
+     * @throws DataManagerException
+     */
+    @Override
+    public void deleteFileCollection(String collectionId) throws DataManagerException {
+        try{
+            fileCollectionDao.deleteFileCollection(collectionId);
+        }catch (Exception ex){
+            logger.error(ex.getMessage(), ex);
+            throw new DataManagerException(ex);
+        }
+    }
+
+    /**
+     * Retrieve file collection specifying the collection id
+     *
+     * @param collectionId
+     * @return
+     * @throws DataManagerException
+     */
+    @Override
+    public FileCollectionModel getFileCollection(String collectionId) throws DataManagerException {
+        try{
+            return fileCollectionDao.getFileCollection(collectionId);
+        }catch (Exception ex){
+            logger.error(ex.getMessage(), ex);
+            throw new DataManagerException(ex);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftDeserializer.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftDeserializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftDeserializer.java
new file mode 100644
index 0000000..0841f45
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftDeserializer.java
@@ -0,0 +1,151 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.node.JsonNodeType;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.databind.type.TypeFactory;
+import com.google.common.base.CaseFormat;
+import org.apache.thrift.TBase;
+import org.apache.thrift.TException;
+import org.apache.thrift.TFieldIdEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.ParameterizedType;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * This abstract class represents a generic de-serializer for converting JSON to Thrift-based entities.
+ *
+ * @param <E> An implementation of the {@link org.apache.thrift.TFieldIdEnum} interface.
+ * @param <T> An implementation of the {@link org.apache.thrift.TBase} interface.
+ */
+public abstract class AbstractThriftDeserializer<E extends TFieldIdEnum, T extends TBase<T, E>> extends JsonDeserializer<T> {
+
+    private static Logger log = LoggerFactory.getLogger(AbstractThriftDeserializer.class);
+
+    @Override
+    public T deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException {
+        final T instance = newInstance();
+        final ObjectMapper mapper = (ObjectMapper)jp.getCodec();
+        final ObjectNode rootNode = (ObjectNode)mapper.readTree(jp);
+        final Iterator<Map.Entry<String, JsonNode>> iterator = rootNode.fields();
+
+        while(iterator.hasNext()) {
+            final Map.Entry<String, JsonNode> currentField = iterator.next();
+            try {
+                /*
+                 * If the current node is not a null value, process it.  Otherwise,
+                 * skip it.  Jackson will treat the null as a 0 for primitive
+                 * number types, which in turn will make Thrift think the field
+                 * has been set. Also we ignore the MongoDB specific _id field
+                 */
+                if(currentField.getValue().getNodeType() != JsonNodeType.NULL) {
+                    final E field = getField(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_UNDERSCORE, currentField.getKey()));
+                    final JsonParser parser = currentField.getValue().traverse();
+                    parser.setCodec(mapper);
+                    final Object value = mapper.readValue(parser, generateValueType(instance, field));
+                    if(value != null) {
+                        log.debug(String.format("Field %s produced value %s of type %s.",
+                                currentField.getKey(), value, value.getClass().getName()));
+                        instance.setFieldValue(field, value);
+                    } else {
+                        log.debug("Field {} contains a null value.  Skipping...", currentField.getKey());
+                    }
+                } else {
+                    log.debug("Field {} contains a null value.  Skipping...", currentField.getKey());
+                }
+            } catch (final NoSuchFieldException | IllegalArgumentException e) {
+                log.error("Unable to de-serialize field '{}'.", currentField.getKey(), e);
+                ctxt.mappingException(e.getMessage());
+            }
+        }
+
+        try {
+            // Validate that the instance contains all required fields.
+            validate(instance);
+        } catch (final TException e) {
+            log.error(String.format("Unable to deserialize JSON '%s' to type '%s'.",
+                    jp.getValueAsString(), instance.getClass().getName(), e));
+            ctxt.mappingException(e.getMessage());
+        }
+
+        return instance;
+    }
+
+    /**
+     * Returns the {@code <E>} enumerated value that represents the target
+     * field in the Thrift entity referenced in the JSON document.
+     * @param fieldName The name of the Thrift entity target field.
+     * @return The {@code <E>} enumerated value that represents the target
+     *   field in the Thrift entity referenced in the JSON document.
+     */
+    protected abstract E getField(String fieldName);
+
+    /**
+     * Creates a new instance of the Thrift entity class represented by this deserializer.
+     * @return A new instance of the Thrift entity class represented by this deserializer.
+     */
+    protected abstract T newInstance();
+
+    /**
+     * Validates that the Thrift entity instance contains all required fields after deserialization.
+     * @param instance A Thrift entity instance.
+     * @throws org.apache.thrift.TException if unable to validate the instance.
+     */
+    protected abstract void validate(T instance) throws TException;
+
+    /**
+     * Generates a {@link JavaType} that matches the target Thrift field represented by the provided
+     * {@code <E>} enumerated value.  If the field's type includes generics, the generics will
+     * be added to the generated {@link JavaType} to support proper conversion.
+     * @param thriftInstance The Thrift-generated class instance that will be converted to/from JSON.
+     * @param field A {@code <E>} enumerated value that represents a field in a Thrift-based entity.
+     * @return The {@link JavaType} representation of the type associated with the field.
+     * @throws NoSuchFieldException if unable to determine the field's type.
+     * @throws SecurityException if unable to determine the field's type.
+     */
+    protected JavaType generateValueType(final T thriftInstance, final E field) throws NoSuchFieldException, SecurityException {
+        final TypeFactory typeFactory = TypeFactory.defaultInstance();
+
+        final Field declaredField = thriftInstance.getClass().getDeclaredField(field.getFieldName());
+        if(declaredField.getType().equals(declaredField.getGenericType())) {
+            log.debug("Generating JavaType for type '{}'.", declaredField.getType());
+            return typeFactory.constructType(declaredField.getType());
+        } else {
+            final ParameterizedType type = (ParameterizedType)declaredField.getGenericType();
+            final Class<?>[] parameterizedTypes = new Class<?>[type.getActualTypeArguments().length];
+            for(int i=0; i<type.getActualTypeArguments().length; i++) {
+                parameterizedTypes[i] = (Class<?>)type.getActualTypeArguments()[i];
+            }
+            log.debug("Generating JavaType for type '{}' with generics '{}'", declaredField.getType(), parameterizedTypes);
+            return typeFactory.constructParametricType(declaredField.getType(), parameterizedTypes);
+        }
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftSerializer.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftSerializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftSerializer.java
new file mode 100644
index 0000000..c469af6
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/AbstractThriftSerializer.java
@@ -0,0 +1,122 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.google.common.base.CaseFormat;
+import org.apache.thrift.TBase;
+import org.apache.thrift.TFieldIdEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.Collection;
+
+/**
+ * This abstract class represents a generic serializer for converting Thrift-based entities
+ * to JSON.
+ *
+ * @param <E> An implementation of the {@link org.apache.thrift.TFieldIdEnum} interface.
+ * @param <T> An implementation of the {@link org.apache.thrift.TBase} interface.
+ */
+public abstract class AbstractThriftSerializer<E extends TFieldIdEnum, T extends TBase<T, E>>
+        extends JsonSerializer<T> {
+
+    private static final Logger log = LoggerFactory.getLogger(AbstractThriftSerializer.class);
+
+    @Override
+    public Class<T> handledType() {
+        return getThriftClass();
+    }
+
+    @Override
+    public void serialize(final T value, final JsonGenerator jgen, final SerializerProvider provider)
+            throws IOException, JsonProcessingException {
+        jgen.writeStartObject();
+        for(final E field : getFieldValues()) {
+            if(value.isSet(field)) {
+                final Object fieldValue = value.getFieldValue(field);
+                if(fieldValue != null) {
+                    log.debug("Adding field {} to the JSON string...",
+                            CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName())
+                    );
+
+                    jgen.writeFieldName(CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName()));
+                    if(fieldValue instanceof Short) {
+                        jgen.writeNumber((Short)fieldValue);
+                    } else if(fieldValue instanceof Integer) {
+                        jgen.writeNumber((Integer)fieldValue);
+                    } else if(fieldValue instanceof Long) {
+                        jgen.writeNumber((Long)fieldValue);
+                    } else if(fieldValue instanceof Double) {
+                        jgen.writeNumber((Double)fieldValue);
+                    } else if(fieldValue instanceof Float) {
+                        jgen.writeNumber((Float)fieldValue);
+                    } else if(fieldValue instanceof Boolean) {
+                        jgen.writeBoolean((Boolean)fieldValue);
+                    } else if(fieldValue instanceof String) {
+                        jgen.writeString(fieldValue.toString());
+                    } else if(fieldValue instanceof Collection) {
+                        log.debug("Array opened for field {}.",
+                                CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName())
+                        );
+                        jgen.writeStartArray();
+                        for(final Object arrayObject : (Collection<?>)fieldValue) {
+                            jgen.writeObject(arrayObject);
+                        }
+                        jgen.writeEndArray();
+                        log.debug("Array closed for field {}.",
+                                CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName())
+                        );
+                    } else {
+                        jgen.writeObject(fieldValue);
+                    }
+                } else {
+                    log.debug("Skipping converting field {} to JSON:  value is null!",
+                            CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName())
+                    );
+                }
+            } else {
+                log.debug("Skipping converting field {} to JSON:  field has not been set!",
+                        CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName())
+                );
+            }
+        }
+        jgen.writeEndObject();
+    }
+
+    /**
+     * Returns an array of {@code <E>} enumerated values that represent the fields present in the
+     * Thrift class associated with this serializer.
+     * @return The array of {@code <E>} enumerated values that represent the fields present in the
+     *   Thrift class.
+     */
+    protected abstract E[] getFieldValues();
+
+    /**
+     * Returns the {@code <T>} implementation class associated with this serializer.
+     * @return The {@code <T>} implementation class
+     */
+    protected abstract Class<T> getThriftClass();
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/ModelConversionHelper.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/ModelConversionHelper.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/ModelConversionHelper.java
new file mode 100644
index 0000000..99dfbfc
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/ModelConversionHelper.java
@@ -0,0 +1,102 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import org.apache.airavata.data.manager.core.db.conversion.metadata.MetadataDeserializer;
+import org.apache.airavata.data.manager.core.db.conversion.metadata.MetadataSerializer;
+import org.apache.airavata.data.manager.core.db.conversion.transfer.FileTransferRequestDeserializer;
+import org.apache.airavata.data.manager.core.db.conversion.transfer.FileTransferRequestSerializer;
+import org.apache.airavata.data.manager.core.db.conversion.replica.FileCollectionDeserializer;
+import org.apache.airavata.data.manager.core.db.conversion.replica.FileCollectionSerializer;
+import org.apache.airavata.data.manager.core.db.conversion.replica.FileDeserializer;
+import org.apache.airavata.data.manager.core.db.conversion.replica.FileSerializer;
+import org.apache.airavata.model.data.metadata.MetadataModel;
+import org.apache.airavata.model.data.transfer.FileTransferRequestModel;
+import org.apache.airavata.model.data.replica.FileCollectionModel;
+import org.apache.airavata.model.data.replica.FileModel;
+import org.apache.thrift.TBase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+
+/**
+ * This is utility class for model conversion of thrift to/from json
+ */
+public class ModelConversionHelper {
+    private final static Logger logger = LoggerFactory.getLogger(ModelConversionHelper.class);
+
+    private ObjectMapper objectMapper;
+
+    public ModelConversionHelper(){
+        init();
+    }
+
+    /**
+     * Private method to register the custom serializers and deserializers
+     */
+    private void init(){
+        this.objectMapper = new ObjectMapper();
+        SimpleModule module = new SimpleModule("DataManager",
+                new Version(1,0,0,null,null,null));
+
+        module.addSerializer(FileTransferRequestModel.class, new FileTransferRequestSerializer());
+        module.addDeserializer(FileTransferRequestModel.class, new FileTransferRequestDeserializer());
+
+        module.addSerializer(FileModel.class, new FileSerializer());
+        module.addDeserializer(FileModel.class, new FileDeserializer());
+
+        module.addSerializer(FileCollectionModel.class, new FileCollectionSerializer());
+        module.addDeserializer(FileCollectionModel.class, new FileCollectionDeserializer());
+
+        module.addSerializer(MetadataModel.class, new MetadataSerializer());
+        module.addDeserializer(MetadataModel.class, new MetadataDeserializer());
+
+        objectMapper.registerModule(module);
+    }
+
+    /**
+     * Method to serialize a thrift object to json
+     * @param object
+     * @return
+     * @throws JsonProcessingException
+     */
+    public String serializeObject(TBase object) throws JsonProcessingException {
+        String json = this.objectMapper.writeValueAsString(object);
+        return json;
+    }
+
+    /**
+     * Method to deserialize a json to the thrift object
+     * @param clz
+     * @param json
+     * @return
+     * @throws IOException
+     */
+    public TBase deserializeObject(Class<?> clz, String json) throws IOException {
+        return (TBase)this.objectMapper.readValue(json, clz);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/metadata/MetadataDeserializer.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/metadata/MetadataDeserializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/metadata/MetadataDeserializer.java
new file mode 100644
index 0000000..a6ce1b4
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/metadata/MetadataDeserializer.java
@@ -0,0 +1,44 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion.metadata;
+
+import org.apache.airavata.data.manager.core.db.conversion.AbstractThriftDeserializer;
+import org.apache.airavata.model.data.metadata.MetadataModel;
+import org.apache.thrift.TException;
+
+public class MetadataDeserializer extends
+        AbstractThriftDeserializer<MetadataModel._Fields, MetadataModel> {
+
+    @Override
+    protected MetadataModel._Fields getField(final String fieldName) {
+        return MetadataModel._Fields.valueOf(fieldName);
+    }
+
+    @Override
+    protected MetadataModel newInstance() {
+        return new MetadataModel();
+    }
+
+    @Override
+    protected void validate(final MetadataModel instance) throws TException {
+        instance.validate();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/metadata/MetadataSerializer.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/metadata/MetadataSerializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/metadata/MetadataSerializer.java
new file mode 100644
index 0000000..c07484a
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/metadata/MetadataSerializer.java
@@ -0,0 +1,41 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion.metadata;
+
+import org.apache.airavata.data.manager.core.db.conversion.AbstractThriftSerializer;
+import org.apache.airavata.model.data.metadata.MetadataModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class MetadataSerializer extends
+        AbstractThriftSerializer<MetadataModel._Fields, MetadataModel> {
+    private final static Logger logger = LoggerFactory.getLogger(MetadataSerializer.class);
+
+    @Override
+    protected MetadataModel._Fields[] getFieldValues() {
+        return MetadataModel._Fields.values();
+    }
+
+    @Override
+    protected Class<MetadataModel> getThriftClass() {
+        return null;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileCollectionDeserializer.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileCollectionDeserializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileCollectionDeserializer.java
new file mode 100644
index 0000000..a34ab1b
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileCollectionDeserializer.java
@@ -0,0 +1,44 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion.replica;
+
+import org.apache.airavata.data.manager.core.db.conversion.AbstractThriftDeserializer;
+import org.apache.airavata.model.data.replica.FileCollectionModel;
+import org.apache.thrift.TException;
+
+public class FileCollectionDeserializer extends
+        AbstractThriftDeserializer<FileCollectionModel._Fields, FileCollectionModel> {
+
+    @Override
+    protected FileCollectionModel._Fields getField(final String fieldName) {
+        return FileCollectionModel._Fields.valueOf(fieldName);
+    }
+
+    @Override
+    protected FileCollectionModel newInstance() {
+        return new FileCollectionModel();
+    }
+
+    @Override
+    protected void validate(final FileCollectionModel instance) throws TException {
+        instance.validate();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileCollectionSerializer.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileCollectionSerializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileCollectionSerializer.java
new file mode 100644
index 0000000..56ed65e
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileCollectionSerializer.java
@@ -0,0 +1,41 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion.replica;
+
+import org.apache.airavata.data.manager.core.db.conversion.AbstractThriftSerializer;
+import org.apache.airavata.model.data.replica.FileCollectionModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FileCollectionSerializer extends
+        AbstractThriftSerializer<FileCollectionModel._Fields, FileCollectionModel> {
+    private final static Logger logger = LoggerFactory.getLogger(FileCollectionSerializer.class);
+
+    @Override
+    protected FileCollectionModel._Fields[] getFieldValues() {
+        return FileCollectionModel._Fields.values();
+    }
+
+    @Override
+    protected Class<FileCollectionModel> getThriftClass() {
+        return null;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileDeserializer.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileDeserializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileDeserializer.java
new file mode 100644
index 0000000..d1e84d5
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileDeserializer.java
@@ -0,0 +1,44 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion.replica;
+
+import org.apache.airavata.data.manager.core.db.conversion.AbstractThriftDeserializer;
+import org.apache.airavata.model.data.replica.FileModel;
+import org.apache.thrift.TException;
+
+public class FileDeserializer extends
+        AbstractThriftDeserializer<FileModel._Fields, FileModel> {
+
+    @Override
+    protected FileModel._Fields getField(final String fieldName) {
+        return FileModel._Fields.valueOf(fieldName);
+    }
+
+    @Override
+    protected FileModel newInstance() {
+        return new FileModel();
+    }
+
+    @Override
+    protected void validate(final FileModel instance) throws TException {
+        instance.validate();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileSerializer.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileSerializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileSerializer.java
new file mode 100644
index 0000000..3a37645
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/replica/FileSerializer.java
@@ -0,0 +1,41 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion.replica;
+
+import org.apache.airavata.data.manager.core.db.conversion.AbstractThriftSerializer;
+import org.apache.airavata.model.data.replica.FileModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FileSerializer extends
+        AbstractThriftSerializer<FileModel._Fields, FileModel> {
+    private final static Logger logger = LoggerFactory.getLogger(FileSerializer.class);
+
+    @Override
+    protected FileModel._Fields[] getFieldValues() {
+        return FileModel._Fields.values();
+    }
+
+    @Override
+    protected Class<FileModel> getThriftClass() {
+        return null;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/transfer/FileTransferRequestDeserializer.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/transfer/FileTransferRequestDeserializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/transfer/FileTransferRequestDeserializer.java
new file mode 100644
index 0000000..e039d1c
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/transfer/FileTransferRequestDeserializer.java
@@ -0,0 +1,44 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion.transfer;
+
+import org.apache.airavata.data.manager.core.db.conversion.AbstractThriftDeserializer;
+import org.apache.airavata.model.data.transfer.FileTransferRequestModel;
+import org.apache.thrift.TException;
+
+public class FileTransferRequestDeserializer extends
+        AbstractThriftDeserializer<FileTransferRequestModel._Fields, FileTransferRequestModel> {
+
+    @Override
+    protected FileTransferRequestModel._Fields getField(final String fieldName) {
+        return FileTransferRequestModel._Fields.valueOf(fieldName);
+    }
+
+    @Override
+    protected FileTransferRequestModel newInstance() {
+        return new FileTransferRequestModel();
+    }
+
+    @Override
+    protected void validate(final FileTransferRequestModel instance) throws TException {
+        instance.validate();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/transfer/FileTransferRequestSerializer.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/transfer/FileTransferRequestSerializer.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/transfer/FileTransferRequestSerializer.java
new file mode 100644
index 0000000..0c40d2c
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/conversion/transfer/FileTransferRequestSerializer.java
@@ -0,0 +1,41 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.conversion.transfer;
+
+import org.apache.airavata.data.manager.core.db.conversion.AbstractThriftSerializer;
+import org.apache.airavata.model.data.transfer.FileTransferRequestModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FileTransferRequestSerializer extends
+        AbstractThriftSerializer<FileTransferRequestModel._Fields, FileTransferRequestModel> {
+    private final static Logger logger = LoggerFactory.getLogger(FileTransferRequestSerializer.class);
+
+    @Override
+    protected FileTransferRequestModel._Fields[] getFieldValues() {
+        return FileTransferRequestModel._Fields.values();
+    }
+
+    @Override
+    protected Class<FileTransferRequestModel> getThriftClass() {
+        return null;
+    }
+}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
new file mode 100644
index 0000000..2e022fa
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
@@ -0,0 +1,1937 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.appdeployment;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Application Deployment Description
+ * 
+ * appDeploymentId: Airavata Internal Unique Job ID. This is set by the registry.
+ * 
+ * appModuleName:
+ *   Application Module Name. This has to be precise describing the binary.
+ * 
+ * computeHostId:
+ *   This ID maps application deployment to a particular resource previously described within Airavata.
+ *   Example: Stampede is first registered and refered when registering WRF.
+ * 
+ * moduleLoadCmd:
+ *  Command string to load modules. This will be placed in the job submisison
+ *  Ex: module load amber
+ * 
+ * libPrependPaths:
+ *  prepend to a path variable the value
+ * 
+ * libAppendPaths:
+ *  append to a path variable the value
+ * 
+ * setEnvironment:
+ *  assigns to the environment variable "NAME" the value
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ApplicationDeploymentDescription implements org.apache.thrift.TBase<ApplicationDeploymentDescription, ApplicationDeploymentDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationDeploymentDescription> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationDeploymentDescription");
+
+  private static final org.apache.thrift.protocol.TField APP_DEPLOYMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("appDeploymentId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField APP_MODULE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("appModuleId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField COMPUTE_HOST_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeHostId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField EXECUTABLE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("executablePath", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField PARALLELISM_FIELD_DESC = new org.apache.thrift.protocol.TField("parallelism", org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField APP_DEPLOYMENT_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("appDeploymentDescription", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField MODULE_LOAD_CMDS_FIELD_DESC = new org.apache.thrift.protocol.TField("moduleLoadCmds", org.apache.thrift.protocol.TType.LIST, (short)7);
+  private static final org.apache.thrift.protocol.TField LIB_PREPEND_PATHS_FIELD_DESC = new org.apache.thrift.protocol.TField("libPrependPaths", org.apache.thrift.protocol.TType.LIST, (short)8);
+  private static final org.apache.thrift.protocol.TField LIB_APPEND_PATHS_FIELD_DESC = new org.apache.thrift.protocol.TField("libAppendPaths", org.apache.thrift.protocol.TType.LIST, (short)9);
+  private static final org.apache.thrift.protocol.TField SET_ENVIRONMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("setEnvironment", org.apache.thrift.protocol.TType.LIST, (short)10);
+  private static final org.apache.thrift.protocol.TField PRE_JOB_COMMANDS_FIELD_DESC = new org.apache.thrift.protocol.TField("preJobCommands", org.apache.thrift.protocol.TType.LIST, (short)11);
+  private static final org.apache.thrift.protocol.TField POST_JOB_COMMANDS_FIELD_DESC = new org.apache.thrift.protocol.TField("postJobCommands", org.apache.thrift.protocol.TType.LIST, (short)12);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ApplicationDeploymentDescriptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ApplicationDeploymentDescriptionTupleSchemeFactory());
+  }
+
+  public String appDeploymentId; // required
+  public String appModuleId; // required
+  public String computeHostId; // required
+  public String executablePath; // required
+  /**
+   * 
+   * @see ApplicationParallelismType
+   */
+  public ApplicationParallelismType parallelism; // required
+  public String appDeploymentDescription; // optional
+  public List<CommandObject> moduleLoadCmds; // optional
+  public List<SetEnvPaths> libPrependPaths; // optional
+  public List<SetEnvPaths> libAppendPaths; // optional
+  public List<SetEnvPaths> setEnvironment; // optional
+  public List<CommandObject> preJobCommands; // optional
+  public List<CommandObject> postJobCommands; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    APP_DEPLOYMENT_ID((short)1, "appDeploymentId"),
+    APP_MODULE_ID((short)2, "appModuleId"),
+    COMPUTE_HOST_ID((short)3, "computeHostId"),
+    EXECUTABLE_PATH((short)4, "executablePath"),
+    /**
+     * 
+     * @see ApplicationParallelismType
+     */
+    PARALLELISM((short)5, "parallelism"),
+    APP_DEPLOYMENT_DESCRIPTION((short)6, "appDeploymentDescription"),
+    MODULE_LOAD_CMDS((short)7, "moduleLoadCmds"),
+    LIB_PREPEND_PATHS((short)8, "libPrependPaths"),
+    LIB_APPEND_PATHS((short)9, "libAppendPaths"),
+    SET_ENVIRONMENT((short)10, "setEnvironment"),
+    PRE_JOB_COMMANDS((short)11, "preJobCommands"),
+    POST_JOB_COMMANDS((short)12, "postJobCommands");
+
+    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: // APP_DEPLOYMENT_ID
+          return APP_DEPLOYMENT_ID;
+        case 2: // APP_MODULE_ID
+          return APP_MODULE_ID;
+        case 3: // COMPUTE_HOST_ID
+          return COMPUTE_HOST_ID;
+        case 4: // EXECUTABLE_PATH
+          return EXECUTABLE_PATH;
+        case 5: // PARALLELISM
+          return PARALLELISM;
+        case 6: // APP_DEPLOYMENT_DESCRIPTION
+          return APP_DEPLOYMENT_DESCRIPTION;
+        case 7: // MODULE_LOAD_CMDS
+          return MODULE_LOAD_CMDS;
+        case 8: // LIB_PREPEND_PATHS
+          return LIB_PREPEND_PATHS;
+        case 9: // LIB_APPEND_PATHS
+          return LIB_APPEND_PATHS;
+        case 10: // SET_ENVIRONMENT
+          return SET_ENVIRONMENT;
+        case 11: // PRE_JOB_COMMANDS
+          return PRE_JOB_COMMANDS;
+        case 12: // POST_JOB_COMMANDS
+          return POST_JOB_COMMANDS;
+        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 _Fields optionals[] = {_Fields.APP_DEPLOYMENT_DESCRIPTION,_Fields.MODULE_LOAD_CMDS,_Fields.LIB_PREPEND_PATHS,_Fields.LIB_APPEND_PATHS,_Fields.SET_ENVIRONMENT,_Fields.PRE_JOB_COMMANDS,_Fields.POST_JOB_COMMANDS};
+  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.APP_DEPLOYMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("appDeploymentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APP_MODULE_ID, new org.apache.thrift.meta_data.FieldMetaData("appModuleId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.COMPUTE_HOST_ID, new org.apache.thrift.meta_data.FieldMetaData("computeHostId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXECUTABLE_PATH, new org.apache.thrift.meta_data.FieldMetaData("executablePath", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PARALLELISM, new org.apache.thrift.meta_data.FieldMetaData("parallelism", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ApplicationParallelismType.class)));
+    tmpMap.put(_Fields.APP_DEPLOYMENT_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("appDeploymentDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.MODULE_LOAD_CMDS, new org.apache.thrift.meta_data.FieldMetaData("moduleLoadCmds", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CommandObject.class))));
+    tmpMap.put(_Fields.LIB_PREPEND_PATHS, new org.apache.thrift.meta_data.FieldMetaData("libPrependPaths", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SetEnvPaths.class))));
+    tmpMap.put(_Fields.LIB_APPEND_PATHS, new org.apache.thrift.meta_data.FieldMetaData("libAppendPaths", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SetEnvPaths.class))));
+    tmpMap.put(_Fields.SET_ENVIRONMENT, new org.apache.thrift.meta_data.FieldMetaData("setEnvironment", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SetEnvPaths.class))));
+    tmpMap.put(_Fields.PRE_JOB_COMMANDS, new org.apache.thrift.meta_data.FieldMetaData("preJobCommands", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CommandObject.class))));
+    tmpMap.put(_Fields.POST_JOB_COMMANDS, new org.apache.thrift.meta_data.FieldMetaData("postJobCommands", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CommandObject.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ApplicationDeploymentDescription.class, metaDataMap);
+  }
+
+  public ApplicationDeploymentDescription() {
+    this.appDeploymentId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.parallelism = org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType.SERIAL;
+
+  }
+
+  public ApplicationDeploymentDescription(
+    String appDeploymentId,
+    String appModuleId,
+    String computeHostId,
+    String executablePath,
+    ApplicationParallelismType parallelism)
+  {
+    this();
+    this.appDeploymentId = appDeploymentId;
+    this.appModuleId = appModuleId;
+    this.computeHostId = computeHostId;
+    this.executablePath = executablePath;
+    this.parallelism = parallelism;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ApplicationDeploymentDescription(ApplicationDeploymentDescription other) {
+    if (other.isSetAppDeploymentId()) {
+      this.appDeploymentId = other.appDeploymentId;
+    }
+    if (other.isSetAppModuleId()) {
+      this.appModuleId = other.appModuleId;
+    }
+    if (other.isSetComputeHostId()) {
+      this.computeHostId = other.computeHostId;
+    }
+    if (other.isSetExecutablePath()) {
+      this.executablePath = other.executablePath;
+    }
+    if (other.isSetParallelism()) {
+      this.parallelism = other.parallelism;
+    }
+    if (other.isSetAppDeploymentDescription()) {
+      this.appDeploymentDescription = other.appDeploymentDescription;
+    }
+    if (other.isSetModuleLoadCmds()) {
+      List<CommandObject> __this__moduleLoadCmds = new ArrayList<CommandObject>(other.moduleLoadCmds.size());
+      for (CommandObject other_element : other.moduleLoadCmds) {
+        __this__moduleLoadCmds.add(new CommandObject(other_element));
+      }
+      this.moduleLoadCmds = __this__moduleLoadCmds;
+    }
+    if (other.isSetLibPrependPaths()) {
+      List<SetEnvPaths> __this__libPrependPaths = new ArrayList<SetEnvPaths>(other.libPrependPaths.size());
+      for (SetEnvPaths other_element : other.libPrependPaths) {
+        __this__libPrependPaths.add(new SetEnvPaths(other_element));
+      }
+      this.libPrependPaths = __this__libPrependPaths;
+    }
+    if (other.isSetLibAppendPaths()) {
+      List<SetEnvPaths> __this__libAppendPaths = new ArrayList<SetEnvPaths>(other.libAppendPaths.size());
+      for (SetEnvPaths other_element : other.libAppendPaths) {
+        __this__libAppendPaths.add(new SetEnvPaths(other_element));
+      }
+      this.libAppendPaths = __this__libAppendPaths;
+    }
+    if (other.isSetSetEnvironment()) {
+      List<SetEnvPaths> __this__setEnvironment = new ArrayList<SetEnvPaths>(other.setEnvironment.size());
+      for (SetEnvPaths other_element : other.setEnvironment) {
+        __this__setEnvironment.add(new SetEnvPaths(other_element));
+      }
+      this.setEnvironment = __this__setEnvironment;
+    }
+    if (other.isSetPreJobCommands()) {
+      List<CommandObject> __this__preJobCommands = new ArrayList<CommandObject>(other.preJobCommands.size());
+      for (CommandObject other_element : other.preJobCommands) {
+        __this__preJobCommands.add(new CommandObject(other_element));
+      }
+      this.preJobCommands = __this__preJobCommands;
+    }
+    if (other.isSetPostJobCommands()) {
+      List<CommandObject> __this__postJobCommands = new ArrayList<CommandObject>(other.postJobCommands.size());
+      for (CommandObject other_element : other.postJobCommands) {
+        __this__postJobCommands.add(new CommandObject(other_element));
+      }
+      this.postJobCommands = __this__postJobCommands;
+    }
+  }
+
+  public ApplicationDeploymentDescription deepCopy() {
+    return new ApplicationDeploymentDescription(this);
+  }
+
+  @Override
+  public void clear() {
+    this.appDeploymentId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.appModuleId = null;
+    this.computeHostId = null;
+    this.executablePath = null;
+    this.parallelism = org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType.SERIAL;
+
+    this.appDeploymentDescription = null;
+    this.moduleLoadCmds = null;
+    this.libPrependPaths = null;
+    this.libAppendPaths = null;
+    this.setEnvironment = null;
+    this.preJobCommands = null;
+    this.postJobCommands = null;
+  }
+
+  public String getAppDeploymentId() {
+    return this.appDeploymentId;
+  }
+
+  public ApplicationDeploymentDescription setAppDeploymentId(String appDeploymentId) {
+    this.appDeploymentId = appDeploymentId;
+    return this;
+  }
+
+  public void unsetAppDeploymentId() {
+    this.appDeploymentId = null;
+  }
+
+  /** Returns true if field appDeploymentId is set (has been assigned a value) and false otherwise */
+  public boolean isSetAppDeploymentId() {
+    return this.appDeploymentId != null;
+  }
+
+  public void setAppDeploymentIdIsSet(boolean value) {
+    if (!value) {
+      this.appDeploymentId = null;
+    }
+  }
+
+  public String getAppModuleId() {
+    return this.appModuleId;
+  }
+
+  public ApplicationDeploymentDescription setAppModuleId(String appModuleId) {
+    this.appModuleId = appModuleId;
+    return this;
+  }
+
+  public void unsetAppModuleId() {
+    this.appModuleId = null;
+  }
+
+  /** Returns true if field appModuleId is set (has been assigned a value) and false otherwise */
+  public boolean isSetAppModuleId() {
+    return this.appModuleId != null;
+  }
+
+  public void setAppModuleIdIsSet(boolean value) {
+    if (!value) {
+      this.appModuleId = null;
+    }
+  }
+
+  public String getComputeHostId() {
+    return this.computeHostId;
+  }
+
+  public ApplicationDeploymentDescription setComputeHostId(String computeHostId) {
+    this.computeHostId = computeHostId;
+    return this;
+  }
+
+  public void unsetComputeHostId() {
+    this.computeHostId = null;
+  }
+
+  /** Returns true if field computeHostId is set (has been assigned a value) and false otherwise */
+  public boolean isSetComputeHostId() {
+    return this.computeHostId != null;
+  }
+
+  public void setComputeHostIdIsSet(boolean value) {
+    if (!value) {
+      this.computeHostId = null;
+    }
+  }
+
+  public String getExecutablePath() {
+    return this.executablePath;
+  }
+
+  public ApplicationDeploymentDescription setExecutablePath(String executablePath) {
+    this.executablePath = executablePath;
+    return this;
+  }
+
+  public void unsetExecutablePath() {
+    this.executablePath = null;
+  }
+
+  /** Returns true if field executablePath is set (has been assigned a value) and false otherwise */
+  public boolean isSetExecutablePath() {
+    return this.executablePath != null;
+  }
+
+  public void setExecutablePathIsSet(boolean value) {
+    if (!value) {
+      this.executablePath = null;
+    }
+  }
+
+  /**
+   * 
+   * @see ApplicationParallelismType
+   */
+  public ApplicationParallelismType getParallelism() {
+    return this.parallelism;
+  }
+
+  /**
+   * 
+   * @see ApplicationParallelismType
+   */
+  public ApplicationDeploymentDescription setParallelism(ApplicationParallelismType parallelism) {
+    this.parallelism = parallelism;
+    return this;
+  }
+
+  public void unsetParallelism() {
+    this.parallelism = null;
+  }
+
+  /** Returns true if field parallelism is set (has been assigned a value) and false otherwise */
+  public boolean isSetParallelism() {
+    return this.parallelism != null;
+  }
+
+  public void setParallelismIsSet(boolean value) {
+    if (!value) {
+      this.parallelism = null;
+    }
+  }
+
+  public String getAppDeploymentDescription() {
+    return this.appDeploymentDescription;
+  }
+
+  public ApplicationDeploymentDescription setAppDeploymentDescription(String appDeploymentDescription) {
+    this.appDeploymentDescription = appDeploymentDescription;
+    return this;
+  }
+
+  public void unsetAppDeploymentDescription() {
+    this.appDeploymentDescription = null;
+  }
+
+  /** Returns true if field appDeploymentDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetAppDeploymentDescription() {
+    return this.appDeploymentDescription != null;
+  }
+
+  public void setAppDeploymentDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.appDeploymentDescription = null;
+    }
+  }
+
+  public int getModuleLoadCmdsSize() {
+    return (this.moduleLoadCmds == null) ? 0 : this.moduleLoadCmds.size();
+  }
+
+  public java.util.Iterator<CommandObject> getModuleLoadCmdsIterator() {
+    return (this.moduleLoadCmds == null) ? null : this.moduleLoadCmds.iterator();
+  }
+
+  public void addToModuleLoadCmds(CommandObject elem) {
+    if (this.moduleLoadCmds == null) {
+      this.moduleLoadCmds = new ArrayList<CommandObject>();
+    }
+    this.moduleLoadCmds.add(elem);
+  }
+
+  public List<CommandObject> getModuleLoadCmds() {
+    return this.moduleLoadCmds;
+  }
+
+  public ApplicationDeploymentDescription setModuleLoadCmds(List<CommandObject> moduleLoadCmds) {
+    this.moduleLoadCmds = moduleLoadCmds;
+    return this;
+  }
+
+  public void unsetModuleLoadCmds() {
+    this.moduleLoadCmds = null;
+  }
+
+  /** Returns true if field moduleLoadCmds is set (has been assigned a value) and false otherwise */
+  public boolean isSetModuleLoadCmds() {
+    return this.moduleLoadCmds != null;
+  }
+
+  public void setModuleLoadCmdsIsSet(boolean value) {
+    if (!value) {
+      this.moduleLoadCmds = null;
+    }
+  }
+
+  public int getLibPrependPathsSize() {
+    return (this.libPrependPaths == null) ? 0 : this.libPrependPaths.size();
+  }
+
+  public java.util.Iterator<SetEnvPaths> getLibPrependPathsIterator() {
+    return (this.libPrependPaths == null) ? null : this.libPrependPaths.iterator();
+  }
+
+  public void addToLibPrependPaths(SetEnvPaths elem) {
+    if (this.libPrependPaths == null) {
+      this.libPrependPaths = new ArrayList<SetEnvPaths>();
+    }
+    this.libPrependPaths.add(elem);
+  }
+
+  public List<SetEnvPaths> getLibPrependPaths() {
+    return this.libPrependPaths;
+  }
+
+  public ApplicationDeploymentDescription setLibPrependPaths(List<SetEnvPaths> libPrependPaths) {
+    this.libPrependPaths = libPrependPaths;
+    return this;
+  }
+
+  public void unsetLibPrependPaths() {
+    this.libPrependPaths = null;
+  }
+
+  /** Returns true if field libPrependPaths is set (has been assigned a value) and false otherwise */
+  public boolean isSetLibPrependPaths() {
+    return this.libPrependPaths != null;
+  }
+
+  public void setLibPrependPathsIsSet(boolean value) {
+    if (!value) {
+      this.libPrependPaths = null;
+    }
+  }
+
+  public int getLibAppendPathsSize() {
+    return (this.libAppendPaths == null) ? 0 : this.libAppendPaths.size();
+  }
+
+  public java.util.Iterator<SetEnvPaths> getLibAppendPathsIterator() {
+    return (this.libAppendPaths == null) ? null : this.libAppendPaths.iterator();
+  }
+
+  public void addToLibAppendPaths(SetEnvPaths elem) {
+    if (this.libAppendPaths == null) {
+      this.libAppendPaths = new ArrayList<SetEnvPaths>();
+    }
+    this.libAppendPaths.add(elem);
+  }
+
+  public List<SetEnvPaths> getLibAppendPaths() {
+    return this.libAppendPaths;
+  }
+
+  public ApplicationDeploymentDescription setLibAppendPaths(List<SetEnvPaths> libAppendPaths) {
+    this.libAppendPaths = libAppendPaths;
+    return this;
+  }
+
+  public void unsetLibAppendPaths() {
+    this.libAppendPaths = null;
+  }
+
+  /** Returns true if field libAppendPaths is set (has been assigned a value) and false otherwise */
+  public boolean isSetLibAppendPaths() {
+    return this.libAppendPaths != null;
+  }
+
+  public void setLibAppendPathsIsSet(boolean value) {
+    if (!value) {
+      this.libAppendPaths = null;
+    }
+  }
+
+  public int getSetEnvironmentSize() {
+    return (this.setEnvironment == null) ? 0 : this.setEnvironment.size();
+  }
+
+  public java.util.Iterator<SetEnvPaths> getSetEnvironmentIterator() {
+    return (this.setEnvironment == null) ? null : this.setEnvironment.iterator();
+  }
+
+  public void addToSetEnvironment(SetEnvPaths elem) {
+    if (this.setEnvironment == null) {
+      this.setEnvironment = new ArrayList<SetEnvPaths>();
+    }
+    this.setEnvironment.add(elem);
+  }
+
+  public List<SetEnvPaths> getSetEnvironment() {
+    return this.setEnvironment;
+  }
+
+  public ApplicationDeploymentDescription setSetEnvironment(List<SetEnvPaths> setEnvironment) {
+    this.setEnvironment = setEnvironment;
+    return this;
+  }
+
+  public void unsetSetEnvironment() {
+    this.setEnvironment = null;
+  }
+
+  /** Returns true if field setEnvironment is set (has been assigned a value) and false otherwise */
+  public boolean isSetSetEnvironment() {
+    return this.setEnvironment != null;
+  }
+
+  public void setSetEnvironmentIsSet(boolean value) {
+    if (!value) {
+      this.setEnvironment = null;
+    }
+  }
+
+  public int getPreJobCommandsSize() {
+    return (this.preJobCommands == null) ? 0 : this.preJobCommands.size();
+  }
+
+  public java.util.Iterator<CommandObject> getPreJobCommandsIterator() {
+    return (this.preJobCommands == null) ? null : this.preJobCommands.iterator();
+  }
+
+  public void addToPreJobCommands(CommandObject elem) {
+    if (this.preJobCommands == null) {
+      this.preJobCommands = new ArrayList<CommandObject>();
+    }
+    this.preJobCommands.add(elem);
+  }
+
+  public List<CommandObject> getPreJobCommands() {
+    return this.preJobCommands;
+  }
+
+  public ApplicationDeploymentDescription setPreJobCommands(List<CommandObject> preJobCommands) {
+    this.preJobCommands = preJobCommands;
+    return this;
+  }
+
+  public void unsetPreJobCommands() {
+    this.preJobCommands = null;
+  }
+
+  /** Returns true if field preJobCommands is set (has been assigned a value) and false otherwise */
+  public boolean isSetPreJobCommands() {
+    return this.preJobCommands != null;
+  }
+
+  public void setPreJobCommandsIsSet(boolean value) {
+    if (!value) {
+      this.preJobCommands = null;
+    }
+  }
+
+  public int getPostJobCommandsSize() {
+    return (this.postJobCommands == null) ? 0 : this.postJobCommands.size();
+  }
+
+  public java.util.Iterator<CommandObject> getPostJobCommandsIterator() {
+    return (this.postJobCommands == null) ? null : this.postJobCommands.iterator();
+  }
+
+  public void addToPostJobCommands(CommandObject elem) {
+    if (this.postJobCommands == null) {
+      this.postJobCommands = new ArrayList<CommandObject>();
+    }
+    this.postJobCommands.add(elem);
+  }
+
+  public List<CommandObject> getPostJobCommands() {
+    return this.postJobCommands;
+  }
+
+  public ApplicationDeploymentDescription setPostJobCommands(List<CommandObject> postJobCommands) {
+    this.postJobCommands = postJobCommands;
+    return this;
+  }
+
+  public void unsetPostJobCommands() {
+    this.postJobCommands = null;
+  }
+
+  /** Returns true if field postJobCommands is set (has been assigned a value) and false otherwise */
+  public boolean isSetPostJobCommands() {
+    return this.postJobCommands != null;
+  }
+
+  public void setPostJobCommandsIsSet(boolean value) {
+    if (!value) {
+      this.postJobCommands = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case APP_DEPLOYMENT_ID:
+      if (value == null) {
+        unsetAppDeploymentId();
+      } else {
+        setAppDeploymentId((String)value);
+      }
+      break;
+
+    case APP_MODULE_ID:
+      if (value == null) {
+        unsetAppModuleId();
+      } else {
+        setAppModuleId((String)value);
+      }
+      break;
+
+    case COMPUTE_HOST_ID:
+      if (value == null) {
+        unsetComputeHostId();
+      } else {
+        setComputeHostId((String)value);
+      }
+      break;
+
+    case EXECUTABLE_PATH:
+      if (value == null) {
+        unsetExecutablePath();
+      } else {
+        setExecutablePath((String)value);
+      }
+      break;
+
+    case PARALLELISM:
+      if (value == null) {
+        unsetParallelism();
+      } else {
+        setParallelism((ApplicationParallelismType)value);
+      }
+      break;
+
+    case APP_DEPLOYMENT_DESCRIPTION:
+      if (value == null) {
+        unsetAppDeploymentDescription();
+      } else {
+        setAppDeploymentDescription((String)value);
+      }
+      break;
+
+    case MODULE_LOAD_CMDS:
+      if (value == null) {
+        unsetModuleLoadCmds();
+      } else {
+        setModuleLoadCmds((List<CommandObject>)value);
+      }
+      break;
+
+    case LIB_PREPEND_PATHS:
+      if (value == null) {
+        unsetLibPrependPaths();
+      } else {
+        setLibPrependPaths((List<SetEnvPaths>)value);
+      }
+      break;
+
+    case LIB_APPEND_PATHS:
+      if (value == null) {
+        unsetLibAppendPaths();
+      } else {
+        setLibAppendPaths((List<SetEnvPaths>)value);
+      }
+      break;
+
+    case SET_ENVIRONMENT:
+      if (value == null) {
+        unsetSetEnvironment();
+      } else {
+        setSetEnvironment((List<SetEnvPaths>)value);
+      }
+      break;
+
+    case PRE_JOB_COMMANDS:
+      if (value == null) {
+        unsetPreJobCommands();
+      } else {
+        setPreJobCommands((List<CommandObject>)value);
+      }
+      break;
+
+    case POST_JOB_COMMANDS:
+      if (value == null) {
+        unsetPostJobCommands();
+      } else {
+        setPostJobCommands((List<CommandObject>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case APP_DEPLOYMENT_ID:
+      return getAppDeploymentId();
+
+    case APP_MODULE_ID:
+      return getAppModuleId();
+
+    case COMPUTE_HOST_ID:
+      return getComputeHostId();
+
+    case EXECUTABLE_PATH:
+      return getExecutablePath();
+
+    case PARALLELISM:
+      return getParallelism();
+
+    case APP_DEPLOYMENT_DESCRIPTION:
+      return getAppDeploymentDescription();
+
+    case MODULE_LOAD_CMDS:
+      return getModuleLoadCmds();
+
+    case LIB_PREPEND_PATHS:
+      return getLibPrependPaths();
+
+    case LIB_APPEND_PATHS:
+      return getLibAppendPaths();
+
+    case SET_ENVIRONMENT:
+      return getSetEnvironment();
+
+    case PRE_JOB_COMMANDS:
+      return getPreJobCommands();
+
+    case POST_JOB_COMMANDS:
+      return getPostJobCommands();
+
+    }
+    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 APP_DEPLOYMENT_ID:
+      return isSetAppDeploymentId();
+    case APP_MODULE_ID:
+      return isSetAppModuleId();
+    case COMPUTE_HOST_ID:
+      return isSetComputeHostId();
+    case EXECUTABLE_PATH:
+      return isSetExecutablePath();
+    case PARALLELISM:
+      return isSetParallelism();
+    case APP_DEPLOYMENT_DESCRIPTION:
+      return isSetAppDeploymentDescription();
+    case MODULE_LOAD_CMDS:
+      return isSetModuleLoadCmds();
+    case LIB_PREPEND_PATHS:
+      return isSetLibPrependPaths();
+    case LIB_APPEND_PATHS:
+      return isSetLibAppendPaths();
+    case SET_ENVIRONMENT:
+      return isSetSetEnvironment();
+    case PRE_JOB_COMMANDS:
+      return isSetPreJobCommands();
+    case POST_JOB_COMMANDS:
+      return isSetPostJobCommands();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ApplicationDeploymentDescription)
+      return this.equals((ApplicationDeploymentDescription)that);
+    return false;
+  }
+
+  public boolean equals(ApplicationDeploymentDescription that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_appDeploymentId = true && this.isSetAppDeploymentId();
+    boolean that_present_appDeploymentId = true && that.isSetAppDeploymentId();
+    if (this_present_appDeploymentId || that_present_appDeploymentId) {
+      if (!(this_present_appDeploymentId && that_present_appDeploymentId))
+        return false;
+      if (!this.appDeploymentId.equals(that.appDeploymentId))
+        return false;
+    }
+
+    boolean this_present_appModuleId = true && this.isSetAppModuleId();
+    boolean that_present_appModuleId = true && that.isSetAppModuleId();
+    if (this_present_appModuleId || that_present_appModuleId) {
+      if (!(this_present_appModuleId && that_present_appModuleId))
+        return false;
+      if (!this.appModuleId.equals(that.appModuleId))
+        return false;
+    }
+
+    boolean this_present_computeHostId = true && this.isSetComputeHostId();
+    boolean that_present_computeHostId = true && that.isSetComputeHostId();
+    if (this_present_computeHostId || that_present_computeHostId) {
+      if (!(this_present_computeHostId && that_present_computeHostId))
+        return false;
+      if (!this.computeHostId.equals(that.computeHostId))
+        return false;
+    }
+
+    boolean this_present_executablePath = true && this.isSetExecutablePath();
+    boolean that_present_executablePath = true && that.isSetExecutablePath();
+    if (this_present_executablePath || that_present_executablePath) {
+      if (!(this_present_executablePath && that_present_executablePath))
+        return false;
+      if (!this.executablePath.equals(that.executablePath))
+        return false;
+    }
+
+    boolean this_present_parallelism = true && this.isSetParallelism();
+    boolean that_present_parallelism = true && that.isSetParallelism();
+    if (this_present_parallelism || that_present_parallelism) {
+      if (!(this_present_parallelism && that_present_parallelism))
+        return false;
+      if (!this.parallelism.equals(that.parallelism))
+        return false;
+    }
+
+    boolean this_present_appDeploymentDescription = true && this.isSetAppDeploymentDescription();
+    boolean that_present_appDeploymentDescription = true && that.isSetAppDeploymentDescription();
+    if (this_present_appDeploymentDescription || that_present_appDeploymentDescription) {
+      if (!(this_present_appDeploymentDescription && that_present_appDeploymentDescription))
+        return false;
+      if (!this.appDeploymentDescription.equals(that.appDeploymentDescription))
+        return false;
+    }
+
+    boolean this_present_moduleLoadCmds = true && this.isSetModuleLoadCmds();
+    boolean that_present_moduleLoadCmds = true && that.isSetModuleLoadCmds();
+    if (this_present_moduleLoadCmds || that_present_moduleLoadCmds) {
+      if (!(this_present_moduleLoadCmds && that_present_moduleLoadCmds))
+        return false;
+      if (!this.moduleLoadCmds.equals(that.moduleLoadCmds))
+        return false;
+    }
+
+    boolean this_present_libPrependPaths = true && this.isSetLibPrependPaths();
+    boolean that_present_libPrependPaths = true && that.isSetLibPrependPaths();
+    if (this_present_libPrependPaths || that_present_libPrependPaths) {
+      if (!(this_present_libPrependPaths && that_present_libPrependPaths))
+        return false;
+      if (!this.libPrependPaths.equals(that.libPrependPaths))
+        return false;
+    }
+
+    boolean this_present_libAppendPaths = true && this.isSetLibAppendPaths();
+    boolean that_present_libAppendPaths = true && that.isSetLibAppendPaths();
+    if (this_present_libAppendPaths || that_present_libAppendPaths) {
+      if (!(this_present_libAppendPaths && that_present_libAppendPaths))
+        return false;
+      if (!this.libAppendPaths.equals(that.libAppendPaths))
+        return false;
+    }
+
+    boolean this_present_setEnvironment = true && this.isSetSetEnvironment();
+    boolean that_present_setEnvironment = true && that.isSetSetEnvironment();
+    if (this_present_setEnvironment || that_present_setEnvironment) {
+      if (!(this_present_setEnvironment && that_present_setEnvironment))
+        return false;
+      if (!this.setEnvironment.equals(that.setEnvironment))
+        return false;
+    }
+
+    boolean this_present_preJobCommands = true && this.isSetPreJobCommands();
+    boolean that_present_preJobCommands = true && that.isSetPreJobCommands();
+    if (this_present_preJobCommands || that_present_preJobCommands) {
+      if (!(this_present_preJobCommands && that_present_preJobCommands))
+        return false;
+      if (!this.preJobCommands.equals(that.preJobCommands))
+        return false;
+    }
+
+    boolean this_present_postJobCommands = true && this.isSetPostJobCommands();
+    boolean that_present_postJobCommands = true && that.isSetPostJobCommands();
+    if (this_present_postJobCommands || that_present_postJobCommands) {
+      if (!(this_present_postJobCommands && that_present_postJobCommands))
+        return false;
+      if (!this.postJobCommands.equals(that.postJobCommands))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_appDeploymentId = true && (isSetAppDeploymentId());
+    list.add(present_appDeploymentId);
+    if (present_appDeploymentId)
+      list.add(appDeploymentId);
+
+    boolean present_appModuleId = true && (isSetAppModuleId());
+    list.add(present_appModuleId);
+    if (present_appModuleId)
+      list.add(appModuleId);
+
+    boolean present_computeHostId = true && (isSetComputeHostId());
+    list.add(present_computeHostId);
+    if (present_computeHostId)
+      list.add(computeHostId);
+
+    boolean present_executablePath = true && (isSetExecutablePath());
+    list.add(present_executablePath);
+    if (present_executablePath)
+      list.add(executablePath);
+
+    boolean present_parallelism = true && (isSetParallelism());
+    list.add(present_parallelism);
+    if (present_parallelism)
+      list.add(parallelism.getValue());
+
+    boolean present_appDeploymentDescription = true && (isSetAppDeploymentDescription());
+    list.add(present_appDeploymentDescription);
+    if (present_appDeploymentDescription)
+      list.add(appDeploymentDescription);
+
+    boolean present_moduleLoadCmds = true && (isSetModuleLoadCmds());
+    list.add(present_moduleLoadCmds);
+    if (present_moduleLoadCmds)
+      list.add(moduleLoadCmds);
+
+    boolean present_libPrependPaths = true && (isSetLibPrependPaths());
+    list.add(present_libPrependPaths);
+    if (present_libPrependPaths)
+      list.add(libPrependPaths);
+
+    boolean present_libAppendPaths = true && (isSetLibAppendPaths());
+    list.add(present_libAppendPaths);
+    if (present_libAppendPaths)
+      list.add(libAppendPaths);
+
+    boolean present_setEnvironment = true && (isSetSetEnvironment());
+    list.add(present_setEnvironment);
+    if (present_setEnvironment)
+      list.add(setEnvironment);
+
+    boolean present_preJobCommands = true && (isSetPreJobCommands());
+    list.add(present_preJobCommands);
+    if (present_preJobCommands)
+      list.add(preJobCommands);
+
+    boolean present_postJobCommands = true && (isSetPostJobCommands());
+    list.add(present_postJobCommands);
+    if (present_postJobCommands)
+      list.add(postJobCommands);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ApplicationDeploymentDescription other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetAppDeploymentId()).compareTo(other.isSetAppDeploymentId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAppDeploymentId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appDeploymentId, other.appDeploymentId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAppModuleId()).compareTo(other.isSetAppModuleId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAppModuleId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appModuleId, other.appModuleId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetComputeHostId()).compareTo(other.isSetComputeHostId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetComputeHostId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeHostId, other.computeHostId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExecutablePath()).compareTo(other.isSetExecutablePath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExecutablePath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executablePath, other.executablePath);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetParallelism()).compareTo(other.isSetParallelism());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetParallelism()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parallelism, other.parallelism);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAppDeploymentDescription()).compareTo(other.isSetAppDeploymentDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAppDeploymentDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appDeploymentDescription, other.appDeploymentDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetModuleLoadCmds()).compareTo(other.isSetModuleLoadCmds());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetModuleLoadCmds()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.moduleLoadCmds, other.moduleLoadCmds);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLibPrependPaths()).compareTo(other.isSetLibPrependPaths());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLibPrependPaths()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.libPrependPaths, other.libPrependPaths);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLibAppendPaths()).compareTo(other.isSetLibAppendPaths());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLibAppendPaths()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.libAppendPaths, other.libAppendPaths);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSetEnvironment()).compareTo(other.isSetSetEnvironment());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSetEnvironment()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.setEnvironment, other.setEnvironment);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPreJobCommands()).compareTo(other.isSetPreJobCommands());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPreJobCommands()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preJobCommands, other.preJobCommands);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPostJobCommands()).compareTo(other.isSetPostJobCommands());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPostJobCommands()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.postJobCommands, other.postJobCommands);
+      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("ApplicationDeploymentDescription(");
+    boolean first = true;
+
+    sb.append("appDeploymentId:");
+    if (this.appDeploymentId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.appDeploymentId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("appModuleId:");
+    if (this.appModuleId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.appModuleId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("computeHostId:");
+    if (this.computeHostId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.computeHostId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("executablePath:");
+    if (this.executablePath == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.executablePath);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("parallelism:");
+    if (this.parallelism == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.parallelism);
+    }
+    first = false;
+    if (isSetAppDeploymentDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("appDeploymentDescription:");
+      if (this.appDeploymentDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.appDeploymentDescription);
+      }
+      first = false;
+    }
+    if (isSetModuleLoadCmds()) {
+      if (!first) sb.append(", ");
+      sb.append("moduleLoadCmds:");
+      if (this.moduleLoadCmds == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.moduleLoadCmds);
+      }
+      first = false;
+    }
+    if (isSetLibPrependPaths()) {
+      if (!first) sb.append(", ");
+      sb.append("libPrependPaths:");
+      if (this.libPrependPaths == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.libPrependPaths);
+      }
+      first = false;
+    }
+    if (isSetLibAppendPaths()) {
+      if (!first) sb.append(", ");
+      sb.append("libAppendPaths:");
+      if (this.libAppendPaths == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.libAppendPaths);
+      }
+      first = false;
+    }
+    if (isSetSetEnvironment()) {
+      if (!first) sb.append(", ");
+      sb.append("setEnvironment:");
+      if (this.setEnvironment == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.setEnvironment);
+      }
+      first = false;
+    }
+    if (isSetPreJobCommands()) {
+      if (!first) sb.append(", ");
+      sb.append("preJobCommands:");
+      if (this.preJobCommands == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.preJobCommands);
+      }
+      first = false;
+    }
+    if (isSetPostJobCommands()) {
+      if (!first) sb.append(", ");
+      sb.append("postJobCommands:");
+      if (this.postJobCommands == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.postJobCommands);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (appDeploymentId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'appDeploymentId' was not present! Struct: " + toString());
+    }
+    if (appModuleId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'appModuleId' was not present! Struct: " + toString());
+    }
+    if (computeHostId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeHostId' was not present! Struct: " + toString());
+    }
+    if (executablePath == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'executablePath' was not present! Struct: " + toString());
+    }
+    if (parallelism == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'parallelism' was not present! 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 ApplicationDeploymentDescriptionStandardSchemeFactory implements SchemeFactory {
+    public ApplicationDeploymentDescriptionStandardScheme getScheme() {
+      return new ApplicationDeploymentDescriptionStandardScheme();
+    }
+  }
+
+  private static class ApplicationDeploymentDescriptionStandardScheme extends StandardScheme<ApplicationDeploymentDescription> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ApplicationDeploymentDescription 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: // APP_DEPLOYMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.appDeploymentId = iprot.readString();
+              struct.setAppDeploymentIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // APP_MODULE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.appModuleId = iprot.readString();
+              struct.setAppModuleIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // COMPUTE_HOST_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.computeHostId = iprot.readString();
+              struct.setComputeHostIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // EXECUTABLE_PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.executablePath = iprot.readString();
+              struct.setExecutablePathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // PARALLELISM
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.parallelism = org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType.findByValue(iprot.readI32());
+              struct.setParallelismIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // APP_DEPLOYMENT_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.appDeploymentDescription = iprot.readString();
+              struct.setAppDeploymentDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // MODULE_LOAD_CMDS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.moduleLoadCmds = new ArrayList<CommandObject>(_list0.size);
+                CommandObject _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new CommandObject();
+                  _elem1.read(iprot);
+                  struct.moduleLoadCmds.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setModuleLoadCmdsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // LIB_PREPEND_PATHS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.libPrependPaths = new ArrayList<SetEnvPaths>(_list3.size);
+                SetEnvPaths _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = new SetEnvPaths();
+                  _elem4.read(iprot);
+                  struct.libPrependPaths.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
+              struct.setLibPrependPathsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // LIB_APPEND_PATHS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list6 = iprot.readListBegin();
+                struct.libAppendPaths = new ArrayList<SetEnvPaths>(_list6.size);
+                SetEnvPaths _elem7;
+                for (int _i8 = 0; _i8 < _list6.size; ++_i8)
+                {
+                  _elem7 = new SetEnvPaths();
+                  _elem7.read(iprot);
+                  struct.libAppendPaths.add(_elem7);
+                }
+                iprot.readListEnd();
+              }
+              struct.setLibAppendPathsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // SET_ENVIRONMENT
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list9 = iprot.readListBegin();
+                struct.setEnvironment = new ArrayList<SetEnvPaths>(_list9.size);
+                SetEnvPaths _elem10;
+                for (int _i11 = 0; _i11 < _list9.size; ++_i11)
+                {
+                  _elem10 = new SetEnvPaths();
+                  _elem10.read(iprot);
+                  struct.setEnvironment.add(_elem10);
+                }
+                iprot.readListEnd();
+              }
+              struct.setSetEnvironmentIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // PRE_JOB_COMMANDS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list12 = iprot.readListBegin();
+                struct.preJobCommands = new ArrayList<CommandObject>(_list12.size);
+                CommandObject _elem13;
+                for (int _i14 = 0; _i14 < _list12.size; ++_i14)
+                {
+                  _elem13 = new CommandObject();
+                  _elem13.read(iprot);
+                  struct.preJobCommands.add(_elem13);
+                }
+                iprot.readListEnd();
+              }
+              struct.setPreJobCommandsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // POST_JOB_COMMANDS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list15 = iprot.readListBegin();
+                struct.postJobCommands = new ArrayList<CommandObject>(_list15.size);
+                CommandObject _elem16;
+                for (int _i17 = 0; _i17 < _list15.size; ++_i17)
+                {
+                  _elem16 = new CommandObject();
+                  _elem16.read(iprot);
+                  struct.postJobCommands.add(_elem16);
+                }
+                iprot.readListEnd();
+              }
+              struct.setPostJobCommandsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ApplicationDeploymentDescription struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.appDeploymentId != null) {
+        oprot.writeFieldBegin(APP_DEPLOYMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.appDeploymentId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.appModuleId != null) {
+        oprot.writeFieldBegin(APP_MODULE_ID_FIELD_DESC);
+        oprot.writeString(struct.appModuleId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.computeHostId != null) {
+        oprot.writeFieldBegin(COMPUTE_HOST_ID_FIELD_DESC);
+        oprot.writeString(struct.computeHostId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.executablePath != null) {
+        oprot.writeFieldBegin(EXECUTABLE_PATH_FIELD_DESC);
+        oprot.writeString(struct.executablePath);
+        oprot.writeFieldEnd();
+      }
+      if (struct.parallelism != null) {
+        oprot.writeFieldBegin(PARALLELISM_FIELD_DESC);
+        oprot.writeI32(struct.parallelism.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.appDeploymentDescription != null) {
+        if (struct.isSetAppDeploymentDescription()) {
+          oprot.writeFieldBegin(APP_DEPLOYMENT_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.appDeploymentDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.moduleLoadCmds != null) {
+        if (struct.isSetModuleLoadCmds()) {
+          oprot.writeFieldBegin(MODULE_LOAD_CMDS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.moduleLoadCmds.size()));
+            for (CommandObject _iter18 : struct.moduleLoadCmds)
+            {
+              _iter18.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.libPrependPaths != null) {
+        if (struct.isSetLibPrependPaths()) {
+          oprot.writeFieldBegin(LIB_PREPEND_PATHS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.libPrependPaths.size()));
+            for (SetEnvPaths _iter19 : struct.libPrependPaths)
+            {
+              _iter19.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.libAppendPaths != null) {
+        if (struct.isSetLibAppendPaths()) {
+          oprot.writeFieldBegin(LIB_APPEND_PATHS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.libAppendPaths.size()));
+            for (SetEnvPaths _iter20 : struct.libAppendPaths)
+            {
+              _iter20.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.setEnvironment != null) {
+        if (struct.isSetSetEnvironment()) {
+          oprot.writeFieldBegin(SET_ENVIRONMENT_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.setEnvironment.size()));
+            for (SetEnvPaths _iter21 : struct.setEnvironment)
+            {
+              _iter21.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.preJobCommands != null) {
+        if (struct.isSetPreJobCommands()) {
+          oprot.writeFieldBegin(PRE_JOB_COMMANDS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.preJobCommands.size()));
+            for (CommandObject _iter22 : struct.preJobCommands)
+            {
+              _iter22.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.postJobCommands != null) {
+        if (struct.isSetPostJobCommands()) {
+          oprot.writeFieldBegin(POST_JOB_COMMANDS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.postJobCommands.size()));
+            for (CommandObject _iter23 : struct.postJobCommands)
+            {
+              _iter23.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ApplicationDeploymentDescriptionTupleSchemeFactory implements SchemeFactory {
+    public ApplicationDeploymentDescriptionTupleScheme getScheme() {
+      return new ApplicationDeploymentDescriptionTupleScheme();
+    }
+  }
+
+  private static class ApplicationDeploymentDescriptionTupleScheme extends TupleScheme<ApplicationDeploymentDescription> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ApplicationDeploymentDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.appDeploymentId);
+      oprot.writeString(struct.appModuleId);
+      oprot.writeString(struct.computeHostId);
+      oprot.writeString(struct.executablePath);
+      oprot.writeI32(struct.parallelism.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetAppDeploymentDescription()) {
+        optionals.set(0);
+      }
+      if (struct.isSetModuleLoadCmds()) {
+        optionals.set(1);
+      }
+      if (struct.isSetLibPrependPaths()) {
+        optionals.set(2);
+      }
+      if (struct.isSetLibAppendPaths()) {
+        optionals.set(3);
+      }
+      if (struct.isSetSetEnvironment()) {
+        optionals.set(4);
+      }
+      if (struct.isSetPreJobCommands()) {
+        optionals.set(5);
+      }
+      if (struct.isSetPostJobCommands()) {
+        optionals.set(6);
+      }
+      oprot.writeBitSet(optionals, 7);
+      if (struct.isSetAppDeploymentDescription()) {
+        oprot.writeString(struct.appDeploymentDescription);
+      }
+      if (struct.isSetModuleLoadCmds()) {
+        {
+          oprot.writeI32(struct.moduleLoadCmds.size());
+          for (CommandObject _iter24 : struct.moduleLoadCmds)
+          {
+            _iter24.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetLibPrependPaths()) {
+        {
+          oprot.writeI32(struct.libPrependPaths.size());
+          for (SetEnvPaths _iter25 : struct.libPrependPaths)
+          {
+            _iter25.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetLibAppendPaths()) {
+        {
+          oprot.writeI32(struct.libAppendPaths.size());
+          for (SetEnvPaths _iter26 : struct.libAppendPaths)
+          {
+            _iter26.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetSetEnvironment()) {
+        {
+          oprot.writeI32(struct.setEnvironment.size());
+          for (SetEnvPaths _iter27 : struct.setEnvironment)
+          {
+            _iter27.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetPreJobCommands()) {
+        {
+          oprot.writeI32(struct.preJobCommands.size());
+          for (CommandObject _iter28 : struct.preJobCommands)
+          {
+            _iter28.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetPostJobCommands()) {
+        {
+          oprot.writeI32(struct.postJobCommands.size());
+          for (CommandObject _iter29 : struct.postJobCommands)
+          {
+            _iter29.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ApplicationDeploymentDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.appDeploymentId = iprot.readString();
+      struct.setAppDeploymentIdIsSet(true);
+      struct.appModuleId = iprot.readString();
+      struct.setAppModuleIdIsSet(true);
+      struct.computeHostId = iprot.readString();
+      struct.setComputeHostIdIsSet(true);
+      struct.executablePath = iprot.readString();
+      struct.setExecutablePathIsSet(true);
+      struct.parallelism = org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType.findByValue(iprot.readI32());
+      struct.setParallelismIsSet(true);
+      BitSet incoming = iprot.readBitSet(7);
+      if (incoming.get(0)) {
+        struct.appDeploymentDescription = iprot.readString();
+        struct.setAppDeploymentDescriptionIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TList _list30 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.moduleLoadCmds = new ArrayList<CommandObject>(_list30.size);
+          CommandObject _elem31;
+          for (int _i32 = 0; _i32 < _list30.size; ++_i32)
+          {
+            _elem31 = new CommandObject();
+            _elem31.read(iprot);
+            struct.moduleLoadCmds.add(_elem31);
+          }
+        }
+        struct.setModuleLoadCmdsIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list33 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.libPrependPaths = new ArrayList<SetEnvPaths>(_list33.size);
+          SetEnvPaths _elem34;
+          for (int _i35 = 0; _i35 < _list33.size; ++_i35)
+          {
+            _elem34 = new SetEnvPaths();
+            _elem34.read(iprot);
+            struct.libPrependPaths.add(_elem34);
+          }
+        }
+        struct.setLibPrependPathsIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list36 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.libAppendPaths = new ArrayList<SetEnvPaths>(_list36.size);
+          SetEnvPaths _elem37;
+          for (int _i38 = 0; _i38 < _list36.size; ++_i38)
+          {
+            _elem37 = new SetEnvPaths();
+            _elem37.read(iprot);
+            struct.libAppendPaths.add(_elem37);
+          }
+        }
+        struct.setLibAppendPathsIsSet(true);
+      }
+      if (incoming.get(4)) {
+        {
+          org.apache.thrift.protocol.TList _list39 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.setEnvironment = new ArrayList<SetEnvPaths>(_list39.size);
+          SetEnvPaths _elem40;
+          for (int _i41 = 0; _i41 < _list39.size; ++_i41)
+          {
+            _elem40 = new SetEnvPaths();
+            _elem40.read(iprot);
+            struct.setEnvironment.add(_elem40);
+          }
+        }
+        struct.setSetEnvironmentIsSet(true);
+      }
+      if (incoming.get(5)) {
+        {
+          org.apache.thrift.protocol.TList _list42 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.preJobCommands = new ArrayList<CommandObject>(_list42.size);
+          CommandObject _elem43;
+          for (int _i44 = 0; _i44 < _list42.size; ++_i44)
+          {
+            _elem43 = new CommandObject();
+            _elem43.read(iprot);
+            struct.preJobCommands.add(_elem43);
+          }
+        }
+        struct.setPreJobCommandsIsSet(true);
+      }
+      if (incoming.get(6)) {
+        {
+          org.apache.thrift.protocol.TList _list45 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.postJobCommands = new ArrayList<CommandObject>(_list45.size);
+          CommandObject _elem46;
+          for (int _i47 = 0; _i47 < _list45.size; ++_i47)
+          {
+            _elem46 = new CommandObject();
+            _elem46.read(iprot);
+            struct.postJobCommands.add(_elem46);
+          }
+        }
+        struct.setPostJobCommandsIsSet(true);
+      }
+    }
+  }
+
+}
+


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

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

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
new file mode 100644
index 0000000..9238ca8
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@ -0,0 +1,953 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Cloud Job Submission
+ * 
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmission, CloudJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<CloudJobSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CloudJobSubmission");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField NODE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField EXECUTABLE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("executableType", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField PROVIDER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("providerName", org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField USER_ACCOUNT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userAccountName", org.apache.thrift.protocol.TType.STRING, (short)6);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new CloudJobSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new CloudJobSubmissionTupleSchemeFactory());
+  }
+
+  public String jobSubmissionInterfaceId; // required
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol; // required
+  public String nodeId; // required
+  public String executableType; // required
+  /**
+   * 
+   * @see ProviderName
+   */
+  public ProviderName providerName; // required
+  public String userAccountName; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_SUBMISSION_INTERFACE_ID((short)1, "jobSubmissionInterfaceId"),
+    /**
+     * 
+     * @see org.apache.airavata.model.data.movement.SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    NODE_ID((short)3, "nodeId"),
+    EXECUTABLE_TYPE((short)4, "executableType"),
+    /**
+     * 
+     * @see ProviderName
+     */
+    PROVIDER_NAME((short)5, "providerName"),
+    USER_ACCOUNT_NAME((short)6, "userAccountName");
+
+    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: // JOB_SUBMISSION_INTERFACE_ID
+          return JOB_SUBMISSION_INTERFACE_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // NODE_ID
+          return NODE_ID;
+        case 4: // EXECUTABLE_TYPE
+          return EXECUTABLE_TYPE;
+        case 5: // PROVIDER_NAME
+          return PROVIDER_NAME;
+        case 6: // USER_ACCOUNT_NAME
+          return USER_ACCOUNT_NAME;
+        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
+  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.JOB_SUBMISSION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.data.movement.SecurityProtocol.class)));
+    tmpMap.put(_Fields.NODE_ID, new org.apache.thrift.meta_data.FieldMetaData("nodeId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXECUTABLE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("executableType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROVIDER_NAME, new org.apache.thrift.meta_data.FieldMetaData("providerName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ProviderName.class)));
+    tmpMap.put(_Fields.USER_ACCOUNT_NAME, new org.apache.thrift.meta_data.FieldMetaData("userAccountName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CloudJobSubmission.class, metaDataMap);
+  }
+
+  public CloudJobSubmission() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public CloudJobSubmission(
+    String jobSubmissionInterfaceId,
+    org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol,
+    String nodeId,
+    String executableType,
+    ProviderName providerName,
+    String userAccountName)
+  {
+    this();
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    this.securityProtocol = securityProtocol;
+    this.nodeId = nodeId;
+    this.executableType = executableType;
+    this.providerName = providerName;
+    this.userAccountName = userAccountName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public CloudJobSubmission(CloudJobSubmission other) {
+    if (other.isSetJobSubmissionInterfaceId()) {
+      this.jobSubmissionInterfaceId = other.jobSubmissionInterfaceId;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetNodeId()) {
+      this.nodeId = other.nodeId;
+    }
+    if (other.isSetExecutableType()) {
+      this.executableType = other.executableType;
+    }
+    if (other.isSetProviderName()) {
+      this.providerName = other.providerName;
+    }
+    if (other.isSetUserAccountName()) {
+      this.userAccountName = other.userAccountName;
+    }
+  }
+
+  public CloudJobSubmission deepCopy() {
+    return new CloudJobSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.nodeId = null;
+    this.executableType = null;
+    this.providerName = null;
+    this.userAccountName = null;
+  }
+
+  public String getJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId;
+  }
+
+  public CloudJobSubmission setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    return this;
+  }
+
+  public void unsetJobSubmissionInterfaceId() {
+    this.jobSubmissionInterfaceId = null;
+  }
+
+  /** Returns true if field jobSubmissionInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId != null;
+  }
+
+  public void setJobSubmissionInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public CloudJobSubmission setSecurityProtocol(org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+    return this;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public String getNodeId() {
+    return this.nodeId;
+  }
+
+  public CloudJobSubmission setNodeId(String nodeId) {
+    this.nodeId = nodeId;
+    return this;
+  }
+
+  public void unsetNodeId() {
+    this.nodeId = null;
+  }
+
+  /** Returns true if field nodeId is set (has been assigned a value) and false otherwise */
+  public boolean isSetNodeId() {
+    return this.nodeId != null;
+  }
+
+  public void setNodeIdIsSet(boolean value) {
+    if (!value) {
+      this.nodeId = null;
+    }
+  }
+
+  public String getExecutableType() {
+    return this.executableType;
+  }
+
+  public CloudJobSubmission setExecutableType(String executableType) {
+    this.executableType = executableType;
+    return this;
+  }
+
+  public void unsetExecutableType() {
+    this.executableType = null;
+  }
+
+  /** Returns true if field executableType is set (has been assigned a value) and false otherwise */
+  public boolean isSetExecutableType() {
+    return this.executableType != null;
+  }
+
+  public void setExecutableTypeIsSet(boolean value) {
+    if (!value) {
+      this.executableType = null;
+    }
+  }
+
+  /**
+   * 
+   * @see ProviderName
+   */
+  public ProviderName getProviderName() {
+    return this.providerName;
+  }
+
+  /**
+   * 
+   * @see ProviderName
+   */
+  public CloudJobSubmission setProviderName(ProviderName providerName) {
+    this.providerName = providerName;
+    return this;
+  }
+
+  public void unsetProviderName() {
+    this.providerName = null;
+  }
+
+  /** Returns true if field providerName is set (has been assigned a value) and false otherwise */
+  public boolean isSetProviderName() {
+    return this.providerName != null;
+  }
+
+  public void setProviderNameIsSet(boolean value) {
+    if (!value) {
+      this.providerName = null;
+    }
+  }
+
+  public String getUserAccountName() {
+    return this.userAccountName;
+  }
+
+  public CloudJobSubmission setUserAccountName(String userAccountName) {
+    this.userAccountName = userAccountName;
+    return this;
+  }
+
+  public void unsetUserAccountName() {
+    this.userAccountName = null;
+  }
+
+  /** Returns true if field userAccountName is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserAccountName() {
+    return this.userAccountName != null;
+  }
+
+  public void setUserAccountNameIsSet(boolean value) {
+    if (!value) {
+      this.userAccountName = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      if (value == null) {
+        unsetJobSubmissionInterfaceId();
+      } else {
+        setJobSubmissionInterfaceId((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((org.apache.airavata.model.data.movement.SecurityProtocol)value);
+      }
+      break;
+
+    case NODE_ID:
+      if (value == null) {
+        unsetNodeId();
+      } else {
+        setNodeId((String)value);
+      }
+      break;
+
+    case EXECUTABLE_TYPE:
+      if (value == null) {
+        unsetExecutableType();
+      } else {
+        setExecutableType((String)value);
+      }
+      break;
+
+    case PROVIDER_NAME:
+      if (value == null) {
+        unsetProviderName();
+      } else {
+        setProviderName((ProviderName)value);
+      }
+      break;
+
+    case USER_ACCOUNT_NAME:
+      if (value == null) {
+        unsetUserAccountName();
+      } else {
+        setUserAccountName((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      return getJobSubmissionInterfaceId();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case NODE_ID:
+      return getNodeId();
+
+    case EXECUTABLE_TYPE:
+      return getExecutableType();
+
+    case PROVIDER_NAME:
+      return getProviderName();
+
+    case USER_ACCOUNT_NAME:
+      return getUserAccountName();
+
+    }
+    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 JOB_SUBMISSION_INTERFACE_ID:
+      return isSetJobSubmissionInterfaceId();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case NODE_ID:
+      return isSetNodeId();
+    case EXECUTABLE_TYPE:
+      return isSetExecutableType();
+    case PROVIDER_NAME:
+      return isSetProviderName();
+    case USER_ACCOUNT_NAME:
+      return isSetUserAccountName();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof CloudJobSubmission)
+      return this.equals((CloudJobSubmission)that);
+    return false;
+  }
+
+  public boolean equals(CloudJobSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionInterfaceId = true && this.isSetJobSubmissionInterfaceId();
+    boolean that_present_jobSubmissionInterfaceId = true && that.isSetJobSubmissionInterfaceId();
+    if (this_present_jobSubmissionInterfaceId || that_present_jobSubmissionInterfaceId) {
+      if (!(this_present_jobSubmissionInterfaceId && that_present_jobSubmissionInterfaceId))
+        return false;
+      if (!this.jobSubmissionInterfaceId.equals(that.jobSubmissionInterfaceId))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_nodeId = true && this.isSetNodeId();
+    boolean that_present_nodeId = true && that.isSetNodeId();
+    if (this_present_nodeId || that_present_nodeId) {
+      if (!(this_present_nodeId && that_present_nodeId))
+        return false;
+      if (!this.nodeId.equals(that.nodeId))
+        return false;
+    }
+
+    boolean this_present_executableType = true && this.isSetExecutableType();
+    boolean that_present_executableType = true && that.isSetExecutableType();
+    if (this_present_executableType || that_present_executableType) {
+      if (!(this_present_executableType && that_present_executableType))
+        return false;
+      if (!this.executableType.equals(that.executableType))
+        return false;
+    }
+
+    boolean this_present_providerName = true && this.isSetProviderName();
+    boolean that_present_providerName = true && that.isSetProviderName();
+    if (this_present_providerName || that_present_providerName) {
+      if (!(this_present_providerName && that_present_providerName))
+        return false;
+      if (!this.providerName.equals(that.providerName))
+        return false;
+    }
+
+    boolean this_present_userAccountName = true && this.isSetUserAccountName();
+    boolean that_present_userAccountName = true && that.isSetUserAccountName();
+    if (this_present_userAccountName || that_present_userAccountName) {
+      if (!(this_present_userAccountName && that_present_userAccountName))
+        return false;
+      if (!this.userAccountName.equals(that.userAccountName))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_jobSubmissionInterfaceId = true && (isSetJobSubmissionInterfaceId());
+    list.add(present_jobSubmissionInterfaceId);
+    if (present_jobSubmissionInterfaceId)
+      list.add(jobSubmissionInterfaceId);
+
+    boolean present_securityProtocol = true && (isSetSecurityProtocol());
+    list.add(present_securityProtocol);
+    if (present_securityProtocol)
+      list.add(securityProtocol.getValue());
+
+    boolean present_nodeId = true && (isSetNodeId());
+    list.add(present_nodeId);
+    if (present_nodeId)
+      list.add(nodeId);
+
+    boolean present_executableType = true && (isSetExecutableType());
+    list.add(present_executableType);
+    if (present_executableType)
+      list.add(executableType);
+
+    boolean present_providerName = true && (isSetProviderName());
+    list.add(present_providerName);
+    if (present_providerName)
+      list.add(providerName.getValue());
+
+    boolean present_userAccountName = true && (isSetUserAccountName());
+    list.add(present_userAccountName);
+    if (present_userAccountName)
+      list.add(userAccountName);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(CloudJobSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionInterfaceId()).compareTo(other.isSetJobSubmissionInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionInterfaceId, other.jobSubmissionInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetNodeId()).compareTo(other.isSetNodeId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNodeId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nodeId, other.nodeId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExecutableType()).compareTo(other.isSetExecutableType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExecutableType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executableType, other.executableType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProviderName()).compareTo(other.isSetProviderName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProviderName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.providerName, other.providerName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUserAccountName()).compareTo(other.isSetUserAccountName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserAccountName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userAccountName, other.userAccountName);
+      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("CloudJobSubmission(");
+    boolean first = true;
+
+    sb.append("jobSubmissionInterfaceId:");
+    if (this.jobSubmissionInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("nodeId:");
+    if (this.nodeId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.nodeId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("executableType:");
+    if (this.executableType == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.executableType);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("providerName:");
+    if (this.providerName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.providerName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("userAccountName:");
+    if (this.userAccountName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.userAccountName);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (jobSubmissionInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionInterfaceId' was not present! Struct: " + toString());
+    }
+    if (securityProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' was not present! Struct: " + toString());
+    }
+    if (nodeId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'nodeId' was not present! Struct: " + toString());
+    }
+    if (executableType == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'executableType' was not present! Struct: " + toString());
+    }
+    if (providerName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'providerName' was not present! Struct: " + toString());
+    }
+    if (userAccountName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userAccountName' was not present! 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 CloudJobSubmissionStandardSchemeFactory implements SchemeFactory {
+    public CloudJobSubmissionStandardScheme getScheme() {
+      return new CloudJobSubmissionStandardScheme();
+    }
+  }
+
+  private static class CloudJobSubmissionStandardScheme extends StandardScheme<CloudJobSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, CloudJobSubmission struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_SUBMISSION_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionInterfaceId = iprot.readString();
+              struct.setJobSubmissionInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // NODE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.nodeId = iprot.readString();
+              struct.setNodeIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // EXECUTABLE_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.executableType = iprot.readString();
+              struct.setExecutableTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // PROVIDER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.providerName = org.apache.airavata.model.appcatalog.computeresource.ProviderName.findByValue(iprot.readI32());
+              struct.setProviderNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // USER_ACCOUNT_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userAccountName = iprot.readString();
+              struct.setUserAccountNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, CloudJobSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionInterfaceId != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.nodeId != null) {
+        oprot.writeFieldBegin(NODE_ID_FIELD_DESC);
+        oprot.writeString(struct.nodeId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.executableType != null) {
+        oprot.writeFieldBegin(EXECUTABLE_TYPE_FIELD_DESC);
+        oprot.writeString(struct.executableType);
+        oprot.writeFieldEnd();
+      }
+      if (struct.providerName != null) {
+        oprot.writeFieldBegin(PROVIDER_NAME_FIELD_DESC);
+        oprot.writeI32(struct.providerName.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.userAccountName != null) {
+        oprot.writeFieldBegin(USER_ACCOUNT_NAME_FIELD_DESC);
+        oprot.writeString(struct.userAccountName);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class CloudJobSubmissionTupleSchemeFactory implements SchemeFactory {
+    public CloudJobSubmissionTupleScheme getScheme() {
+      return new CloudJobSubmissionTupleScheme();
+    }
+  }
+
+  private static class CloudJobSubmissionTupleScheme extends TupleScheme<CloudJobSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, CloudJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionInterfaceId);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      oprot.writeString(struct.nodeId);
+      oprot.writeString(struct.executableType);
+      oprot.writeI32(struct.providerName.getValue());
+      oprot.writeString(struct.userAccountName);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, CloudJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionInterfaceId = iprot.readString();
+      struct.setJobSubmissionInterfaceIdIsSet(true);
+      struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      struct.nodeId = iprot.readString();
+      struct.setNodeIdIsSet(true);
+      struct.executableType = iprot.readString();
+      struct.setExecutableTypeIsSet(true);
+      struct.providerName = org.apache.airavata.model.appcatalog.computeresource.ProviderName.findByValue(iprot.readI32());
+      struct.setProviderNameIsSet(true);
+      struct.userAccountName = iprot.readString();
+      struct.setUserAccountNameIsSet(true);
+    }
+  }
+
+}
+


[30/65] [abbrv] airavata git commit: adding thrift generate files

Posted by sc...@apache.org.
adding thrift generate files


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/3df02b88
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/3df02b88
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/3df02b88

Branch: refs/heads/data-manager
Commit: 3df02b8833c019c46b8336943df5e070c0549dd2
Parents: 078f655
Author: scnakandala <su...@gmail.com>
Authored: Wed Dec 2 11:39:44 2015 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Tue Jan 12 10:56:04 2016 -0500

----------------------------------------------------------------------
 .../main/resources/lib/airavata/Airavata.cpp    | 396 +++++++++++++++++++
 1 file changed, 396 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/3df02b88/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index d384450..a6e3cf1 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -41352,6 +41352,271 @@ uint32_t Airavata_isWorkflowExistWithName_presult::read(::apache::thrift::protoc
   return xfer;
 }
 
+
+Airavata_publishDataResource_args::~Airavata_publishDataResource_args() throw() {
+}
+
+
+uint32_t Airavata_publishDataResource_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_authzToken = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->resourceModel.read(iprot);
+          this->__isset.resourceModel = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_publishDataResource_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  oprot->incrementRecursionDepth();
+  xfer += oprot->writeStructBegin("Airavata_publishDataResource_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("resourceModel", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->resourceModel.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
+  return xfer;
+}
+
+
+Airavata_publishDataResource_pargs::~Airavata_publishDataResource_pargs() throw() {
+}
+
+
+uint32_t Airavata_publishDataResource_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  oprot->incrementRecursionDepth();
+  xfer += oprot->writeStructBegin("Airavata_publishDataResource_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("resourceModel", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->resourceModel)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
+  return xfer;
+}
+
+
+Airavata_publishDataResource_result::~Airavata_publishDataResource_result() throw() {
+}
+
+
+uint32_t Airavata_publishDataResource_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_publishDataResource_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_publishDataResource_result");
+
+  if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_publishDataResource_presult::~Airavata_publishDataResource_presult() throw() {
+}
+
+
+uint32_t Airavata_publishDataResource_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
 void AiravataClient::getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken)
 {
   send_getAPIVersion(authzToken);
@@ -50804,6 +51069,72 @@ bool AiravataClient::recv_isWorkflowExistWithName()
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "isWorkflowExistWithName failed: unknown result");
 }
 
+void AiravataClient::publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel)
+{
+  send_publishDataResource(authzToken, resourceModel);
+  recv_publishDataResource();
+}
+
+void AiravataClient::send_publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("publishDataResource", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_publishDataResource_pargs args;
+  args.authzToken = &authzToken;
+  args.resourceModel = &resourceModel;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_publishDataResource()
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("publishDataResource") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_publishDataResource_presult result;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
+  return;
+}
+
 bool AiravataProcessor::dispatchCall(::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, const std::string& fname, int32_t seqid, void* callContext) {
   ProcessMap::iterator pfn;
   pfn = processMap_.find(fname);
@@ -59541,6 +59872,71 @@ void AiravataProcessor::process_isWorkflowExistWithName(int32_t seqid, ::apache:
   }
 }
 
+void AiravataProcessor::process_publishDataResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext)
+{
+  void* ctx = NULL;
+  if (this->eventHandler_.get() != NULL) {
+    ctx = this->eventHandler_->getContext("Airavata.publishDataResource", callContext);
+  }
+  ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "Airavata.publishDataResource");
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preRead(ctx, "Airavata.publishDataResource");
+  }
+
+  Airavata_publishDataResource_args args;
+  args.read(iprot);
+  iprot->readMessageEnd();
+  uint32_t bytes = iprot->getTransport()->readEnd();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postRead(ctx, "Airavata.publishDataResource", bytes);
+  }
+
+  Airavata_publishDataResource_result result;
+  try {
+    iface_->publishDataResource(args.authzToken, args.resourceModel);
+  } catch ( ::apache::airavata::api::error::InvalidRequestException &ire) {
+    result.ire = ire;
+    result.__isset.ire = true;
+  } catch ( ::apache::airavata::api::error::AiravataClientException &ace) {
+    result.ace = ace;
+    result.__isset.ace = true;
+  } catch ( ::apache::airavata::api::error::AiravataSystemException &ase) {
+    result.ase = ase;
+    result.__isset.ase = true;
+  } catch ( ::apache::airavata::api::error::AuthorizationException &ae) {
+    result.ae = ae;
+    result.__isset.ae = true;
+  } catch (const std::exception& e) {
+    if (this->eventHandler_.get() != NULL) {
+      this->eventHandler_->handlerError(ctx, "Airavata.publishDataResource");
+    }
+
+    ::apache::thrift::TApplicationException x(e.what());
+    oprot->writeMessageBegin("publishDataResource", ::apache::thrift::protocol::T_EXCEPTION, seqid);
+    x.write(oprot);
+    oprot->writeMessageEnd();
+    oprot->getTransport()->writeEnd();
+    oprot->getTransport()->flush();
+    return;
+  }
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preWrite(ctx, "Airavata.publishDataResource");
+  }
+
+  oprot->writeMessageBegin("publishDataResource", ::apache::thrift::protocol::T_REPLY, seqid);
+  result.write(oprot);
+  oprot->writeMessageEnd();
+  bytes = oprot->getTransport()->writeEnd();
+  oprot->getTransport()->flush();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postWrite(ctx, "Airavata.publishDataResource", bytes);
+  }
+}
+
 ::boost::shared_ptr< ::apache::thrift::TProcessor > AiravataProcessorFactory::getProcessor(const ::apache::thrift::TConnectionInfo& connInfo) {
   ::apache::thrift::ReleaseHandler< AiravataIfFactory > cleanup(handlerFactory_);
   ::boost::shared_ptr< AiravataIf > handler(handlerFactory_->getHandler(connInfo), cleanup);


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
new file mode 100644
index 0000000..3235fb2
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
@@ -0,0 +1,637 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Unicore Job Submission
+ * 
+ * unicoreEndPointURL:
+ *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
+ * authenticationMode
+ *  The authenticationMode defines the way certificate is fetched.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class UnicoreJobSubmission implements org.apache.thrift.TBase<UnicoreJobSubmission, UnicoreJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreJobSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreJobSubmission");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField UNICORE_END_POINT_URL_FIELD_DESC = new org.apache.thrift.protocol.TField("unicoreEndPointURL", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UnicoreJobSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UnicoreJobSubmissionTupleSchemeFactory());
+  }
+
+  public String jobSubmissionInterfaceId; // required
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol; // required
+  public String unicoreEndPointURL; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_SUBMISSION_INTERFACE_ID((short)1, "jobSubmissionInterfaceId"),
+    /**
+     * 
+     * @see org.apache.airavata.model.data.movement.SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    UNICORE_END_POINT_URL((short)3, "unicoreEndPointURL");
+
+    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: // JOB_SUBMISSION_INTERFACE_ID
+          return JOB_SUBMISSION_INTERFACE_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // UNICORE_END_POINT_URL
+          return UNICORE_END_POINT_URL;
+        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
+  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.JOB_SUBMISSION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.data.movement.SecurityProtocol.class)));
+    tmpMap.put(_Fields.UNICORE_END_POINT_URL, new org.apache.thrift.meta_data.FieldMetaData("unicoreEndPointURL", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UnicoreJobSubmission.class, metaDataMap);
+  }
+
+  public UnicoreJobSubmission() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public UnicoreJobSubmission(
+    String jobSubmissionInterfaceId,
+    org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol,
+    String unicoreEndPointURL)
+  {
+    this();
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    this.securityProtocol = securityProtocol;
+    this.unicoreEndPointURL = unicoreEndPointURL;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public UnicoreJobSubmission(UnicoreJobSubmission other) {
+    if (other.isSetJobSubmissionInterfaceId()) {
+      this.jobSubmissionInterfaceId = other.jobSubmissionInterfaceId;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetUnicoreEndPointURL()) {
+      this.unicoreEndPointURL = other.unicoreEndPointURL;
+    }
+  }
+
+  public UnicoreJobSubmission deepCopy() {
+    return new UnicoreJobSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.unicoreEndPointURL = null;
+  }
+
+  public String getJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId;
+  }
+
+  public UnicoreJobSubmission setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    return this;
+  }
+
+  public void unsetJobSubmissionInterfaceId() {
+    this.jobSubmissionInterfaceId = null;
+  }
+
+  /** Returns true if field jobSubmissionInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId != null;
+  }
+
+  public void setJobSubmissionInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public UnicoreJobSubmission setSecurityProtocol(org.apache.airavata.model.data.movement.SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+    return this;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public String getUnicoreEndPointURL() {
+    return this.unicoreEndPointURL;
+  }
+
+  public UnicoreJobSubmission setUnicoreEndPointURL(String unicoreEndPointURL) {
+    this.unicoreEndPointURL = unicoreEndPointURL;
+    return this;
+  }
+
+  public void unsetUnicoreEndPointURL() {
+    this.unicoreEndPointURL = null;
+  }
+
+  /** Returns true if field unicoreEndPointURL is set (has been assigned a value) and false otherwise */
+  public boolean isSetUnicoreEndPointURL() {
+    return this.unicoreEndPointURL != null;
+  }
+
+  public void setUnicoreEndPointURLIsSet(boolean value) {
+    if (!value) {
+      this.unicoreEndPointURL = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      if (value == null) {
+        unsetJobSubmissionInterfaceId();
+      } else {
+        setJobSubmissionInterfaceId((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((org.apache.airavata.model.data.movement.SecurityProtocol)value);
+      }
+      break;
+
+    case UNICORE_END_POINT_URL:
+      if (value == null) {
+        unsetUnicoreEndPointURL();
+      } else {
+        setUnicoreEndPointURL((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_INTERFACE_ID:
+      return getJobSubmissionInterfaceId();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case UNICORE_END_POINT_URL:
+      return getUnicoreEndPointURL();
+
+    }
+    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 JOB_SUBMISSION_INTERFACE_ID:
+      return isSetJobSubmissionInterfaceId();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case UNICORE_END_POINT_URL:
+      return isSetUnicoreEndPointURL();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof UnicoreJobSubmission)
+      return this.equals((UnicoreJobSubmission)that);
+    return false;
+  }
+
+  public boolean equals(UnicoreJobSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionInterfaceId = true && this.isSetJobSubmissionInterfaceId();
+    boolean that_present_jobSubmissionInterfaceId = true && that.isSetJobSubmissionInterfaceId();
+    if (this_present_jobSubmissionInterfaceId || that_present_jobSubmissionInterfaceId) {
+      if (!(this_present_jobSubmissionInterfaceId && that_present_jobSubmissionInterfaceId))
+        return false;
+      if (!this.jobSubmissionInterfaceId.equals(that.jobSubmissionInterfaceId))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_unicoreEndPointURL = true && this.isSetUnicoreEndPointURL();
+    boolean that_present_unicoreEndPointURL = true && that.isSetUnicoreEndPointURL();
+    if (this_present_unicoreEndPointURL || that_present_unicoreEndPointURL) {
+      if (!(this_present_unicoreEndPointURL && that_present_unicoreEndPointURL))
+        return false;
+      if (!this.unicoreEndPointURL.equals(that.unicoreEndPointURL))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_jobSubmissionInterfaceId = true && (isSetJobSubmissionInterfaceId());
+    list.add(present_jobSubmissionInterfaceId);
+    if (present_jobSubmissionInterfaceId)
+      list.add(jobSubmissionInterfaceId);
+
+    boolean present_securityProtocol = true && (isSetSecurityProtocol());
+    list.add(present_securityProtocol);
+    if (present_securityProtocol)
+      list.add(securityProtocol.getValue());
+
+    boolean present_unicoreEndPointURL = true && (isSetUnicoreEndPointURL());
+    list.add(present_unicoreEndPointURL);
+    if (present_unicoreEndPointURL)
+      list.add(unicoreEndPointURL);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(UnicoreJobSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionInterfaceId()).compareTo(other.isSetJobSubmissionInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionInterfaceId, other.jobSubmissionInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUnicoreEndPointURL()).compareTo(other.isSetUnicoreEndPointURL());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUnicoreEndPointURL()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.unicoreEndPointURL, other.unicoreEndPointURL);
+      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("UnicoreJobSubmission(");
+    boolean first = true;
+
+    sb.append("jobSubmissionInterfaceId:");
+    if (this.jobSubmissionInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("unicoreEndPointURL:");
+    if (this.unicoreEndPointURL == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.unicoreEndPointURL);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (jobSubmissionInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionInterfaceId' was not present! Struct: " + toString());
+    }
+    if (securityProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' was not present! Struct: " + toString());
+    }
+    if (unicoreEndPointURL == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'unicoreEndPointURL' was not present! 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 UnicoreJobSubmissionStandardSchemeFactory implements SchemeFactory {
+    public UnicoreJobSubmissionStandardScheme getScheme() {
+      return new UnicoreJobSubmissionStandardScheme();
+    }
+  }
+
+  private static class UnicoreJobSubmissionStandardScheme extends StandardScheme<UnicoreJobSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, UnicoreJobSubmission struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_SUBMISSION_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionInterfaceId = iprot.readString();
+              struct.setJobSubmissionInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // UNICORE_END_POINT_URL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.unicoreEndPointURL = iprot.readString();
+              struct.setUnicoreEndPointURLIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, UnicoreJobSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionInterfaceId != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.unicoreEndPointURL != null) {
+        oprot.writeFieldBegin(UNICORE_END_POINT_URL_FIELD_DESC);
+        oprot.writeString(struct.unicoreEndPointURL);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UnicoreJobSubmissionTupleSchemeFactory implements SchemeFactory {
+    public UnicoreJobSubmissionTupleScheme getScheme() {
+      return new UnicoreJobSubmissionTupleScheme();
+    }
+  }
+
+  private static class UnicoreJobSubmissionTupleScheme extends TupleScheme<UnicoreJobSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, UnicoreJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionInterfaceId);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      oprot.writeString(struct.unicoreEndPointURL);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, UnicoreJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionInterfaceId = iprot.readString();
+      struct.setJobSubmissionInterfaceIdIsSet(true);
+      struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      struct.unicoreEndPointURL = iprot.readString();
+      struct.setUnicoreEndPointURLIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
new file mode 100644
index 0000000..05cfd18
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -0,0 +1,1329 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.gatewayprofile;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Gateway specific preferences for a Computer Resource
+ * 
+ * computeResourceId:
+ *   Corelate the preference to a compute resource.
+ * 
+ * overridebyAiravata:
+ *   If turned true, Airavata will override the preferences of better alternatives exist.
+ * 
+ * loginUserName:
+ *   If turned true, Airavata will override the preferences of better alternatives exist.
+ * 
+ * preferredJobSubmissionProtocol:
+ *   For resources with multiple job submission protocols, the gateway can pick a preferred option.
+ * 
+ * preferredDataMovementProtocol:
+ *   For resources with multiple data movement protocols, the gateway can pick a preferred option.
+ * 
+ * preferredBatchQueue:
+ *  Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics.
+ * 
+ * scratchLocation:
+ *  Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution.
+ * 
+ * allocationProjectNumber:
+ *  Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an
+ *    allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
+ *    account to be used has to be added to the allocation.
+ * 
+ * resourceSpecificCredentialStoreToken:
+ *  Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's
+ *   default credential store.
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ComputeResourcePreference implements org.apache.thrift.TBase<ComputeResourcePreference, ComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourcePreference> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourcePreference");
+
+  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField OVERRIDEBY_AIRAVATA_FIELD_DESC = new org.apache.thrift.protocol.TField("overridebyAiravata", org.apache.thrift.protocol.TType.BOOL, (short)2);
+  private static final org.apache.thrift.protocol.TField LOGIN_USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("loginUserName", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField PREFERRED_JOB_SUBMISSION_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("preferredJobSubmissionProtocol", org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField PREFERRED_DATA_MOVEMENT_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("preferredDataMovementProtocol", org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField PREFERRED_BATCH_QUEUE_FIELD_DESC = new org.apache.thrift.protocol.TField("preferredBatchQueue", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField SCRATCH_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("scratchLocation", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField ALLOCATION_PROJECT_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("allocationProjectNumber", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceSpecificCredentialStoreToken", org.apache.thrift.protocol.TType.STRING, (short)9);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ComputeResourcePreferenceStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ComputeResourcePreferenceTupleSchemeFactory());
+  }
+
+  public String computeResourceId; // required
+  public boolean overridebyAiravata; // required
+  public String loginUserName; // optional
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
+   */
+  public org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol preferredJobSubmissionProtocol; // optional
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.DataMovementProtocol
+   */
+  public org.apache.airavata.model.data.movement.DataMovementProtocol preferredDataMovementProtocol; // optional
+  public String preferredBatchQueue; // optional
+  public String scratchLocation; // optional
+  public String allocationProjectNumber; // optional
+  public String resourceSpecificCredentialStoreToken; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    COMPUTE_RESOURCE_ID((short)1, "computeResourceId"),
+    OVERRIDEBY_AIRAVATA((short)2, "overridebyAiravata"),
+    LOGIN_USER_NAME((short)3, "loginUserName"),
+    /**
+     * 
+     * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
+     */
+    PREFERRED_JOB_SUBMISSION_PROTOCOL((short)4, "preferredJobSubmissionProtocol"),
+    /**
+     * 
+     * @see org.apache.airavata.model.data.movement.DataMovementProtocol
+     */
+    PREFERRED_DATA_MOVEMENT_PROTOCOL((short)5, "preferredDataMovementProtocol"),
+    PREFERRED_BATCH_QUEUE((short)6, "preferredBatchQueue"),
+    SCRATCH_LOCATION((short)7, "scratchLocation"),
+    ALLOCATION_PROJECT_NUMBER((short)8, "allocationProjectNumber"),
+    RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN((short)9, "resourceSpecificCredentialStoreToken");
+
+    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: // COMPUTE_RESOURCE_ID
+          return COMPUTE_RESOURCE_ID;
+        case 2: // OVERRIDEBY_AIRAVATA
+          return OVERRIDEBY_AIRAVATA;
+        case 3: // LOGIN_USER_NAME
+          return LOGIN_USER_NAME;
+        case 4: // PREFERRED_JOB_SUBMISSION_PROTOCOL
+          return PREFERRED_JOB_SUBMISSION_PROTOCOL;
+        case 5: // PREFERRED_DATA_MOVEMENT_PROTOCOL
+          return PREFERRED_DATA_MOVEMENT_PROTOCOL;
+        case 6: // PREFERRED_BATCH_QUEUE
+          return PREFERRED_BATCH_QUEUE;
+        case 7: // SCRATCH_LOCATION
+          return SCRATCH_LOCATION;
+        case 8: // ALLOCATION_PROJECT_NUMBER
+          return ALLOCATION_PROJECT_NUMBER;
+        case 9: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+          return RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN;
+        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 __OVERRIDEBYAIRAVATA_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.PREFERRED_JOB_SUBMISSION_PROTOCOL,_Fields.PREFERRED_DATA_MOVEMENT_PROTOCOL,_Fields.PREFERRED_BATCH_QUEUE,_Fields.SCRATCH_LOCATION,_Fields.ALLOCATION_PROJECT_NUMBER,_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN};
+  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.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OVERRIDEBY_AIRAVATA, new org.apache.thrift.meta_data.FieldMetaData("overridebyAiravata", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.LOGIN_USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("loginUserName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PREFERRED_JOB_SUBMISSION_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("preferredJobSubmissionProtocol", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.class)));
+    tmpMap.put(_Fields.PREFERRED_DATA_MOVEMENT_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("preferredDataMovementProtocol", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.data.movement.DataMovementProtocol.class)));
+    tmpMap.put(_Fields.PREFERRED_BATCH_QUEUE, new org.apache.thrift.meta_data.FieldMetaData("preferredBatchQueue", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SCRATCH_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("scratchLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.ALLOCATION_PROJECT_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("allocationProjectNumber", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("resourceSpecificCredentialStoreToken", 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(ComputeResourcePreference.class, metaDataMap);
+  }
+
+  public ComputeResourcePreference() {
+    this.overridebyAiravata = true;
+
+  }
+
+  public ComputeResourcePreference(
+    String computeResourceId,
+    boolean overridebyAiravata)
+  {
+    this();
+    this.computeResourceId = computeResourceId;
+    this.overridebyAiravata = overridebyAiravata;
+    setOverridebyAiravataIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ComputeResourcePreference(ComputeResourcePreference other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetComputeResourceId()) {
+      this.computeResourceId = other.computeResourceId;
+    }
+    this.overridebyAiravata = other.overridebyAiravata;
+    if (other.isSetLoginUserName()) {
+      this.loginUserName = other.loginUserName;
+    }
+    if (other.isSetPreferredJobSubmissionProtocol()) {
+      this.preferredJobSubmissionProtocol = other.preferredJobSubmissionProtocol;
+    }
+    if (other.isSetPreferredDataMovementProtocol()) {
+      this.preferredDataMovementProtocol = other.preferredDataMovementProtocol;
+    }
+    if (other.isSetPreferredBatchQueue()) {
+      this.preferredBatchQueue = other.preferredBatchQueue;
+    }
+    if (other.isSetScratchLocation()) {
+      this.scratchLocation = other.scratchLocation;
+    }
+    if (other.isSetAllocationProjectNumber()) {
+      this.allocationProjectNumber = other.allocationProjectNumber;
+    }
+    if (other.isSetResourceSpecificCredentialStoreToken()) {
+      this.resourceSpecificCredentialStoreToken = other.resourceSpecificCredentialStoreToken;
+    }
+  }
+
+  public ComputeResourcePreference deepCopy() {
+    return new ComputeResourcePreference(this);
+  }
+
+  @Override
+  public void clear() {
+    this.computeResourceId = null;
+    this.overridebyAiravata = true;
+
+    this.loginUserName = null;
+    this.preferredJobSubmissionProtocol = null;
+    this.preferredDataMovementProtocol = null;
+    this.preferredBatchQueue = null;
+    this.scratchLocation = null;
+    this.allocationProjectNumber = null;
+    this.resourceSpecificCredentialStoreToken = null;
+  }
+
+  public String getComputeResourceId() {
+    return this.computeResourceId;
+  }
+
+  public ComputeResourcePreference setComputeResourceId(String computeResourceId) {
+    this.computeResourceId = computeResourceId;
+    return this;
+  }
+
+  public void unsetComputeResourceId() {
+    this.computeResourceId = null;
+  }
+
+  /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetComputeResourceId() {
+    return this.computeResourceId != null;
+  }
+
+  public void setComputeResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.computeResourceId = null;
+    }
+  }
+
+  public boolean isOverridebyAiravata() {
+    return this.overridebyAiravata;
+  }
+
+  public ComputeResourcePreference setOverridebyAiravata(boolean overridebyAiravata) {
+    this.overridebyAiravata = overridebyAiravata;
+    setOverridebyAiravataIsSet(true);
+    return this;
+  }
+
+  public void unsetOverridebyAiravata() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __OVERRIDEBYAIRAVATA_ISSET_ID);
+  }
+
+  /** Returns true if field overridebyAiravata is set (has been assigned a value) and false otherwise */
+  public boolean isSetOverridebyAiravata() {
+    return EncodingUtils.testBit(__isset_bitfield, __OVERRIDEBYAIRAVATA_ISSET_ID);
+  }
+
+  public void setOverridebyAiravataIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __OVERRIDEBYAIRAVATA_ISSET_ID, value);
+  }
+
+  public String getLoginUserName() {
+    return this.loginUserName;
+  }
+
+  public ComputeResourcePreference setLoginUserName(String loginUserName) {
+    this.loginUserName = loginUserName;
+    return this;
+  }
+
+  public void unsetLoginUserName() {
+    this.loginUserName = null;
+  }
+
+  /** Returns true if field loginUserName is set (has been assigned a value) and false otherwise */
+  public boolean isSetLoginUserName() {
+    return this.loginUserName != null;
+  }
+
+  public void setLoginUserNameIsSet(boolean value) {
+    if (!value) {
+      this.loginUserName = null;
+    }
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
+   */
+  public org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol getPreferredJobSubmissionProtocol() {
+    return this.preferredJobSubmissionProtocol;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
+   */
+  public ComputeResourcePreference setPreferredJobSubmissionProtocol(org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol preferredJobSubmissionProtocol) {
+    this.preferredJobSubmissionProtocol = preferredJobSubmissionProtocol;
+    return this;
+  }
+
+  public void unsetPreferredJobSubmissionProtocol() {
+    this.preferredJobSubmissionProtocol = null;
+  }
+
+  /** Returns true if field preferredJobSubmissionProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetPreferredJobSubmissionProtocol() {
+    return this.preferredJobSubmissionProtocol != null;
+  }
+
+  public void setPreferredJobSubmissionProtocolIsSet(boolean value) {
+    if (!value) {
+      this.preferredJobSubmissionProtocol = null;
+    }
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.DataMovementProtocol
+   */
+  public org.apache.airavata.model.data.movement.DataMovementProtocol getPreferredDataMovementProtocol() {
+    return this.preferredDataMovementProtocol;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.DataMovementProtocol
+   */
+  public ComputeResourcePreference setPreferredDataMovementProtocol(org.apache.airavata.model.data.movement.DataMovementProtocol preferredDataMovementProtocol) {
+    this.preferredDataMovementProtocol = preferredDataMovementProtocol;
+    return this;
+  }
+
+  public void unsetPreferredDataMovementProtocol() {
+    this.preferredDataMovementProtocol = null;
+  }
+
+  /** Returns true if field preferredDataMovementProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetPreferredDataMovementProtocol() {
+    return this.preferredDataMovementProtocol != null;
+  }
+
+  public void setPreferredDataMovementProtocolIsSet(boolean value) {
+    if (!value) {
+      this.preferredDataMovementProtocol = null;
+    }
+  }
+
+  public String getPreferredBatchQueue() {
+    return this.preferredBatchQueue;
+  }
+
+  public ComputeResourcePreference setPreferredBatchQueue(String preferredBatchQueue) {
+    this.preferredBatchQueue = preferredBatchQueue;
+    return this;
+  }
+
+  public void unsetPreferredBatchQueue() {
+    this.preferredBatchQueue = null;
+  }
+
+  /** Returns true if field preferredBatchQueue is set (has been assigned a value) and false otherwise */
+  public boolean isSetPreferredBatchQueue() {
+    return this.preferredBatchQueue != null;
+  }
+
+  public void setPreferredBatchQueueIsSet(boolean value) {
+    if (!value) {
+      this.preferredBatchQueue = null;
+    }
+  }
+
+  public String getScratchLocation() {
+    return this.scratchLocation;
+  }
+
+  public ComputeResourcePreference setScratchLocation(String scratchLocation) {
+    this.scratchLocation = scratchLocation;
+    return this;
+  }
+
+  public void unsetScratchLocation() {
+    this.scratchLocation = null;
+  }
+
+  /** Returns true if field scratchLocation is set (has been assigned a value) and false otherwise */
+  public boolean isSetScratchLocation() {
+    return this.scratchLocation != null;
+  }
+
+  public void setScratchLocationIsSet(boolean value) {
+    if (!value) {
+      this.scratchLocation = null;
+    }
+  }
+
+  public String getAllocationProjectNumber() {
+    return this.allocationProjectNumber;
+  }
+
+  public ComputeResourcePreference setAllocationProjectNumber(String allocationProjectNumber) {
+    this.allocationProjectNumber = allocationProjectNumber;
+    return this;
+  }
+
+  public void unsetAllocationProjectNumber() {
+    this.allocationProjectNumber = null;
+  }
+
+  /** Returns true if field allocationProjectNumber is set (has been assigned a value) and false otherwise */
+  public boolean isSetAllocationProjectNumber() {
+    return this.allocationProjectNumber != null;
+  }
+
+  public void setAllocationProjectNumberIsSet(boolean value) {
+    if (!value) {
+      this.allocationProjectNumber = null;
+    }
+  }
+
+  public String getResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken;
+  }
+
+  public ComputeResourcePreference setResourceSpecificCredentialStoreToken(String resourceSpecificCredentialStoreToken) {
+    this.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken;
+    return this;
+  }
+
+  public void unsetResourceSpecificCredentialStoreToken() {
+    this.resourceSpecificCredentialStoreToken = null;
+  }
+
+  /** Returns true if field resourceSpecificCredentialStoreToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken != null;
+  }
+
+  public void setResourceSpecificCredentialStoreTokenIsSet(boolean value) {
+    if (!value) {
+      this.resourceSpecificCredentialStoreToken = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case COMPUTE_RESOURCE_ID:
+      if (value == null) {
+        unsetComputeResourceId();
+      } else {
+        setComputeResourceId((String)value);
+      }
+      break;
+
+    case OVERRIDEBY_AIRAVATA:
+      if (value == null) {
+        unsetOverridebyAiravata();
+      } else {
+        setOverridebyAiravata((Boolean)value);
+      }
+      break;
+
+    case LOGIN_USER_NAME:
+      if (value == null) {
+        unsetLoginUserName();
+      } else {
+        setLoginUserName((String)value);
+      }
+      break;
+
+    case PREFERRED_JOB_SUBMISSION_PROTOCOL:
+      if (value == null) {
+        unsetPreferredJobSubmissionProtocol();
+      } else {
+        setPreferredJobSubmissionProtocol((org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol)value);
+      }
+      break;
+
+    case PREFERRED_DATA_MOVEMENT_PROTOCOL:
+      if (value == null) {
+        unsetPreferredDataMovementProtocol();
+      } else {
+        setPreferredDataMovementProtocol((org.apache.airavata.model.data.movement.DataMovementProtocol)value);
+      }
+      break;
+
+    case PREFERRED_BATCH_QUEUE:
+      if (value == null) {
+        unsetPreferredBatchQueue();
+      } else {
+        setPreferredBatchQueue((String)value);
+      }
+      break;
+
+    case SCRATCH_LOCATION:
+      if (value == null) {
+        unsetScratchLocation();
+      } else {
+        setScratchLocation((String)value);
+      }
+      break;
+
+    case ALLOCATION_PROJECT_NUMBER:
+      if (value == null) {
+        unsetAllocationProjectNumber();
+      } else {
+        setAllocationProjectNumber((String)value);
+      }
+      break;
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      if (value == null) {
+        unsetResourceSpecificCredentialStoreToken();
+      } else {
+        setResourceSpecificCredentialStoreToken((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case COMPUTE_RESOURCE_ID:
+      return getComputeResourceId();
+
+    case OVERRIDEBY_AIRAVATA:
+      return Boolean.valueOf(isOverridebyAiravata());
+
+    case LOGIN_USER_NAME:
+      return getLoginUserName();
+
+    case PREFERRED_JOB_SUBMISSION_PROTOCOL:
+      return getPreferredJobSubmissionProtocol();
+
+    case PREFERRED_DATA_MOVEMENT_PROTOCOL:
+      return getPreferredDataMovementProtocol();
+
+    case PREFERRED_BATCH_QUEUE:
+      return getPreferredBatchQueue();
+
+    case SCRATCH_LOCATION:
+      return getScratchLocation();
+
+    case ALLOCATION_PROJECT_NUMBER:
+      return getAllocationProjectNumber();
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return getResourceSpecificCredentialStoreToken();
+
+    }
+    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 COMPUTE_RESOURCE_ID:
+      return isSetComputeResourceId();
+    case OVERRIDEBY_AIRAVATA:
+      return isSetOverridebyAiravata();
+    case LOGIN_USER_NAME:
+      return isSetLoginUserName();
+    case PREFERRED_JOB_SUBMISSION_PROTOCOL:
+      return isSetPreferredJobSubmissionProtocol();
+    case PREFERRED_DATA_MOVEMENT_PROTOCOL:
+      return isSetPreferredDataMovementProtocol();
+    case PREFERRED_BATCH_QUEUE:
+      return isSetPreferredBatchQueue();
+    case SCRATCH_LOCATION:
+      return isSetScratchLocation();
+    case ALLOCATION_PROJECT_NUMBER:
+      return isSetAllocationProjectNumber();
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return isSetResourceSpecificCredentialStoreToken();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ComputeResourcePreference)
+      return this.equals((ComputeResourcePreference)that);
+    return false;
+  }
+
+  public boolean equals(ComputeResourcePreference that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
+    boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
+    if (this_present_computeResourceId || that_present_computeResourceId) {
+      if (!(this_present_computeResourceId && that_present_computeResourceId))
+        return false;
+      if (!this.computeResourceId.equals(that.computeResourceId))
+        return false;
+    }
+
+    boolean this_present_overridebyAiravata = true;
+    boolean that_present_overridebyAiravata = true;
+    if (this_present_overridebyAiravata || that_present_overridebyAiravata) {
+      if (!(this_present_overridebyAiravata && that_present_overridebyAiravata))
+        return false;
+      if (this.overridebyAiravata != that.overridebyAiravata)
+        return false;
+    }
+
+    boolean this_present_loginUserName = true && this.isSetLoginUserName();
+    boolean that_present_loginUserName = true && that.isSetLoginUserName();
+    if (this_present_loginUserName || that_present_loginUserName) {
+      if (!(this_present_loginUserName && that_present_loginUserName))
+        return false;
+      if (!this.loginUserName.equals(that.loginUserName))
+        return false;
+    }
+
+    boolean this_present_preferredJobSubmissionProtocol = true && this.isSetPreferredJobSubmissionProtocol();
+    boolean that_present_preferredJobSubmissionProtocol = true && that.isSetPreferredJobSubmissionProtocol();
+    if (this_present_preferredJobSubmissionProtocol || that_present_preferredJobSubmissionProtocol) {
+      if (!(this_present_preferredJobSubmissionProtocol && that_present_preferredJobSubmissionProtocol))
+        return false;
+      if (!this.preferredJobSubmissionProtocol.equals(that.preferredJobSubmissionProtocol))
+        return false;
+    }
+
+    boolean this_present_preferredDataMovementProtocol = true && this.isSetPreferredDataMovementProtocol();
+    boolean that_present_preferredDataMovementProtocol = true && that.isSetPreferredDataMovementProtocol();
+    if (this_present_preferredDataMovementProtocol || that_present_preferredDataMovementProtocol) {
+      if (!(this_present_preferredDataMovementProtocol && that_present_preferredDataMovementProtocol))
+        return false;
+      if (!this.preferredDataMovementProtocol.equals(that.preferredDataMovementProtocol))
+        return false;
+    }
+
+    boolean this_present_preferredBatchQueue = true && this.isSetPreferredBatchQueue();
+    boolean that_present_preferredBatchQueue = true && that.isSetPreferredBatchQueue();
+    if (this_present_preferredBatchQueue || that_present_preferredBatchQueue) {
+      if (!(this_present_preferredBatchQueue && that_present_preferredBatchQueue))
+        return false;
+      if (!this.preferredBatchQueue.equals(that.preferredBatchQueue))
+        return false;
+    }
+
+    boolean this_present_scratchLocation = true && this.isSetScratchLocation();
+    boolean that_present_scratchLocation = true && that.isSetScratchLocation();
+    if (this_present_scratchLocation || that_present_scratchLocation) {
+      if (!(this_present_scratchLocation && that_present_scratchLocation))
+        return false;
+      if (!this.scratchLocation.equals(that.scratchLocation))
+        return false;
+    }
+
+    boolean this_present_allocationProjectNumber = true && this.isSetAllocationProjectNumber();
+    boolean that_present_allocationProjectNumber = true && that.isSetAllocationProjectNumber();
+    if (this_present_allocationProjectNumber || that_present_allocationProjectNumber) {
+      if (!(this_present_allocationProjectNumber && that_present_allocationProjectNumber))
+        return false;
+      if (!this.allocationProjectNumber.equals(that.allocationProjectNumber))
+        return false;
+    }
+
+    boolean this_present_resourceSpecificCredentialStoreToken = true && this.isSetResourceSpecificCredentialStoreToken();
+    boolean that_present_resourceSpecificCredentialStoreToken = true && that.isSetResourceSpecificCredentialStoreToken();
+    if (this_present_resourceSpecificCredentialStoreToken || that_present_resourceSpecificCredentialStoreToken) {
+      if (!(this_present_resourceSpecificCredentialStoreToken && that_present_resourceSpecificCredentialStoreToken))
+        return false;
+      if (!this.resourceSpecificCredentialStoreToken.equals(that.resourceSpecificCredentialStoreToken))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_computeResourceId = true && (isSetComputeResourceId());
+    list.add(present_computeResourceId);
+    if (present_computeResourceId)
+      list.add(computeResourceId);
+
+    boolean present_overridebyAiravata = true;
+    list.add(present_overridebyAiravata);
+    if (present_overridebyAiravata)
+      list.add(overridebyAiravata);
+
+    boolean present_loginUserName = true && (isSetLoginUserName());
+    list.add(present_loginUserName);
+    if (present_loginUserName)
+      list.add(loginUserName);
+
+    boolean present_preferredJobSubmissionProtocol = true && (isSetPreferredJobSubmissionProtocol());
+    list.add(present_preferredJobSubmissionProtocol);
+    if (present_preferredJobSubmissionProtocol)
+      list.add(preferredJobSubmissionProtocol.getValue());
+
+    boolean present_preferredDataMovementProtocol = true && (isSetPreferredDataMovementProtocol());
+    list.add(present_preferredDataMovementProtocol);
+    if (present_preferredDataMovementProtocol)
+      list.add(preferredDataMovementProtocol.getValue());
+
+    boolean present_preferredBatchQueue = true && (isSetPreferredBatchQueue());
+    list.add(present_preferredBatchQueue);
+    if (present_preferredBatchQueue)
+      list.add(preferredBatchQueue);
+
+    boolean present_scratchLocation = true && (isSetScratchLocation());
+    list.add(present_scratchLocation);
+    if (present_scratchLocation)
+      list.add(scratchLocation);
+
+    boolean present_allocationProjectNumber = true && (isSetAllocationProjectNumber());
+    list.add(present_allocationProjectNumber);
+    if (present_allocationProjectNumber)
+      list.add(allocationProjectNumber);
+
+    boolean present_resourceSpecificCredentialStoreToken = true && (isSetResourceSpecificCredentialStoreToken());
+    list.add(present_resourceSpecificCredentialStoreToken);
+    if (present_resourceSpecificCredentialStoreToken)
+      list.add(resourceSpecificCredentialStoreToken);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ComputeResourcePreference other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetComputeResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOverridebyAiravata()).compareTo(other.isSetOverridebyAiravata());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOverridebyAiravata()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.overridebyAiravata, other.overridebyAiravata);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLoginUserName()).compareTo(other.isSetLoginUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLoginUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.loginUserName, other.loginUserName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPreferredJobSubmissionProtocol()).compareTo(other.isSetPreferredJobSubmissionProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPreferredJobSubmissionProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preferredJobSubmissionProtocol, other.preferredJobSubmissionProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPreferredDataMovementProtocol()).compareTo(other.isSetPreferredDataMovementProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPreferredDataMovementProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preferredDataMovementProtocol, other.preferredDataMovementProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPreferredBatchQueue()).compareTo(other.isSetPreferredBatchQueue());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPreferredBatchQueue()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preferredBatchQueue, other.preferredBatchQueue);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetScratchLocation()).compareTo(other.isSetScratchLocation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetScratchLocation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scratchLocation, other.scratchLocation);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAllocationProjectNumber()).compareTo(other.isSetAllocationProjectNumber());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAllocationProjectNumber()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.allocationProjectNumber, other.allocationProjectNumber);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceSpecificCredentialStoreToken()).compareTo(other.isSetResourceSpecificCredentialStoreToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceSpecificCredentialStoreToken, other.resourceSpecificCredentialStoreToken);
+      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("ComputeResourcePreference(");
+    boolean first = true;
+
+    sb.append("computeResourceId:");
+    if (this.computeResourceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.computeResourceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("overridebyAiravata:");
+    sb.append(this.overridebyAiravata);
+    first = false;
+    if (isSetLoginUserName()) {
+      if (!first) sb.append(", ");
+      sb.append("loginUserName:");
+      if (this.loginUserName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.loginUserName);
+      }
+      first = false;
+    }
+    if (isSetPreferredJobSubmissionProtocol()) {
+      if (!first) sb.append(", ");
+      sb.append("preferredJobSubmissionProtocol:");
+      if (this.preferredJobSubmissionProtocol == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.preferredJobSubmissionProtocol);
+      }
+      first = false;
+    }
+    if (isSetPreferredDataMovementProtocol()) {
+      if (!first) sb.append(", ");
+      sb.append("preferredDataMovementProtocol:");
+      if (this.preferredDataMovementProtocol == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.preferredDataMovementProtocol);
+      }
+      first = false;
+    }
+    if (isSetPreferredBatchQueue()) {
+      if (!first) sb.append(", ");
+      sb.append("preferredBatchQueue:");
+      if (this.preferredBatchQueue == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.preferredBatchQueue);
+      }
+      first = false;
+    }
+    if (isSetScratchLocation()) {
+      if (!first) sb.append(", ");
+      sb.append("scratchLocation:");
+      if (this.scratchLocation == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.scratchLocation);
+      }
+      first = false;
+    }
+    if (isSetAllocationProjectNumber()) {
+      if (!first) sb.append(", ");
+      sb.append("allocationProjectNumber:");
+      if (this.allocationProjectNumber == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.allocationProjectNumber);
+      }
+      first = false;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceSpecificCredentialStoreToken:");
+      if (this.resourceSpecificCredentialStoreToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceSpecificCredentialStoreToken);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (computeResourceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceId' was not present! Struct: " + toString());
+    }
+    // alas, we cannot check 'overridebyAiravata' because it's a primitive and you chose the non-beans generator.
+    // 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 ComputeResourcePreferenceStandardSchemeFactory implements SchemeFactory {
+    public ComputeResourcePreferenceStandardScheme getScheme() {
+      return new ComputeResourcePreferenceStandardScheme();
+    }
+  }
+
+  private static class ComputeResourcePreferenceStandardScheme extends StandardScheme<ComputeResourcePreference> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ComputeResourcePreference 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: // COMPUTE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.computeResourceId = iprot.readString();
+              struct.setComputeResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // OVERRIDEBY_AIRAVATA
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.overridebyAiravata = iprot.readBool();
+              struct.setOverridebyAiravataIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // LOGIN_USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.loginUserName = iprot.readString();
+              struct.setLoginUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // PREFERRED_JOB_SUBMISSION_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.preferredJobSubmissionProtocol = org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.findByValue(iprot.readI32());
+              struct.setPreferredJobSubmissionProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // PREFERRED_DATA_MOVEMENT_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.preferredDataMovementProtocol = org.apache.airavata.model.data.movement.DataMovementProtocol.findByValue(iprot.readI32());
+              struct.setPreferredDataMovementProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // PREFERRED_BATCH_QUEUE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.preferredBatchQueue = iprot.readString();
+              struct.setPreferredBatchQueueIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // SCRATCH_LOCATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.scratchLocation = iprot.readString();
+              struct.setScratchLocationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // ALLOCATION_PROJECT_NUMBER
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.allocationProjectNumber = iprot.readString();
+              struct.setAllocationProjectNumberIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceSpecificCredentialStoreToken = iprot.readString();
+              struct.setResourceSpecificCredentialStoreTokenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetOverridebyAiravata()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'overridebyAiravata' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ComputeResourcePreference struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.computeResourceId != null) {
+        oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
+        oprot.writeString(struct.computeResourceId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(OVERRIDEBY_AIRAVATA_FIELD_DESC);
+      oprot.writeBool(struct.overridebyAiravata);
+      oprot.writeFieldEnd();
+      if (struct.loginUserName != null) {
+        if (struct.isSetLoginUserName()) {
+          oprot.writeFieldBegin(LOGIN_USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.loginUserName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.preferredJobSubmissionProtocol != null) {
+        if (struct.isSetPreferredJobSubmissionProtocol()) {
+          oprot.writeFieldBegin(PREFERRED_JOB_SUBMISSION_PROTOCOL_FIELD_DESC);
+          oprot.writeI32(struct.preferredJobSubmissionProtocol.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.preferredDataMovementProtocol != null) {
+        if (struct.isSetPreferredDataMovementProtocol()) {
+          oprot.writeFieldBegin(PREFERRED_DATA_MOVEMENT_PROTOCOL_FIELD_DESC);
+          oprot.writeI32(struct.preferredDataMovementProtocol.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.preferredBatchQueue != null) {
+        if (struct.isSetPreferredBatchQueue()) {
+          oprot.writeFieldBegin(PREFERRED_BATCH_QUEUE_FIELD_DESC);
+          oprot.writeString(struct.preferredBatchQueue);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.scratchLocation != null) {
+        if (struct.isSetScratchLocation()) {
+          oprot.writeFieldBegin(SCRATCH_LOCATION_FIELD_DESC);
+          oprot.writeString(struct.scratchLocation);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.allocationProjectNumber != null) {
+        if (struct.isSetAllocationProjectNumber()) {
+          oprot.writeFieldBegin(ALLOCATION_PROJECT_NUMBER_FIELD_DESC);
+          oprot.writeString(struct.allocationProjectNumber);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceSpecificCredentialStoreToken != null) {
+        if (struct.isSetResourceSpecificCredentialStoreToken()) {
+          oprot.writeFieldBegin(RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ComputeResourcePreferenceTupleSchemeFactory implements SchemeFactory {
+    public ComputeResourcePreferenceTupleScheme getScheme() {
+      return new ComputeResourcePreferenceTupleScheme();
+    }
+  }
+
+  private static class ComputeResourcePreferenceTupleScheme extends TupleScheme<ComputeResourcePreference> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ComputeResourcePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.computeResourceId);
+      oprot.writeBool(struct.overridebyAiravata);
+      BitSet optionals = new BitSet();
+      if (struct.isSetLoginUserName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetPreferredJobSubmissionProtocol()) {
+        optionals.set(1);
+      }
+      if (struct.isSetPreferredDataMovementProtocol()) {
+        optionals.set(2);
+      }
+      if (struct.isSetPreferredBatchQueue()) {
+        optionals.set(3);
+      }
+      if (struct.isSetScratchLocation()) {
+        optionals.set(4);
+      }
+      if (struct.isSetAllocationProjectNumber()) {
+        optionals.set(5);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        optionals.set(6);
+      }
+      oprot.writeBitSet(optionals, 7);
+      if (struct.isSetLoginUserName()) {
+        oprot.writeString(struct.loginUserName);
+      }
+      if (struct.isSetPreferredJobSubmissionProtocol()) {
+        oprot.writeI32(struct.preferredJobSubmissionProtocol.getValue());
+      }
+      if (struct.isSetPreferredDataMovementProtocol()) {
+        oprot.writeI32(struct.preferredDataMovementProtocol.getValue());
+      }
+      if (struct.isSetPreferredBatchQueue()) {
+        oprot.writeString(struct.preferredBatchQueue);
+      }
+      if (struct.isSetScratchLocation()) {
+        oprot.writeString(struct.scratchLocation);
+      }
+      if (struct.isSetAllocationProjectNumber()) {
+        oprot.writeString(struct.allocationProjectNumber);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ComputeResourcePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.computeResourceId = iprot.readString();
+      struct.setComputeResourceIdIsSet(true);
+      struct.overridebyAiravata = iprot.readBool();
+      struct.setOverridebyAiravataIsSet(true);
+      BitSet incoming = iprot.readBitSet(7);
+      if (incoming.get(0)) {
+        struct.loginUserName = iprot.readString();
+        struct.setLoginUserNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.preferredJobSubmissionProtocol = org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.findByValue(iprot.readI32());
+        struct.setPreferredJobSubmissionProtocolIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.preferredDataMovementProtocol = org.apache.airavata.model.data.movement.DataMovementProtocol.findByValue(iprot.readI32());
+        struct.setPreferredDataMovementProtocolIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.preferredBatchQueue = iprot.readString();
+        struct.setPreferredBatchQueueIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.scratchLocation = iprot.readString();
+        struct.setScratchLocationIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.allocationProjectNumber = iprot.readString();
+        struct.setAllocationProjectNumberIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.resourceSpecificCredentialStoreToken = iprot.readString();
+        struct.setResourceSpecificCredentialStoreTokenIsSet(true);
+      }
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/job/JobModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/job/JobModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/job/JobModel.java
new file mode 100644
index 0000000..dc1a951
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/job/JobModel.java
@@ -0,0 +1,1566 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.job;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobModel");
+
+  private static final org.apache.thrift.protocol.TField JOB_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField TASK_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("taskId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField JOB_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("jobDescription", org.apache.thrift.protocol.TType.STRING, (short)4);
+  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)5);
+  private static final org.apache.thrift.protocol.TField JOB_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobStatus", org.apache.thrift.protocol.TType.STRUCT, (short)6);
+  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_CONSUMED_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceConsumed", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField JOB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("jobName", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField WORKING_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("workingDir", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField STD_OUT_FIELD_DESC = new org.apache.thrift.protocol.TField("stdOut", org.apache.thrift.protocol.TType.STRING, (short)10);
+  private static final org.apache.thrift.protocol.TField STD_ERR_FIELD_DESC = new org.apache.thrift.protocol.TField("stdErr", org.apache.thrift.protocol.TType.STRING, (short)11);
+  private static final org.apache.thrift.protocol.TField EXIT_CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("exitCode", org.apache.thrift.protocol.TType.I32, (short)12);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobModelTupleSchemeFactory());
+  }
+
+  public String jobId; // required
+  public String taskId; // required
+  public String processId; // required
+  public String jobDescription; // required
+  public long creationTime; // optional
+  public org.apache.airavata.model.status.JobStatus jobStatus; // optional
+  public String computeResourceConsumed; // optional
+  public String jobName; // optional
+  public String workingDir; // optional
+  public String stdOut; // optional
+  public String stdErr; // optional
+  public int exitCode; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_ID((short)1, "jobId"),
+    TASK_ID((short)2, "taskId"),
+    PROCESS_ID((short)3, "processId"),
+    JOB_DESCRIPTION((short)4, "jobDescription"),
+    CREATION_TIME((short)5, "creationTime"),
+    JOB_STATUS((short)6, "jobStatus"),
+    COMPUTE_RESOURCE_CONSUMED((short)7, "computeResourceConsumed"),
+    JOB_NAME((short)8, "jobName"),
+    WORKING_DIR((short)9, "workingDir"),
+    STD_OUT((short)10, "stdOut"),
+    STD_ERR((short)11, "stdErr"),
+    EXIT_CODE((short)12, "exitCode");
+
+    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: // JOB_ID
+          return JOB_ID;
+        case 2: // TASK_ID
+          return TASK_ID;
+        case 3: // PROCESS_ID
+          return PROCESS_ID;
+        case 4: // JOB_DESCRIPTION
+          return JOB_DESCRIPTION;
+        case 5: // CREATION_TIME
+          return CREATION_TIME;
+        case 6: // JOB_STATUS
+          return JOB_STATUS;
+        case 7: // COMPUTE_RESOURCE_CONSUMED
+          return COMPUTE_RESOURCE_CONSUMED;
+        case 8: // JOB_NAME
+          return JOB_NAME;
+        case 9: // WORKING_DIR
+          return WORKING_DIR;
+        case 10: // STD_OUT
+          return STD_OUT;
+        case 11: // STD_ERR
+          return STD_ERR;
+        case 12: // EXIT_CODE
+          return EXIT_CODE;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __CREATIONTIME_ISSET_ID = 0;
+  private static final int __EXITCODE_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.JOB_STATUS,_Fields.COMPUTE_RESOURCE_CONSUMED,_Fields.JOB_NAME,_Fields.WORKING_DIR,_Fields.STD_OUT,_Fields.STD_ERR,_Fields.EXIT_CODE};
+  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.JOB_ID, new org.apache.thrift.meta_data.FieldMetaData("jobId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TASK_ID, new org.apache.thrift.meta_data.FieldMetaData("taskId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.JOB_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("jobDescription", 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.JOB_STATUS, new org.apache.thrift.meta_data.FieldMetaData("jobStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.JobStatus.class)));
+    tmpMap.put(_Fields.COMPUTE_RESOURCE_CONSUMED, new org.apache.thrift.meta_data.FieldMetaData("computeResourceConsumed", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.JOB_NAME, new org.apache.thrift.meta_data.FieldMetaData("jobName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.WORKING_DIR, new org.apache.thrift.meta_data.FieldMetaData("workingDir", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STD_OUT, new org.apache.thrift.meta_data.FieldMetaData("stdOut", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STD_ERR, new org.apache.thrift.meta_data.FieldMetaData("stdErr", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXIT_CODE, new org.apache.thrift.meta_data.FieldMetaData("exitCode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobModel.class, metaDataMap);
+  }
+
+  public JobModel() {
+  }
+
+  public JobModel(
+    String jobId,
+    String taskId,
+    String processId,
+    String jobDescription)
+  {
+    this();
+    this.jobId = jobId;
+    this.taskId = taskId;
+    this.processId = processId;
+    this.jobDescription = jobDescription;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobModel(JobModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetJobId()) {
+      this.jobId = other.jobId;
+    }
+    if (other.isSetTaskId()) {
+      this.taskId = other.taskId;
+    }
+    if (other.isSetProcessId()) {
+      this.processId = other.processId;
+    }
+    if (other.isSetJobDescription()) {
+      this.jobDescription = other.jobDescription;
+    }
+    this.creationTime = other.creationTime;
+    if (other.isSetJobStatus()) {
+      this.jobStatus = new org.apache.airavata.model.status.JobStatus(other.jobStatus);
+    }
+    if (other.isSetComputeResourceConsumed()) {
+      this.computeResourceConsumed = other.computeResourceConsumed;
+    }
+    if (other.isSetJobName()) {
+      this.jobName = other.jobName;
+    }
+    if (other.isSetWorkingDir()) {
+      this.workingDir = other.workingDir;
+    }
+    if (other.isSetStdOut()) {
+      this.stdOut = other.stdOut;
+    }
+    if (other.isSetStdErr()) {
+      this.stdErr = other.stdErr;
+    }
+    this.exitCode = other.exitCode;
+  }
+
+  public JobModel deepCopy() {
+    return new JobModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobId = null;
+    this.taskId = null;
+    this.processId = null;
+    this.jobDescription = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    this.jobStatus = null;
+    this.computeResourceConsumed = null;
+    this.jobName = null;
+    this.workingDir = null;
+    this.stdOut = null;
+    this.stdErr = null;
+    setExitCodeIsSet(false);
+    this.exitCode = 0;
+  }
+
+  public String getJobId() {
+    return this.jobId;
+  }
+
+  public JobModel setJobId(String jobId) {
+    this.jobId = jobId;
+    return this;
+  }
+
+  public void unsetJobId() {
+    this.jobId = null;
+  }
+
+  /** Returns true if field jobId is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobId() {
+    return this.jobId != null;
+  }
+
+  public void setJobIdIsSet(boolean value) {
+    if (!value) {
+      this.jobId = null;
+    }
+  }
+
+  public String getTaskId() {
+    return this.taskId;
+  }
+
+  public JobModel setTaskId(String taskId) {
+    this.taskId = taskId;
+    return this;
+  }
+
+  public void unsetTaskId() {
+    this.taskId = null;
+  }
+
+  /** Returns true if field taskId is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskId() {
+    return this.taskId != null;
+  }
+
+  public void setTaskIdIsSet(boolean value) {
+    if (!value) {
+      this.taskId = null;
+    }
+  }
+
+  public String getProcessId() {
+    return this.processId;
+  }
+
+  public JobModel setProcessId(String processId) {
+    this.processId = processId;
+    return this;
+  }
+
+  public void unsetProcessId() {
+    this.processId = null;
+  }
+
+  /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessId() {
+    return this.processId != null;
+  }
+
+  public void setProcessIdIsSet(boolean value) {
+    if (!value) {
+      this.processId = null;
+    }
+  }
+
+  public String getJobDescription() {
+    return this.jobDescription;
+  }
+
+  public JobModel setJobDescription(String jobDescription) {
+    this.jobDescription = jobDescription;
+    return this;
+  }
+
+  public void unsetJobDescription() {
+    this.jobDescription = null;
+  }
+
+  /** Returns true if field jobDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobDescription() {
+    return this.jobDescription != null;
+  }
+
+  public void setJobDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.jobDescription = null;
+    }
+  }
+
+  public long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public JobModel setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetCreationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  public void setCreationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
+  }
+
+  public org.apache.airavata.model.status.JobStatus getJobStatus() {
+    return this.jobStatus;
+  }
+
+  public JobModel setJobStatus(org.apache.airavata.model.status.JobStatus jobStatus) {
+    this.jobStatus = jobStatus;
+    return this;
+  }
+
+  public void unsetJobStatus() {
+    this.jobStatus = null;
+  }
+
+  /** Returns true if field jobStatus is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobStatus() {
+    return this.jobStatus != null;
+  }
+
+  public void setJobStatusIsSet(boolean value) {
+    if (!value) {
+      this.jobStatus = null;
+    }
+  }
+
+  public String getComputeResourceConsumed() {
+    return this.computeResourceConsumed;
+  }
+
+  public JobModel setComputeResourceConsumed(String computeResourceConsumed) {
+    this.computeResourceConsumed = computeResourceConsumed;
+    return this;
+  }
+
+  public void unsetComputeResourceConsumed() {
+    this.computeResourceConsumed = null;
+  }
+
+  /** Returns true if field computeResourceConsumed is set (has been assigned a value) and false otherwise */
+  public boolean isSetComputeResourceConsumed() {
+    return this.computeResourceConsumed != null;
+  }
+
+  public void setComputeResourceConsumedIsSet(boolean value) {
+    if (!value) {
+      this.computeResourceConsumed = null;
+    }
+  }
+
+  public String getJobName() {
+    return this.jobName;
+  }
+
+  public JobModel setJobName(String jobName) {
+    this.jobName = jobName;
+    return this;
+  }
+
+  public void unsetJobName() {
+    this.jobName = null;
+  }
+
+  /** Returns true if field jobName is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobName() {
+    return this.jobName != null;
+  }
+
+  public void setJobNameIsSet(boolean value) {
+    if (!value) {
+      this.jobName = null;
+    }
+  }
+
+  public String getWorkingDir() {
+    return this.workingDir;
+  }
+
+  public JobModel setWorkingDir(String workingDir) {
+    this.workingDir = workingDir;
+    return this;
+  }
+
+  public void unsetWorkingDir() {
+    this.workingDir = null;
+  }
+
+  /** Returns true if field workingDir is set (has been assigned a value) and false otherwise */
+  public boolean isSetWorkingDir() {
+    return this.workingDir != null;
+  }
+
+  public void setWorkingDirIsSet(boolean value) {
+    if (!value) {
+      this.workingDir = null;
+    }
+  }
+
+  public String getStdOut() {
+    return this.stdOut;
+  }
+
+  public JobModel setStdOut(String stdOut) {
+    this.stdOut = stdOut;
+    return this;
+  }
+
+  public void unsetStdOut() {
+    this.stdOut = null;
+  }
+
+  /** Returns true if field stdOut is set (has been assigned a value) and false otherwise */
+  public boolean isSetStdOut() {
+    return this.stdOut != null;
+  }
+
+  public void setStdOutIsSet(boolean value) {
+    if (!value) {
+      this.stdOut = null;
+    }
+  }
+
+  public String getStdErr() {
+    return this.stdErr;
+  }
+
+  public JobModel setStdErr(String stdErr) {
+    this.stdErr = stdErr;
+    return this;
+  }
+
+  public void unsetStdErr() {
+    this.stdErr = null;
+  }
+
+  /** Returns true if field stdErr is set (has been assigned a value) and false otherwise */
+  public boolean isSetStdErr() {
+    return this.stdErr != null;
+  }
+
+  public void setStdErrIsSet(boolean value) {
+    if (!value) {
+      this.stdErr = null;
+    }
+  }
+
+  public int getExitCode() {
+    return this.exitCode;
+  }
+
+  public JobModel setExitCode(int exitCode) {
+    this.exitCode = exitCode;
+    setExitCodeIsSet(true);
+    return this;
+  }
+
+  public void unsetExitCode() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __EXITCODE_ISSET_ID);
+  }
+
+  /** Returns true if field exitCode is set (has been assigned a value) and false otherwise */
+  public boolean isSetExitCode() {
+    return EncodingUtils.testBit(__isset_bitfield, __EXITCODE_ISSET_ID);
+  }
+
+  public void setExitCodeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __EXITCODE_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_ID:
+      if (value == null) {
+        unsetJobId();
+      } else {
+        setJobId((String)value);
+      }
+      break;
+
+    case TASK_ID:
+      if (value == null) {
+        unsetTaskId();
+      } else {
+        setTaskId((String)value);
+      }
+      break;
+
+    case PROCESS_ID:
+      if (value == null) {
+        unsetProcessId();
+      } else {
+        setProcessId((String)value);
+      }
+      break;
+
+    case JOB_DESCRIPTION:
+      if (value == null) {
+        unsetJobDescription();
+      } else {
+        setJobDescription((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case JOB_STATUS:
+      if (value == null) {
+        unsetJobStatus();
+      } else {
+        setJobStatus((org.apache.airavata.model.status.JobStatus)value);
+      }
+      break;
+
+    case COMPUTE_RESOURCE_CONSUMED:
+      if (value == null) {
+        unsetComputeResourceConsumed();
+      } else {
+        setComputeResourceConsumed((String)value);
+      }
+      break;
+
+    case JOB_NAME:
+      if (value == null) {
+        unsetJobName();
+      } else {
+        setJobName((String)value);
+      }
+      break;
+
+    case WORKING_DIR:
+      if (value == null) {
+        unsetWorkingDir();
+      } else {
+        setWorkingDir((String)value);
+      }
+      break;
+
+    case STD_OUT:
+      if (value == null) {
+        unsetStdOut();
+      } else {
+        setStdOut((String)value);
+      }
+      break;
+
+    case STD_ERR:
+      if (value == null) {
+        unsetStdErr();
+      } else {
+        setStdErr((String)value);
+      }
+      break;
+
+    case EXIT_CODE:
+      if (value == null) {
+        unsetExitCode();
+      } else {
+        setExitCode((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_ID:
+      return getJobId();
+
+    case TASK_ID:
+      return getTaskId();
+
+    case PROCESS_ID:
+      return getProcessId();
+
+    case JOB_DESCRIPTION:
+      return getJobDescription();
+
+    case CREATION_TIME:
+      return Long.valueOf(getCreationTime());
+
+    case JOB_STATUS:
+      return getJobStatus();
+
+    case COMPUTE_RESOURCE_CONSUMED:
+      return getComputeResourceConsumed();
+
+    case JOB_NAME:
+      return getJobName();
+
+    case WORKING_DIR:
+      return getWorkingDir();
+
+    case STD_OUT:
+      return getStdOut();
+
+    case STD_ERR:
+      return getStdErr();
+
+    case EXIT_CODE:
+      return Integer.valueOf(getExitCode());
+
+    }
+    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 JOB_ID:
+      return isSetJobId();
+    case TASK_ID:
+      return isSetTaskId();
+    case PROCESS_ID:
+      return isSetProcessId();
+    case JOB_DESCRIPTION:
+      return isSetJobDescription();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case JOB_STATUS:
+      return isSetJobStatus();
+    case COMPUTE_RESOURCE_CONSUMED:
+      return isSetComputeResourceConsumed();
+    case JOB_NAME:
+      return isSetJobName();
+    case WORKING_DIR:
+      return isSetWorkingDir();
+    case STD_OUT:
+      return isSetStdOut();
+    case STD_ERR:
+      return isSetStdErr();
+    case EXIT_CODE:
+      return isSetExitCode();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobModel)
+      return this.equals((JobModel)that);
+    return false;
+  }
+
+  public boolean equals(JobModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobId = true && this.isSetJobId();
+    boolean that_present_jobId = true && that.isSetJobId();
+    if (this_present_jobId || that_present_jobId) {
+      if (!(this_present_jobId && that_present_jobId))
+        return false;
+      if (!this.jobId.equals(that.jobId))
+        return false;
+    }
+
+    boolean this_present_taskId = true && this.isSetTaskId();
+    boolean that_present_taskId = true && that.isSetTaskId();
+    if (this_present_taskId || that_present_taskId) {
+      if (!(this_present_taskId && that_present_taskId))
+        return false;
+      if (!this.taskId.equals(that.taskId))
+        return false;
+    }
+
+    boolean this_present_processId = true && this.isSetProcessId();
+    boolean that_present_processId = true && that.isSetProcessId();
+    if (this_present_processId || that_present_processId) {
+      if (!(this_present_processId && that_present_processId))
+        return false;
+      if (!this.processId.equals(that.processId))
+        return false;
+    }
+
+    boolean this_present_jobDescription = true && this.isSetJobDescription();
+    boolean that_present_jobDescription = true && that.isSetJobDescription();
+    if (this_present_jobDescription || that_present_jobDescription) {
+      if (!(this_present_jobDescription && that_present_jobDescription))
+        return false;
+      if (!this.jobDescription.equals(that.jobDescription))
+        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_jobStatus = true && this.isSetJobStatus();
+    boolean that_present_jobStatus = true && that.isSetJobStatus();
+    if (this_present_jobStatus || that_present_jobStatus) {
+      if (!(this_present_jobStatus && that_present_jobStatus))
+        return false;
+      if (!this.jobStatus.equals(that.jobStatus))
+        return false;
+    }
+
+    boolean this_present_computeResourceConsumed = true && this.isSetComputeResourceConsumed();
+    boolean that_present_computeResourceConsumed = true && that.isSetComputeResourceConsumed();
+    if (this_present_computeResourceConsumed || that_present_computeResourceConsumed) {
+      if (!(this_present_computeResourceConsumed && that_present_computeResourceConsumed))
+        return false;
+      if (!this.computeResourceConsumed.equals(that.computeResourceConsumed))
+        return false;
+    }
+
+    boolean this_present_jobName = true && this.isSetJobName();
+    boolean that_present_jobName = true && that.isSetJobName();
+    if (this_present_jobName || that_present_jobName) {
+      if (!(this_present_jobName && that_present_jobName))
+        return false;
+      if (!this.jobName.equals(that.jobName))
+        return false;
+    }
+
+    boolean this_present_workingDir = true && this.isSetWorkingDir();
+    boolean that_present_workingDir = true && that.isSetWorkingDir();
+    if (this_present_workingDir || that_present_workingDir) {
+      if (!(this_present_workingDir && that_present_workingDir))
+        return false;
+      if (!this.workingDir.equals(that.workingDir))
+        return false;
+    }
+
+    boolean this_present_stdOut = true && this.isSetStdOut();
+    boolean that_present_stdOut = true && that.isSetStdOut();
+    if (this_present_stdOut || that_present_stdOut) {
+      if (!(this_present_stdOut && that_present_stdOut))
+        return false;
+      if (!this.stdOut.equals(that.stdOut))
+        return false;
+    }
+
+    boolean this_present_stdErr = true && this.isSetStdErr();
+    boolean that_present_stdErr = true && that.isSetStdErr();
+    if (this_present_stdErr || that_present_stdErr) {
+      if (!(this_present_stdErr && that_present_stdErr))
+        return false;
+      if (!this.stdErr.equals(that.stdErr))
+        return false;
+    }
+
+    boolean this_present_exitCode = true && this.isSetExitCode();
+    boolean that_present_exitCode = true && that.isSetExitCode();
+    if (this_present_exitCode || that_present_exitCode) {
+      if (!(this_present_exitCode && that_present_exitCode))
+        return false;
+      if (this.exitCode != that.exitCode)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_jobId = true && (isSetJobId());
+    list.add(present_jobId);
+    if (present_jobId)
+      list.add(jobId);
+
+    boolean present_taskId = true && (isSetTaskId());
+    list.add(present_taskId);
+    if (present_taskId)
+      list.add(taskId);
+
+    boolean present_processId = true && (isSetProcessId());
+    list.add(present_processId);
+    if (present_processId)
+      list.add(processId);
+
+    boolean present_jobDescription = true && (isSetJobDescription());
+    list.add(present_jobDescription);
+    if (present_jobDescription)
+      list.add(jobDescription);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_jobStatus = true && (isSetJobStatus());
+    list.add(present_jobStatus);
+    if (present_jobStatus)
+      list.add(jobStatus);
+
+    boolean present_computeResourceConsumed = true && (isSetComputeResourceConsumed());
+    list.add(present_computeResourceConsumed);
+    if (present_computeResourceConsumed)
+      list.add(computeResourceConsumed);
+
+    boolean present_jobName = true && (isSetJobName());
+    list.add(present_jobName);
+    if (present_jobName)
+      list.add(jobName);
+
+    boolean present_workingDir = true && (isSetWorkingDir());
+    list.add(present_workingDir);
+    if (present_workingDir)
+      list.add(workingDir);
+
+    boolean present_stdOut = true && (isSetStdOut());
+    list.add(present_stdOut);
+    if (present_stdOut)
+      list.add(stdOut);
+
+    boolean present_stdErr = true && (isSetStdErr());
+    list.add(present_stdErr);
+    if (present_stdErr)
+      list.add(stdErr);
+
+    boolean present_exitCode = true && (isSetExitCode());
+    list.add(present_exitCode);
+    if (present_exitCode)
+      list.add(exitCode);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobId()).compareTo(other.isSetJobId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobId, other.jobId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTaskId()).compareTo(other.isSetTaskId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskId, other.taskId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobDescription()).compareTo(other.isSetJobDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobDescription, other.jobDescription);
+      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(isSetJobStatus()).compareTo(other.isSetJobStatus());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobStatus()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobStatus, other.jobStatus);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetComputeResourceConsumed()).compareTo(other.isSetComputeResourceConsumed());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetComputeResourceConsumed()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceConsumed, other.computeResourceConsumed);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobName()).compareTo(other.isSetJobName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobName, other.jobName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetWorkingDir()).compareTo(other.isSetWorkingDir());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWorkingDir()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.workingDir, other.workingDir);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStdOut()).compareTo(other.isSetStdOut());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStdOut()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.stdOut, other.stdOut);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStdErr()).compareTo(other.isSetStdErr());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStdErr()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.stdErr, other.stdErr);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExitCode()).compareTo(other.isSetExitCode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExitCode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.exitCode, other.exitCode);
+      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("JobModel(");
+    boolean first = true;
+
+    sb.append("jobId:");
+    if (this.jobId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("taskId:");
+    if (this.taskId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.taskId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("processId:");
+    if (this.processId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.processId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("jobDescription:");
+    if (this.jobDescription == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobDescription);
+    }
+    first = false;
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetJobStatus()) {
+      if (!first) sb.append(", ");
+      sb.append("jobStatus:");
+      if (this.jobStatus == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.jobStatus);
+      }
+      first = false;
+    }
+    if (isSetComputeResourceConsumed()) {
+      if (!first) sb.append(", ");
+      sb.append("computeResourceConsumed:");
+      if (this.computeResourceConsumed == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.computeResourceConsumed);
+      }
+      first = false;
+    }
+    if (isSetJobName()) {
+      if (!first) sb.append(", ");
+      sb.append("jobName:");
+      if (this.jobName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.jobName);
+      }
+      first = false;
+    }
+    if (isSetWorkingDir()) {
+      if (!first) sb.append(", ");
+      sb.append("workingDir:");
+      if (this.workingDir == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.workingDir);
+      }
+      first = false;
+    }
+    if (isSetStdOut()) {
+      if (!first) sb.append(", ");
+      sb.append("stdOut:");
+      if (this.stdOut == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.stdOut);
+      }
+      first = false;
+    }
+    if (isSetStdErr()) {
+      if (!first) sb.append(", ");
+      sb.append("stdErr:");
+      if (this.stdErr == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.stdErr);
+      }
+      first = false;
+    }
+    if (isSetExitCode()) {
+      if (!first) sb.append(", ");
+      sb.append("exitCode:");
+      sb.append(this.exitCode);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (jobId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobId' was not present! Struct: " + toString());
+    }
+    if (taskId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskId' was not present! Struct: " + toString());
+    }
+    if (processId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
+    }
+    if (jobDescription == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobDescription' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (jobStatus != null) {
+      jobStatus.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 JobModelStandardSchemeFactory implements SchemeFactory {
+    public JobModelStandardScheme getScheme() {
+      return new JobModelStandardScheme();
+    }
+  }
+
+  private static class JobModelStandardScheme extends StandardScheme<JobModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobModel struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobId = iprot.readString();
+              struct.setJobIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TASK_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.taskId = iprot.readString();
+              struct.setTaskIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // PROCESS_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.processId = iprot.readString();
+              struct.setProcessIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // JOB_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobDescription = iprot.readString();
+              struct.setJobDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // 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 6: // JOB_STATUS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.jobStatus = new org.apache.airavata.model.status.JobStatus();
+              struct.jobStatus.read(iprot);
+              struct.setJobStatusIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // COMPUTE_RESOURCE_CONSUMED
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.computeResourceConsumed = iprot.readString();
+              struct.setComputeResourceConsumedIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // JOB_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobName = iprot.readString();
+              struct.setJobNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // WORKING_DIR
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.workingDir = iprot.readString();
+              struct.setWorkingDirIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // STD_OUT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.stdOut = iprot.readString();
+              struct.setStdOutIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // STD_ERR
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.stdErr = iprot.readString();
+              struct.setStdErrIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // EXIT_CODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.exitCode = iprot.readI32();
+              struct.setExitCodeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, JobModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobId != null) {
+        oprot.writeFieldBegin(JOB_ID_FIELD_DESC);
+        oprot.writeString(struct.jobId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.taskId != null) {
+        oprot.writeFieldBegin(TASK_ID_FIELD_DESC);
+        oprot.writeString(struct.taskId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.processId != null) {
+        oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+        oprot.writeString(struct.processId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.jobDescription != null) {
+        oprot.writeFieldBegin(JOB_DESCRIPTION_FIELD_DESC);
+        oprot.writeString(struct.jobDescription);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.jobStatus != null) {
+        if (struct.isSetJobStatus()) {
+          oprot.writeFieldBegin(JOB_STATUS_FIELD_DESC);
+          struct.jobStatus.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.computeResourceConsumed != null) {
+        if (struct.isSetComputeResourceConsumed()) {
+          oprot.writeFieldBegin(COMPUTE_RESOURCE_CONSUMED_FIELD_DESC);
+          oprot.writeString(struct.computeResourceConsumed);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.jobName != null) {
+        if (struct.isSetJobName()) {
+          oprot.writeFieldBegin(JOB_NAME_FIELD_DESC);
+          oprot.writeString(struct.jobName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.workingDir != null) {
+        if (struct.isSetWorkingDir()) {
+          oprot.writeFieldBegin(WORKING_DIR_FIELD_DESC);
+          oprot.writeString(struct.workingDir);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.stdOut != null) {
+        if (struct.isSetStdOut()) {
+          oprot.writeFieldBegin(STD_OUT_FIELD_DESC);
+          oprot.writeString(struct.stdOut);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.stdErr != null) {
+        if (struct.isSetStdErr()) {
+          oprot.writeFieldBegin(STD_ERR_FIELD_DESC);
+          oprot.writeString(struct.stdErr);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetExitCode()) {
+        oprot.writeFieldBegin(EXIT_CODE_FIELD_DESC);
+        oprot.writeI32(struct.exitCode);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobModelTupleSchemeFactory implements SchemeFactory {
+    public JobModelTupleScheme getScheme() {
+      return new JobModelTupleScheme();
+    }
+  }
+
+  private static class JobModelTupleScheme extends TupleScheme<JobModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobId);
+      oprot.writeString(struct.taskId);
+      oprot.writeString(struct.processId);
+      oprot.writeString(struct.jobDescription);
+      BitSet optionals = new BitSet();
+      if (struct.isSetCreationTime()) {
+        optionals.set(0);
+      }
+      if (struct.isSetJobStatus()) {
+        optionals.set(1);
+      }
+      if (struct.isSetComputeResourceConsumed()) {
+        optionals.set(2);
+      }
+      if (struct.isSetJobName()) {
+        optionals.set(3);
+      }
+      if (struct.isSetWorkingDir()) {
+        optionals.set(4);
+      }
+      if (struct.isSetStdOut()) {
+        optionals.set(5);
+      }
+      if (struct.isSetStdErr()) {
+        optionals.set(6);
+      }
+      if (struct.isSetExitCode()) {
+        optionals.set(7);
+      }
+      oprot.writeBitSet(optionals, 8);
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetJobStatus()) {
+        struct.jobStatus.write(oprot);
+      }
+      if (struct.isSetComputeResourceConsumed()) {
+        oprot.writeString(struct.computeResourceConsumed);
+      }
+      if (struct.isSetJobName()) {
+        oprot.writeString(struct.jobName);
+      }
+      if (struct.isSetWorkingDir()) {
+        oprot.writeString(struct.workingDir);
+      }
+      if (struct.isSetStdOut()) {
+        oprot.writeString(struct.stdOut);
+      }
+      if (struct.isSetStdErr()) {
+        oprot.writeString(struct.stdErr);
+      }
+      if (struct.isSetExitCode()) {
+        oprot.writeI32(struct.exitCode);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobId = iprot.readString();
+      struct.setJobIdIsSet(true);
+      struct.taskId = iprot.readString();
+      struct.setTaskIdIsSet(true);
+      struct.processId = iprot.readString();
+      struct.setProcessIdIsSet(true);
+      struct.jobDescription = iprot.readString();
+      struct.setJobDescriptionIsSet(true);
+      BitSet incoming = iprot.readBitSet(8);
+      if (incoming.get(0)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.jobStatus = new org.apache.airavata.model.status.JobStatus();
+        struct.jobStatus.read(iprot);
+        struct.setJobStatusIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.computeResourceConsumed = iprot.readString();
+        struct.setComputeResourceConsumedIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.jobName = iprot.readString();
+        struct.setJobNameIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.workingDir = iprot.readString();
+        struct.setWorkingDirIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.stdOut = iprot.readString();
+        struct.setStdOutIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.stdErr = iprot.readString();
+        struct.setStdErrIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.exitCode = iprot.readI32();
+        struct.setExitCodeIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
new file mode 100644
index 0000000..ba8f06e
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
@@ -0,0 +1,626 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.messaging.event;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ExperimentStatusChangeEvent implements org.apache.thrift.TBase<ExperimentStatusChangeEvent, ExperimentStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatusChangeEvent> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatusChangeEvent");
+
+  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ExperimentStatusChangeEventStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ExperimentStatusChangeEventTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.ExperimentState
+   */
+  public org.apache.airavata.model.status.ExperimentState state; // required
+  public String experimentId; // required
+  public String gatewayId; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see org.apache.airavata.model.status.ExperimentState
+     */
+    STATE((short)1, "state"),
+    EXPERIMENT_ID((short)2, "experimentId"),
+    GATEWAY_ID((short)3, "gatewayId");
+
+    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: // STATE
+          return STATE;
+        case 2: // EXPERIMENT_ID
+          return EXPERIMENT_ID;
+        case 3: // GATEWAY_ID
+          return GATEWAY_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  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.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.status.ExperimentState.class)));
+    tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExperimentStatusChangeEvent.class, metaDataMap);
+  }
+
+  public ExperimentStatusChangeEvent() {
+  }
+
+  public ExperimentStatusChangeEvent(
+    org.apache.airavata.model.status.ExperimentState state,
+    String experimentId,
+    String gatewayId)
+  {
+    this();
+    this.state = state;
+    this.experimentId = experimentId;
+    this.gatewayId = gatewayId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ExperimentStatusChangeEvent(ExperimentStatusChangeEvent other) {
+    if (other.isSetState()) {
+      this.state = other.state;
+    }
+    if (other.isSetExperimentId()) {
+      this.experimentId = other.experimentId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+  }
+
+  public ExperimentStatusChangeEvent deepCopy() {
+    return new ExperimentStatusChangeEvent(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state = null;
+    this.experimentId = null;
+    this.gatewayId = null;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.ExperimentState
+   */
+  public org.apache.airavata.model.status.ExperimentState getState() {
+    return this.state;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.status.ExperimentState
+   */
+  public ExperimentStatusChangeEvent setState(org.apache.airavata.model.status.ExperimentState state) {
+    this.state = state;
+    return this;
+  }
+
+  public void unsetState() {
+    this.state = null;
+  }
+
+  /** Returns true if field state is set (has been assigned a value) and false otherwise */
+  public boolean isSetState() {
+    return this.state != null;
+  }
+
+  public void setStateIsSet(boolean value) {
+    if (!value) {
+      this.state = null;
+    }
+  }
+
+  public String getExperimentId() {
+    return this.experimentId;
+  }
+
+  public ExperimentStatusChangeEvent setExperimentId(String experimentId) {
+    this.experimentId = experimentId;
+    return this;
+  }
+
+  public void unsetExperimentId() {
+    this.experimentId = null;
+  }
+
+  /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentId() {
+    return this.experimentId != null;
+  }
+
+  public void setExperimentIdIsSet(boolean value) {
+    if (!value) {
+      this.experimentId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public ExperimentStatusChangeEvent setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+    return this;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE:
+      if (value == null) {
+        unsetState();
+      } else {
+        setState((org.apache.airavata.model.status.ExperimentState)value);
+      }
+      break;
+
+    case EXPERIMENT_ID:
+      if (value == null) {
+        unsetExperimentId();
+      } else {
+        setExperimentId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE:
+      return getState();
+
+    case EXPERIMENT_ID:
+      return getExperimentId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    }
+    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 STATE:
+      return isSetState();
+    case EXPERIMENT_ID:
+      return isSetExperimentId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ExperimentStatusChangeEvent)
+      return this.equals((ExperimentStatusChangeEvent)that);
+    return false;
+  }
+
+  public boolean equals(ExperimentStatusChangeEvent that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_state = true && this.isSetState();
+    boolean that_present_state = true && that.isSetState();
+    if (this_present_state || that_present_state) {
+      if (!(this_present_state && that_present_state))
+        return false;
+      if (!this.state.equals(that.state))
+        return false;
+    }
+
+    boolean this_present_experimentId = true && this.isSetExperimentId();
+    boolean that_present_experimentId = true && that.isSetExperimentId();
+    if (this_present_experimentId || that_present_experimentId) {
+      if (!(this_present_experimentId && that_present_experimentId))
+        return false;
+      if (!this.experimentId.equals(that.experimentId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state = true && (isSetState());
+    list.add(present_state);
+    if (present_state)
+      list.add(state.getValue());
+
+    boolean present_experimentId = true && (isSetExperimentId());
+    list.add(present_experimentId);
+    if (present_experimentId)
+      list.add(experimentId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ExperimentStatusChangeEvent other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetState()).compareTo(other.isSetState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      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("ExperimentStatusChangeEvent(");
+    boolean first = true;
+
+    sb.append("state:");
+    if (this.state == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("experimentId:");
+    if (this.experimentId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (state == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state' was not present! Struct: " + toString());
+    }
+    if (experimentId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
+    }
+    if (gatewayId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! 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 ExperimentStatusChangeEventStandardSchemeFactory implements SchemeFactory {
+    public ExperimentStatusChangeEventStandardScheme getScheme() {
+      return new ExperimentStatusChangeEventStandardScheme();
+    }
+  }
+
+  private static class ExperimentStatusChangeEventStandardScheme extends StandardScheme<ExperimentStatusChangeEvent> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ExperimentStatusChangeEvent 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: // STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.state = org.apache.airavata.model.status.ExperimentState.findByValue(iprot.readI32());
+              struct.setStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // EXPERIMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentId = iprot.readString();
+              struct.setExperimentIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ExperimentStatusChangeEvent struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state != null) {
+        oprot.writeFieldBegin(STATE_FIELD_DESC);
+        oprot.writeI32(struct.state.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentId != null) {
+        oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.experimentId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ExperimentStatusChangeEventTupleSchemeFactory implements SchemeFactory {
+    public ExperimentStatusChangeEventTupleScheme getScheme() {
+      return new ExperimentStatusChangeEventTupleScheme();
+    }
+  }
+
+  private static class ExperimentStatusChangeEventTupleScheme extends TupleScheme<ExperimentStatusChangeEvent> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ExperimentStatusChangeEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.state.getValue());
+      oprot.writeString(struct.experimentId);
+      oprot.writeString(struct.gatewayId);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ExperimentStatusChangeEvent struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state = org.apache.airavata.model.status.ExperimentState.findByValue(iprot.readI32());
+      struct.setStateIsSet(true);
+      struct.experimentId = iprot.readString();
+      struct.setExperimentIdIsSet(true);
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/TaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/TaskModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/TaskModel.java
new file mode 100644
index 0000000..7ade811
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/TaskModel.java
@@ -0,0 +1,1441 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.task;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * TaskModel: A structure holding the generic task details.
+ * 
+ * taskDetail:
+ *   A friendly description of the task, usally used to communicate information to users.
+ * 
+ * subTaskModel:
+ *   A generic byte object for the Task developer to store internal serialized data into registry catalogs.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<TaskModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskModel");
+
+  private static final org.apache.thrift.protocol.TField TASK_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("taskId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField TASK_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("taskType", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField PARENT_PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("parentProcessId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  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)4);
+  private static final org.apache.thrift.protocol.TField LAST_UPDATE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastUpdateTime", org.apache.thrift.protocol.TType.I64, (short)5);
+  private static final org.apache.thrift.protocol.TField TASK_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("taskStatus", org.apache.thrift.protocol.TType.STRUCT, (short)6);
+  private static final org.apache.thrift.protocol.TField TASK_DETAIL_FIELD_DESC = new org.apache.thrift.protocol.TField("taskDetail", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField SUB_TASK_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("subTaskModel", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField TASK_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("taskError", org.apache.thrift.protocol.TType.STRUCT, (short)9);
+  private static final org.apache.thrift.protocol.TField JOBS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobs", org.apache.thrift.protocol.TType.LIST, (short)10);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TaskModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TaskModelTupleSchemeFactory());
+  }
+
+  public String taskId; // required
+  /**
+   * 
+   * @see TaskTypes
+   */
+  public TaskTypes taskType; // required
+  public String parentProcessId; // required
+  public long creationTime; // required
+  public long lastUpdateTime; // required
+  public org.apache.airavata.model.status.TaskStatus taskStatus; // required
+  public String taskDetail; // optional
+  public ByteBuffer subTaskModel; // optional
+  public org.apache.airavata.model.commons.ErrorModel taskError; // optional
+  public List<org.apache.airavata.model.job.JobModel> jobs; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    TASK_ID((short)1, "taskId"),
+    /**
+     * 
+     * @see TaskTypes
+     */
+    TASK_TYPE((short)2, "taskType"),
+    PARENT_PROCESS_ID((short)3, "parentProcessId"),
+    CREATION_TIME((short)4, "creationTime"),
+    LAST_UPDATE_TIME((short)5, "lastUpdateTime"),
+    TASK_STATUS((short)6, "taskStatus"),
+    TASK_DETAIL((short)7, "taskDetail"),
+    SUB_TASK_MODEL((short)8, "subTaskModel"),
+    TASK_ERROR((short)9, "taskError"),
+    JOBS((short)10, "jobs");
+
+    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: // TASK_ID
+          return TASK_ID;
+        case 2: // TASK_TYPE
+          return TASK_TYPE;
+        case 3: // PARENT_PROCESS_ID
+          return PARENT_PROCESS_ID;
+        case 4: // CREATION_TIME
+          return CREATION_TIME;
+        case 5: // LAST_UPDATE_TIME
+          return LAST_UPDATE_TIME;
+        case 6: // TASK_STATUS
+          return TASK_STATUS;
+        case 7: // TASK_DETAIL
+          return TASK_DETAIL;
+        case 8: // SUB_TASK_MODEL
+          return SUB_TASK_MODEL;
+        case 9: // TASK_ERROR
+          return TASK_ERROR;
+        case 10: // JOBS
+          return JOBS;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __CREATIONTIME_ISSET_ID = 0;
+  private static final int __LASTUPDATETIME_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.TASK_DETAIL,_Fields.SUB_TASK_MODEL,_Fields.TASK_ERROR,_Fields.JOBS};
+  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.TASK_ID, new org.apache.thrift.meta_data.FieldMetaData("taskId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TASK_TYPE, new org.apache.thrift.meta_data.FieldMetaData("taskType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TaskTypes.class)));
+    tmpMap.put(_Fields.PARENT_PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("parentProcessId", 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.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.LAST_UPDATE_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastUpdateTime", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.TASK_STATUS, new org.apache.thrift.meta_data.FieldMetaData("taskStatus", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.TaskStatus.class)));
+    tmpMap.put(_Fields.TASK_DETAIL, new org.apache.thrift.meta_data.FieldMetaData("taskDetail", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SUB_TASK_MODEL, new org.apache.thrift.meta_data.FieldMetaData("subTaskModel", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
+    tmpMap.put(_Fields.TASK_ERROR, new org.apache.thrift.meta_data.FieldMetaData("taskError", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class)));
+    tmpMap.put(_Fields.JOBS, new org.apache.thrift.meta_data.FieldMetaData("jobs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.job.JobModel.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TaskModel.class, metaDataMap);
+  }
+
+  public TaskModel() {
+    this.taskId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public TaskModel(
+    String taskId,
+    TaskTypes taskType,
+    String parentProcessId,
+    long creationTime,
+    long lastUpdateTime,
+    org.apache.airavata.model.status.TaskStatus taskStatus)
+  {
+    this();
+    this.taskId = taskId;
+    this.taskType = taskType;
+    this.parentProcessId = parentProcessId;
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+    this.lastUpdateTime = lastUpdateTime;
+    setLastUpdateTimeIsSet(true);
+    this.taskStatus = taskStatus;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TaskModel(TaskModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetTaskId()) {
+      this.taskId = other.taskId;
+    }
+    if (other.isSetTaskType()) {
+      this.taskType = other.taskType;
+    }
+    if (other.isSetParentProcessId()) {
+      this.parentProcessId = other.parentProcessId;
+    }
+    this.creationTime = other.creationTime;
+    this.lastUpdateTime = other.lastUpdateTime;
+    if (other.isSetTaskStatus()) {
+      this.taskStatus = new org.apache.airavata.model.status.TaskStatus(other.taskStatus);
+    }
+    if (other.isSetTaskDetail()) {
+      this.taskDetail = other.taskDetail;
+    }
+    if (other.isSetSubTaskModel()) {
+      this.subTaskModel = org.apache.thrift.TBaseHelper.copyBinary(other.subTaskModel);
+    }
+    if (other.isSetTaskError()) {
+      this.taskError = new org.apache.airavata.model.commons.ErrorModel(other.taskError);
+    }
+    if (other.isSetJobs()) {
+      List<org.apache.airavata.model.job.JobModel> __this__jobs = new ArrayList<org.apache.airavata.model.job.JobModel>(other.jobs.size());
+      for (org.apache.airavata.model.job.JobModel other_element : other.jobs) {
+        __this__jobs.add(new org.apache.airavata.model.job.JobModel(other_element));
+      }
+      this.jobs = __this__jobs;
+    }
+  }
+
+  public TaskModel deepCopy() {
+    return new TaskModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.taskId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.taskType = null;
+    this.parentProcessId = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    setLastUpdateTimeIsSet(false);
+    this.lastUpdateTime = 0;
+    this.taskStatus = null;
+    this.taskDetail = null;
+    this.subTaskModel = null;
+    this.taskError = null;
+    this.jobs = null;
+  }
+
+  public String getTaskId() {
+    return this.taskId;
+  }
+
+  public TaskModel setTaskId(String taskId) {
+    this.taskId = taskId;
+    return this;
+  }
+
+  public void unsetTaskId() {
+    this.taskId = null;
+  }
+
+  /** Returns true if field taskId is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskId() {
+    return this.taskId != null;
+  }
+
+  public void setTaskIdIsSet(boolean value) {
+    if (!value) {
+      this.taskId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see TaskTypes
+   */
+  public TaskTypes getTaskType() {
+    return this.taskType;
+  }
+
+  /**
+   * 
+   * @see TaskTypes
+   */
+  public TaskModel setTaskType(TaskTypes taskType) {
+    this.taskType = taskType;
+    return this;
+  }
+
+  public void unsetTaskType() {
+    this.taskType = null;
+  }
+
+  /** Returns true if field taskType is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskType() {
+    return this.taskType != null;
+  }
+
+  public void setTaskTypeIsSet(boolean value) {
+    if (!value) {
+      this.taskType = null;
+    }
+  }
+
+  public String getParentProcessId() {
+    return this.parentProcessId;
+  }
+
+  public TaskModel setParentProcessId(String parentProcessId) {
+    this.parentProcessId = parentProcessId;
+    return this;
+  }
+
+  public void unsetParentProcessId() {
+    this.parentProcessId = null;
+  }
+
+  /** Returns true if field parentProcessId is set (has been assigned a value) and false otherwise */
+  public boolean isSetParentProcessId() {
+    return this.parentProcessId != null;
+  }
+
+  public void setParentProcessIdIsSet(boolean value) {
+    if (!value) {
+      this.parentProcessId = null;
+    }
+  }
+
+  public long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public TaskModel setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetCreationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  public void setCreationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
+  }
+
+  public long getLastUpdateTime() {
+    return this.lastUpdateTime;
+  }
+
+  public TaskModel setLastUpdateTime(long lastUpdateTime) {
+    this.lastUpdateTime = lastUpdateTime;
+    setLastUpdateTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetLastUpdateTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTUPDATETIME_ISSET_ID);
+  }
+
+  /** Returns true if field lastUpdateTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetLastUpdateTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __LASTUPDATETIME_ISSET_ID);
+  }
+
+  public void setLastUpdateTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTUPDATETIME_ISSET_ID, value);
+  }
+
+  public org.apache.airavata.model.status.TaskStatus getTaskStatus() {
+    return this.taskStatus;
+  }
+
+  public TaskModel setTaskStatus(org.apache.airavata.model.status.TaskStatus taskStatus) {
+    this.taskStatus = taskStatus;
+    return this;
+  }
+
+  public void unsetTaskStatus() {
+    this.taskStatus = null;
+  }
+
+  /** Returns true if field taskStatus is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskStatus() {
+    return this.taskStatus != null;
+  }
+
+  public void setTaskStatusIsSet(boolean value) {
+    if (!value) {
+      this.taskStatus = null;
+    }
+  }
+
+  public String getTaskDetail() {
+    return this.taskDetail;
+  }
+
+  public TaskModel setTaskDetail(String taskDetail) {
+    this.taskDetail = taskDetail;
+    return this;
+  }
+
+  public void unsetTaskDetail() {
+    this.taskDetail = null;
+  }
+
+  /** Returns true if field taskDetail is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskDetail() {
+    return this.taskDetail != null;
+  }
+
+  public void setTaskDetailIsSet(boolean value) {
+    if (!value) {
+      this.taskDetail = null;
+    }
+  }
+
+  public byte[] getSubTaskModel() {
+    setSubTaskModel(org.apache.thrift.TBaseHelper.rightSize(subTaskModel));
+    return subTaskModel == null ? null : subTaskModel.array();
+  }
+
+  public ByteBuffer bufferForSubTaskModel() {
+    return org.apache.thrift.TBaseHelper.copyBinary(subTaskModel);
+  }
+
+  public TaskModel setSubTaskModel(byte[] subTaskModel) {
+    this.subTaskModel = subTaskModel == null ? (ByteBuffer)null : ByteBuffer.wrap(Arrays.copyOf(subTaskModel, subTaskModel.length));
+    return this;
+  }
+
+  public TaskModel setSubTaskModel(ByteBuffer subTaskModel) {
+    this.subTaskModel = org.apache.thrift.TBaseHelper.copyBinary(subTaskModel);
+    return this;
+  }
+
+  public void unsetSubTaskModel() {
+    this.subTaskModel = null;
+  }
+
+  /** Returns true if field subTaskModel is set (has been assigned a value) and false otherwise */
+  public boolean isSetSubTaskModel() {
+    return this.subTaskModel != null;
+  }
+
+  public void setSubTaskModelIsSet(boolean value) {
+    if (!value) {
+      this.subTaskModel = null;
+    }
+  }
+
+  public org.apache.airavata.model.commons.ErrorModel getTaskError() {
+    return this.taskError;
+  }
+
+  public TaskModel setTaskError(org.apache.airavata.model.commons.ErrorModel taskError) {
+    this.taskError = taskError;
+    return this;
+  }
+
+  public void unsetTaskError() {
+    this.taskError = null;
+  }
+
+  /** Returns true if field taskError is set (has been assigned a value) and false otherwise */
+  public boolean isSetTaskError() {
+    return this.taskError != null;
+  }
+
+  public void setTaskErrorIsSet(boolean value) {
+    if (!value) {
+      this.taskError = null;
+    }
+  }
+
+  public int getJobsSize() {
+    return (this.jobs == null) ? 0 : this.jobs.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.job.JobModel> getJobsIterator() {
+    return (this.jobs == null) ? null : this.jobs.iterator();
+  }
+
+  public void addToJobs(org.apache.airavata.model.job.JobModel elem) {
+    if (this.jobs == null) {
+      this.jobs = new ArrayList<org.apache.airavata.model.job.JobModel>();
+    }
+    this.jobs.add(elem);
+  }
+
+  public List<org.apache.airavata.model.job.JobModel> getJobs() {
+    return this.jobs;
+  }
+
+  public TaskModel setJobs(List<org.apache.airavata.model.job.JobModel> jobs) {
+    this.jobs = jobs;
+    return this;
+  }
+
+  public void unsetJobs() {
+    this.jobs = null;
+  }
+
+  /** Returns true if field jobs is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobs() {
+    return this.jobs != null;
+  }
+
+  public void setJobsIsSet(boolean value) {
+    if (!value) {
+      this.jobs = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TASK_ID:
+      if (value == null) {
+        unsetTaskId();
+      } else {
+        setTaskId((String)value);
+      }
+      break;
+
+    case TASK_TYPE:
+      if (value == null) {
+        unsetTaskType();
+      } else {
+        setTaskType((TaskTypes)value);
+      }
+      break;
+
+    case PARENT_PROCESS_ID:
+      if (value == null) {
+        unsetParentProcessId();
+      } else {
+        setParentProcessId((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case LAST_UPDATE_TIME:
+      if (value == null) {
+        unsetLastUpdateTime();
+      } else {
+        setLastUpdateTime((Long)value);
+      }
+      break;
+
+    case TASK_STATUS:
+      if (value == null) {
+        unsetTaskStatus();
+      } else {
+        setTaskStatus((org.apache.airavata.model.status.TaskStatus)value);
+      }
+      break;
+
+    case TASK_DETAIL:
+      if (value == null) {
+        unsetTaskDetail();
+      } else {
+        setTaskDetail((String)value);
+      }
+      break;
+
+    case SUB_TASK_MODEL:
+      if (value == null) {
+        unsetSubTaskModel();
+      } else {
+        setSubTaskModel((ByteBuffer)value);
+      }
+      break;
+
+    case TASK_ERROR:
+      if (value == null) {
+        unsetTaskError();
+      } else {
+        setTaskError((org.apache.airavata.model.commons.ErrorModel)value);
+      }
+      break;
+
+    case JOBS:
+      if (value == null) {
+        unsetJobs();
+      } else {
+        setJobs((List<org.apache.airavata.model.job.JobModel>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TASK_ID:
+      return getTaskId();
+
+    case TASK_TYPE:
+      return getTaskType();
+
+    case PARENT_PROCESS_ID:
+      return getParentProcessId();
+
+    case CREATION_TIME:
+      return Long.valueOf(getCreationTime());
+
+    case LAST_UPDATE_TIME:
+      return Long.valueOf(getLastUpdateTime());
+
+    case TASK_STATUS:
+      return getTaskStatus();
+
+    case TASK_DETAIL:
+      return getTaskDetail();
+
+    case SUB_TASK_MODEL:
+      return getSubTaskModel();
+
+    case TASK_ERROR:
+      return getTaskError();
+
+    case JOBS:
+      return getJobs();
+
+    }
+    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 TASK_ID:
+      return isSetTaskId();
+    case TASK_TYPE:
+      return isSetTaskType();
+    case PARENT_PROCESS_ID:
+      return isSetParentProcessId();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case LAST_UPDATE_TIME:
+      return isSetLastUpdateTime();
+    case TASK_STATUS:
+      return isSetTaskStatus();
+    case TASK_DETAIL:
+      return isSetTaskDetail();
+    case SUB_TASK_MODEL:
+      return isSetSubTaskModel();
+    case TASK_ERROR:
+      return isSetTaskError();
+    case JOBS:
+      return isSetJobs();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof TaskModel)
+      return this.equals((TaskModel)that);
+    return false;
+  }
+
+  public boolean equals(TaskModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_taskId = true && this.isSetTaskId();
+    boolean that_present_taskId = true && that.isSetTaskId();
+    if (this_present_taskId || that_present_taskId) {
+      if (!(this_present_taskId && that_present_taskId))
+        return false;
+      if (!this.taskId.equals(that.taskId))
+        return false;
+    }
+
+    boolean this_present_taskType = true && this.isSetTaskType();
+    boolean that_present_taskType = true && that.isSetTaskType();
+    if (this_present_taskType || that_present_taskType) {
+      if (!(this_present_taskType && that_present_taskType))
+        return false;
+      if (!this.taskType.equals(that.taskType))
+        return false;
+    }
+
+    boolean this_present_parentProcessId = true && this.isSetParentProcessId();
+    boolean that_present_parentProcessId = true && that.isSetParentProcessId();
+    if (this_present_parentProcessId || that_present_parentProcessId) {
+      if (!(this_present_parentProcessId && that_present_parentProcessId))
+        return false;
+      if (!this.parentProcessId.equals(that.parentProcessId))
+        return false;
+    }
+
+    boolean this_present_creationTime = true;
+    boolean that_present_creationTime = true;
+    if (this_present_creationTime || that_present_creationTime) {
+      if (!(this_present_creationTime && that_present_creationTime))
+        return false;
+      if (this.creationTime != that.creationTime)
+        return false;
+    }
+
+    boolean this_present_lastUpdateTime = true;
+    boolean that_present_lastUpdateTime = true;
+    if (this_present_lastUpdateTime || that_present_lastUpdateTime) {
+      if (!(this_present_lastUpdateTime && that_present_lastUpdateTime))
+        return false;
+      if (this.lastUpdateTime != that.lastUpdateTime)
+        return false;
+    }
+
+    boolean this_present_taskStatus = true && this.isSetTaskStatus();
+    boolean that_present_taskStatus = true && that.isSetTaskStatus();
+    if (this_present_taskStatus || that_present_taskStatus) {
+      if (!(this_present_taskStatus && that_present_taskStatus))
+        return false;
+      if (!this.taskStatus.equals(that.taskStatus))
+        return false;
+    }
+
+    boolean this_present_taskDetail = true && this.isSetTaskDetail();
+    boolean that_present_taskDetail = true && that.isSetTaskDetail();
+    if (this_present_taskDetail || that_present_taskDetail) {
+      if (!(this_present_taskDetail && that_present_taskDetail))
+        return false;
+      if (!this.taskDetail.equals(that.taskDetail))
+        return false;
+    }
+
+    boolean this_present_subTaskModel = true && this.isSetSubTaskModel();
+    boolean that_present_subTaskModel = true && that.isSetSubTaskModel();
+    if (this_present_subTaskModel || that_present_subTaskModel) {
+      if (!(this_present_subTaskModel && that_present_subTaskModel))
+        return false;
+      if (!this.subTaskModel.equals(that.subTaskModel))
+        return false;
+    }
+
+    boolean this_present_taskError = true && this.isSetTaskError();
+    boolean that_present_taskError = true && that.isSetTaskError();
+    if (this_present_taskError || that_present_taskError) {
+      if (!(this_present_taskError && that_present_taskError))
+        return false;
+      if (!this.taskError.equals(that.taskError))
+        return false;
+    }
+
+    boolean this_present_jobs = true && this.isSetJobs();
+    boolean that_present_jobs = true && that.isSetJobs();
+    if (this_present_jobs || that_present_jobs) {
+      if (!(this_present_jobs && that_present_jobs))
+        return false;
+      if (!this.jobs.equals(that.jobs))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_taskId = true && (isSetTaskId());
+    list.add(present_taskId);
+    if (present_taskId)
+      list.add(taskId);
+
+    boolean present_taskType = true && (isSetTaskType());
+    list.add(present_taskType);
+    if (present_taskType)
+      list.add(taskType.getValue());
+
+    boolean present_parentProcessId = true && (isSetParentProcessId());
+    list.add(present_parentProcessId);
+    if (present_parentProcessId)
+      list.add(parentProcessId);
+
+    boolean present_creationTime = true;
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_lastUpdateTime = true;
+    list.add(present_lastUpdateTime);
+    if (present_lastUpdateTime)
+      list.add(lastUpdateTime);
+
+    boolean present_taskStatus = true && (isSetTaskStatus());
+    list.add(present_taskStatus);
+    if (present_taskStatus)
+      list.add(taskStatus);
+
+    boolean present_taskDetail = true && (isSetTaskDetail());
+    list.add(present_taskDetail);
+    if (present_taskDetail)
+      list.add(taskDetail);
+
+    boolean present_subTaskModel = true && (isSetSubTaskModel());
+    list.add(present_subTaskModel);
+    if (present_subTaskModel)
+      list.add(subTaskModel);
+
+    boolean present_taskError = true && (isSetTaskError());
+    list.add(present_taskError);
+    if (present_taskError)
+      list.add(taskError);
+
+    boolean present_jobs = true && (isSetJobs());
+    list.add(present_jobs);
+    if (present_jobs)
+      list.add(jobs);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(TaskModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetTaskId()).compareTo(other.isSetTaskId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskId, other.taskId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTaskType()).compareTo(other.isSetTaskType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskType, other.taskType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetParentProcessId()).compareTo(other.isSetParentProcessId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetParentProcessId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parentProcessId, other.parentProcessId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCreationTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creationTime, other.creationTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLastUpdateTime()).compareTo(other.isSetLastUpdateTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLastUpdateTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastUpdateTime, other.lastUpdateTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTaskStatus()).compareTo(other.isSetTaskStatus());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskStatus()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskStatus, other.taskStatus);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTaskDetail()).compareTo(other.isSetTaskDetail());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskDetail()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskDetail, other.taskDetail);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSubTaskModel()).compareTo(other.isSetSubTaskModel());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSubTaskModel()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.subTaskModel, other.subTaskModel);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTaskError()).compareTo(other.isSetTaskError());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTaskError()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskError, other.taskError);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetJobs()).compareTo(other.isSetJobs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobs, other.jobs);
+      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("TaskModel(");
+    boolean first = true;
+
+    sb.append("taskId:");
+    if (this.taskId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.taskId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("taskType:");
+    if (this.taskType == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.taskType);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("parentProcessId:");
+    if (this.parentProcessId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.parentProcessId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("creationTime:");
+    sb.append(this.creationTime);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("lastUpdateTime:");
+    sb.append(this.lastUpdateTime);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("taskStatus:");
+    if (this.taskStatus == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.taskStatus);
+    }
+    first = false;
+    if (isSetTaskDetail()) {
+      if (!first) sb.append(", ");
+      sb.append("taskDetail:");
+      if (this.taskDetail == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.taskDetail);
+      }
+      first = false;
+    }
+    if (isSetSubTaskModel()) {
+      if (!first) sb.append(", ");
+      sb.append("subTaskModel:");
+      if (this.subTaskModel == null) {
+        sb.append("null");
+      } else {
+        org.apache.thrift.TBaseHelper.toString(this.subTaskModel, sb);
+      }
+      first = false;
+    }
+    if (isSetTaskError()) {
+      if (!first) sb.append(", ");
+      sb.append("taskError:");
+      if (this.taskError == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.taskError);
+      }
+      first = false;
+    }
+    if (isSetJobs()) {
+      if (!first) sb.append(", ");
+      sb.append("jobs:");
+      if (this.jobs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.jobs);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (taskId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskId' was not present! Struct: " + toString());
+    }
+    if (taskType == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskType' was not present! Struct: " + toString());
+    }
+    if (parentProcessId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'parentProcessId' was not present! Struct: " + toString());
+    }
+    // alas, we cannot check 'creationTime' because it's a primitive and you chose the non-beans generator.
+    // alas, we cannot check 'lastUpdateTime' because it's a primitive and you chose the non-beans generator.
+    if (taskStatus == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskStatus' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (taskStatus != null) {
+      taskStatus.validate();
+    }
+    if (taskError != null) {
+      taskError.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 TaskModelStandardSchemeFactory implements SchemeFactory {
+    public TaskModelStandardScheme getScheme() {
+      return new TaskModelStandardScheme();
+    }
+  }
+
+  private static class TaskModelStandardScheme extends StandardScheme<TaskModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TaskModel 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: // TASK_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.taskId = iprot.readString();
+              struct.setTaskIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TASK_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.taskType = org.apache.airavata.model.task.TaskTypes.findByValue(iprot.readI32());
+              struct.setTaskTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // PARENT_PROCESS_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.parentProcessId = iprot.readString();
+              struct.setParentProcessIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // 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 5: // LAST_UPDATE_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.lastUpdateTime = iprot.readI64();
+              struct.setLastUpdateTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // TASK_STATUS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.taskStatus = new org.apache.airavata.model.status.TaskStatus();
+              struct.taskStatus.read(iprot);
+              struct.setTaskStatusIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // TASK_DETAIL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.taskDetail = iprot.readString();
+              struct.setTaskDetailIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // SUB_TASK_MODEL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.subTaskModel = iprot.readBinary();
+              struct.setSubTaskModelIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // TASK_ERROR
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.taskError = new org.apache.airavata.model.commons.ErrorModel();
+              struct.taskError.read(iprot);
+              struct.setTaskErrorIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // JOBS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.jobs = new ArrayList<org.apache.airavata.model.job.JobModel>(_list0.size);
+                org.apache.airavata.model.job.JobModel _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new org.apache.airavata.model.job.JobModel();
+                  _elem1.read(iprot);
+                  struct.jobs.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setJobsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetCreationTime()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'creationTime' was not found in serialized data! Struct: " + toString());
+      }
+      if (!struct.isSetLastUpdateTime()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'lastUpdateTime' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, TaskModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.taskId != null) {
+        oprot.writeFieldBegin(TASK_ID_FIELD_DESC);
+        oprot.writeString(struct.taskId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.taskType != null) {
+        oprot.writeFieldBegin(TASK_TYPE_FIELD_DESC);
+        oprot.writeI32(struct.taskType.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.parentProcessId != null) {
+        oprot.writeFieldBegin(PARENT_PROCESS_ID_FIELD_DESC);
+        oprot.writeString(struct.parentProcessId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+      oprot.writeI64(struct.creationTime);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(LAST_UPDATE_TIME_FIELD_DESC);
+      oprot.writeI64(struct.lastUpdateTime);
+      oprot.writeFieldEnd();
+      if (struct.taskStatus != null) {
+        oprot.writeFieldBegin(TASK_STATUS_FIELD_DESC);
+        struct.taskStatus.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      if (struct.taskDetail != null) {
+        if (struct.isSetTaskDetail()) {
+          oprot.writeFieldBegin(TASK_DETAIL_FIELD_DESC);
+          oprot.writeString(struct.taskDetail);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.subTaskModel != null) {
+        if (struct.isSetSubTaskModel()) {
+          oprot.writeFieldBegin(SUB_TASK_MODEL_FIELD_DESC);
+          oprot.writeBinary(struct.subTaskModel);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.taskError != null) {
+        if (struct.isSetTaskError()) {
+          oprot.writeFieldBegin(TASK_ERROR_FIELD_DESC);
+          struct.taskError.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.jobs != null) {
+        if (struct.isSetJobs()) {
+          oprot.writeFieldBegin(JOBS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.jobs.size()));
+            for (org.apache.airavata.model.job.JobModel _iter3 : struct.jobs)
+            {
+              _iter3.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TaskModelTupleSchemeFactory implements SchemeFactory {
+    public TaskModelTupleScheme getScheme() {
+      return new TaskModelTupleScheme();
+    }
+  }
+
+  private static class TaskModelTupleScheme extends TupleScheme<TaskModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.taskId);
+      oprot.writeI32(struct.taskType.getValue());
+      oprot.writeString(struct.parentProcessId);
+      oprot.writeI64(struct.creationTime);
+      oprot.writeI64(struct.lastUpdateTime);
+      struct.taskStatus.write(oprot);
+      BitSet optionals = new BitSet();
+      if (struct.isSetTaskDetail()) {
+        optionals.set(0);
+      }
+      if (struct.isSetSubTaskModel()) {
+        optionals.set(1);
+      }
+      if (struct.isSetTaskError()) {
+        optionals.set(2);
+      }
+      if (struct.isSetJobs()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
+      if (struct.isSetTaskDetail()) {
+        oprot.writeString(struct.taskDetail);
+      }
+      if (struct.isSetSubTaskModel()) {
+        oprot.writeBinary(struct.subTaskModel);
+      }
+      if (struct.isSetTaskError()) {
+        struct.taskError.write(oprot);
+      }
+      if (struct.isSetJobs()) {
+        {
+          oprot.writeI32(struct.jobs.size());
+          for (org.apache.airavata.model.job.JobModel _iter4 : struct.jobs)
+          {
+            _iter4.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.taskId = iprot.readString();
+      struct.setTaskIdIsSet(true);
+      struct.taskType = org.apache.airavata.model.task.TaskTypes.findByValue(iprot.readI32());
+      struct.setTaskTypeIsSet(true);
+      struct.parentProcessId = iprot.readString();
+      struct.setParentProcessIdIsSet(true);
+      struct.creationTime = iprot.readI64();
+      struct.setCreationTimeIsSet(true);
+      struct.lastUpdateTime = iprot.readI64();
+      struct.setLastUpdateTimeIsSet(true);
+      struct.taskStatus = new org.apache.airavata.model.status.TaskStatus();
+      struct.taskStatus.read(iprot);
+      struct.setTaskStatusIsSet(true);
+      BitSet incoming = iprot.readBitSet(4);
+      if (incoming.get(0)) {
+        struct.taskDetail = iprot.readString();
+        struct.setTaskDetailIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.subTaskModel = iprot.readBinary();
+        struct.setSubTaskModelIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.taskError = new org.apache.airavata.model.commons.ErrorModel();
+        struct.taskError.read(iprot);
+        struct.setTaskErrorIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.jobs = new ArrayList<org.apache.airavata.model.job.JobModel>(_list5.size);
+          org.apache.airavata.model.job.JobModel _elem6;
+          for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+          {
+            _elem6 = new org.apache.airavata.model.job.JobModel();
+            _elem6.read(iprot);
+            struct.jobs.add(_elem6);
+          }
+        }
+        struct.setJobsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/TaskTypes.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/TaskTypes.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/TaskTypes.java
new file mode 100644
index 0000000..7852e6a
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/TaskTypes.java
@@ -0,0 +1,78 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.task;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * TaskTypes: An enumerated list of TaskTypes. Task being generic, the task type will provide the concrete interpretation.
+ * 
+ */
+public enum TaskTypes implements org.apache.thrift.TEnum {
+  ENV_SETUP(0),
+  DATA_STAGING(1),
+  JOB_SUBMISSION(2),
+  ENV_CLEANUP(3),
+  MONITORING(4),
+  OUTPUT_FETCHING(5);
+
+  private final int value;
+
+  private TaskTypes(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 TaskTypes findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return ENV_SETUP;
+      case 1:
+        return DATA_STAGING;
+      case 2:
+        return JOB_SUBMISSION;
+      case 3:
+        return ENV_CLEANUP;
+      case 4:
+        return MONITORING;
+      case 5:
+        return OUTPUT_FETCHING;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Gateway.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Gateway.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Gateway.java
new file mode 100644
index 0000000..285afdc
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Gateway.java
@@ -0,0 +1,733 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.workspace;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class Gateway implements org.apache.thrift.TBase<Gateway, Gateway._Fields>, java.io.Serializable, Cloneable, Comparable<Gateway> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Gateway");
+
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField GATEWAY_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField DOMAIN_FIELD_DESC = new org.apache.thrift.protocol.TField("domain", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField EMAIL_ADDRESS_FIELD_DESC = new org.apache.thrift.protocol.TField("emailAddress", 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 GatewayStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GatewayTupleSchemeFactory());
+  }
+
+  public String gatewayId; // required
+  public String gatewayName; // optional
+  public String domain; // optional
+  public String emailAddress; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    GATEWAY_ID((short)1, "gatewayId"),
+    GATEWAY_NAME((short)2, "gatewayName"),
+    DOMAIN((short)3, "domain"),
+    EMAIL_ADDRESS((short)4, "emailAddress");
+
+    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: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 2: // GATEWAY_NAME
+          return GATEWAY_NAME;
+        case 3: // DOMAIN
+          return DOMAIN;
+        case 4: // EMAIL_ADDRESS
+          return EMAIL_ADDRESS;
+        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 _Fields optionals[] = {_Fields.GATEWAY_NAME,_Fields.DOMAIN,_Fields.EMAIL_ADDRESS};
+  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.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_NAME, new org.apache.thrift.meta_data.FieldMetaData("gatewayName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DOMAIN, new org.apache.thrift.meta_data.FieldMetaData("domain", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EMAIL_ADDRESS, new org.apache.thrift.meta_data.FieldMetaData("emailAddress", 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(Gateway.class, metaDataMap);
+  }
+
+  public Gateway() {
+  }
+
+  public Gateway(
+    String gatewayId)
+  {
+    this();
+    this.gatewayId = gatewayId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Gateway(Gateway other) {
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetGatewayName()) {
+      this.gatewayName = other.gatewayName;
+    }
+    if (other.isSetDomain()) {
+      this.domain = other.domain;
+    }
+    if (other.isSetEmailAddress()) {
+      this.emailAddress = other.emailAddress;
+    }
+  }
+
+  public Gateway deepCopy() {
+    return new Gateway(this);
+  }
+
+  @Override
+  public void clear() {
+    this.gatewayId = null;
+    this.gatewayName = null;
+    this.domain = null;
+    this.emailAddress = null;
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public Gateway setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+    return this;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public String getGatewayName() {
+    return this.gatewayName;
+  }
+
+  public Gateway setGatewayName(String gatewayName) {
+    this.gatewayName = gatewayName;
+    return this;
+  }
+
+  public void unsetGatewayName() {
+    this.gatewayName = null;
+  }
+
+  /** Returns true if field gatewayName is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayName() {
+    return this.gatewayName != null;
+  }
+
+  public void setGatewayNameIsSet(boolean value) {
+    if (!value) {
+      this.gatewayName = null;
+    }
+  }
+
+  public String getDomain() {
+    return this.domain;
+  }
+
+  public Gateway setDomain(String domain) {
+    this.domain = domain;
+    return this;
+  }
+
+  public void unsetDomain() {
+    this.domain = null;
+  }
+
+  /** Returns true if field domain is set (has been assigned a value) and false otherwise */
+  public boolean isSetDomain() {
+    return this.domain != null;
+  }
+
+  public void setDomainIsSet(boolean value) {
+    if (!value) {
+      this.domain = null;
+    }
+  }
+
+  public String getEmailAddress() {
+    return this.emailAddress;
+  }
+
+  public Gateway setEmailAddress(String emailAddress) {
+    this.emailAddress = emailAddress;
+    return this;
+  }
+
+  public void unsetEmailAddress() {
+    this.emailAddress = null;
+  }
+
+  /** Returns true if field emailAddress is set (has been assigned a value) and false otherwise */
+  public boolean isSetEmailAddress() {
+    return this.emailAddress != null;
+  }
+
+  public void setEmailAddressIsSet(boolean value) {
+    if (!value) {
+      this.emailAddress = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case GATEWAY_NAME:
+      if (value == null) {
+        unsetGatewayName();
+      } else {
+        setGatewayName((String)value);
+      }
+      break;
+
+    case DOMAIN:
+      if (value == null) {
+        unsetDomain();
+      } else {
+        setDomain((String)value);
+      }
+      break;
+
+    case EMAIL_ADDRESS:
+      if (value == null) {
+        unsetEmailAddress();
+      } else {
+        setEmailAddress((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case GATEWAY_NAME:
+      return getGatewayName();
+
+    case DOMAIN:
+      return getDomain();
+
+    case EMAIL_ADDRESS:
+      return getEmailAddress();
+
+    }
+    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 GATEWAY_ID:
+      return isSetGatewayId();
+    case GATEWAY_NAME:
+      return isSetGatewayName();
+    case DOMAIN:
+      return isSetDomain();
+    case EMAIL_ADDRESS:
+      return isSetEmailAddress();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Gateway)
+      return this.equals((Gateway)that);
+    return false;
+  }
+
+  public boolean equals(Gateway that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_gatewayName = true && this.isSetGatewayName();
+    boolean that_present_gatewayName = true && that.isSetGatewayName();
+    if (this_present_gatewayName || that_present_gatewayName) {
+      if (!(this_present_gatewayName && that_present_gatewayName))
+        return false;
+      if (!this.gatewayName.equals(that.gatewayName))
+        return false;
+    }
+
+    boolean this_present_domain = true && this.isSetDomain();
+    boolean that_present_domain = true && that.isSetDomain();
+    if (this_present_domain || that_present_domain) {
+      if (!(this_present_domain && that_present_domain))
+        return false;
+      if (!this.domain.equals(that.domain))
+        return false;
+    }
+
+    boolean this_present_emailAddress = true && this.isSetEmailAddress();
+    boolean that_present_emailAddress = true && that.isSetEmailAddress();
+    if (this_present_emailAddress || that_present_emailAddress) {
+      if (!(this_present_emailAddress && that_present_emailAddress))
+        return false;
+      if (!this.emailAddress.equals(that.emailAddress))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_gatewayName = true && (isSetGatewayName());
+    list.add(present_gatewayName);
+    if (present_gatewayName)
+      list.add(gatewayName);
+
+    boolean present_domain = true && (isSetDomain());
+    list.add(present_domain);
+    if (present_domain)
+      list.add(domain);
+
+    boolean present_emailAddress = true && (isSetEmailAddress());
+    list.add(present_emailAddress);
+    if (present_emailAddress)
+      list.add(emailAddress);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(Gateway other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayName()).compareTo(other.isSetGatewayName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayName, other.gatewayName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDomain()).compareTo(other.isSetDomain());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDomain()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.domain, other.domain);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetEmailAddress()).compareTo(other.isSetEmailAddress());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEmailAddress()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.emailAddress, other.emailAddress);
+      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("Gateway(");
+    boolean first = true;
+
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    if (isSetGatewayName()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayName:");
+      if (this.gatewayName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayName);
+      }
+      first = false;
+    }
+    if (isSetDomain()) {
+      if (!first) sb.append(", ");
+      sb.append("domain:");
+      if (this.domain == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.domain);
+      }
+      first = false;
+    }
+    if (isSetEmailAddress()) {
+      if (!first) sb.append(", ");
+      sb.append("emailAddress:");
+      if (this.emailAddress == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.emailAddress);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (gatewayId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! 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 GatewayStandardSchemeFactory implements SchemeFactory {
+    public GatewayStandardScheme getScheme() {
+      return new GatewayStandardScheme();
+    }
+  }
+
+  private static class GatewayStandardScheme extends StandardScheme<Gateway> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Gateway 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: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // GATEWAY_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayName = iprot.readString();
+              struct.setGatewayNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // DOMAIN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.domain = iprot.readString();
+              struct.setDomainIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // EMAIL_ADDRESS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.emailAddress = iprot.readString();
+              struct.setEmailAddressIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, Gateway struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayName != null) {
+        if (struct.isSetGatewayName()) {
+          oprot.writeFieldBegin(GATEWAY_NAME_FIELD_DESC);
+          oprot.writeString(struct.gatewayName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.domain != null) {
+        if (struct.isSetDomain()) {
+          oprot.writeFieldBegin(DOMAIN_FIELD_DESC);
+          oprot.writeString(struct.domain);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.emailAddress != null) {
+        if (struct.isSetEmailAddress()) {
+          oprot.writeFieldBegin(EMAIL_ADDRESS_FIELD_DESC);
+          oprot.writeString(struct.emailAddress);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GatewayTupleSchemeFactory implements SchemeFactory {
+    public GatewayTupleScheme getScheme() {
+      return new GatewayTupleScheme();
+    }
+  }
+
+  private static class GatewayTupleScheme extends TupleScheme<Gateway> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Gateway struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.gatewayId);
+      BitSet optionals = new BitSet();
+      if (struct.isSetGatewayName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetDomain()) {
+        optionals.set(1);
+      }
+      if (struct.isSetEmailAddress()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetGatewayName()) {
+        oprot.writeString(struct.gatewayName);
+      }
+      if (struct.isSetDomain()) {
+        oprot.writeString(struct.domain);
+      }
+      if (struct.isSetEmailAddress()) {
+        oprot.writeString(struct.emailAddress);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Gateway struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.gatewayId = iprot.readString();
+      struct.setGatewayIdIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.gatewayName = iprot.readString();
+        struct.setGatewayNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.domain = iprot.readString();
+        struct.setDomainIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.emailAddress = iprot.readString();
+        struct.setEmailAddressIsSet(true);
+      }
+    }
+  }
+
+}
+


[28/65] [abbrv] airavata git commit: adding the initial version of the data catalog

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/e89f3ea6/modules/registry/logs/airavata.log
----------------------------------------------------------------------
diff --git a/modules/registry/logs/airavata.log b/modules/registry/logs/airavata.log
new file mode 100644
index 0000000..c1c6040
--- /dev/null
+++ b/modules/registry/logs/airavata.log
@@ -0,0 +1,2929 @@
+2015-12-02 15:39:31,663 [main] INFO  org.apache.airavata.common.utils.ApplicationSettings  - Settings loaded from jar:file:/Users/supun/.m2/repository/org/apache/airavata/airavata-server-configuration/0.16-SNAPSHOT/airavata-server-configuration-0.16-SNAPSHOT.jar!/airavata-server.properties
+2015-12-02 15:39:33,270 [main] INFO  org.apache.airavata.app.catalog.util.Initialize  - New Database created for App Catalog !!!
+2015-12-02 15:42:33,954 [main] INFO  org.apache.airavata.common.utils.ApplicationSettings  - Settings loaded from jar:file:/Users/supun/.m2/repository/org/apache/airavata/airavata-server-configuration/0.16-SNAPSHOT/airavata-server-configuration-0.16-SNAPSHOT.jar!/airavata-server.properties
+2015-12-02 15:42:35,125 [main] INFO  org.apache.airavata.app.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.app.catalog.util.Initialize.executeSQL(Initialize.java:232)
+	at org.apache.airavata.app.catalog.util.Initialize.executeSQLScript(Initialize.java:199)
+	at org.apache.airavata.app.catalog.util.Initialize.initializeDB(Initialize.java:118)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:53)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:42:35,141 [main] INFO  org.apache.airavata.app.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_REPLICA_LOCATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.app.catalog.util.Initialize.executeSQL(Initialize.java:232)
+	at org.apache.airavata.app.catalog.util.Initialize.executeSQLScript(Initialize.java:199)
+	at org.apache.airavata.app.catalog.util.Initialize.initializeDB(Initialize.java:118)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:53)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'DATA_REPLICA_LOCATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:42:35,152 [main] INFO  org.apache.airavata.app.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'CONFIGURATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.app.catalog.util.Initialize.executeSQL(Initialize.java:232)
+	at org.apache.airavata.app.catalog.util.Initialize.executeSQLScript(Initialize.java:199)
+	at org.apache.airavata.app.catalog.util.Initialize.initializeDB(Initialize.java:118)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:53)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'CONFIGURATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:42:35,156 [main] INFO  org.apache.airavata.app.catalog.util.Initialize  - New Database created for App Catalog !!!
+2015-12-02 15:43:08,162 [main] INFO  org.apache.airavata.common.utils.ApplicationSettings  - Settings loaded from jar:file:/Users/supun/.m2/repository/org/apache/airavata/airavata-server-configuration/0.16-SNAPSHOT/airavata-server-configuration-0.16-SNAPSHOT.jar!/airavata-server.properties
+2015-12-02 15:43:08,163 [main] ERROR org.apache.airavata.data.catalog.util.Initialize  - Unable to read properties
+org.apache.airavata.common.exception.ApplicationSettingsException: datacatalog.jdbc.driver
+	at org.apache.airavata.common.utils.ApplicationSettings.getSettingImpl(ApplicationSettings.java:190)
+	at org.apache.airavata.common.utils.ApplicationSettings.getSetting(ApplicationSettings.java:321)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:97)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+2015-12-02 15:43:08,955 [main] ERROR org.apache.airavata.data.catalog.util.Initialize  - 
+java.lang.NullPointerException
+	at java.lang.Class.forName0(Native Method)
+	at java.lang.Class.forName(Class.java:264)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:112)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+2015-12-02 15:45:00,209 [main] INFO  org.apache.airavata.common.utils.ApplicationSettings  - Settings loaded from jar:file:/Users/supun/.m2/repository/org/apache/airavata/airavata-server-configuration/0.16-SNAPSHOT/airavata-server-configuration-0.16-SNAPSHOT.jar!/airavata-server.properties
+2015-12-02 15:45:00,210 [main] ERROR org.apache.airavata.data.catalog.util.Initialize  - Unable to read properties
+org.apache.airavata.common.exception.ApplicationSettingsException: datacatalog.jdbc.driver
+	at org.apache.airavata.common.utils.ApplicationSettings.getSettingImpl(ApplicationSettings.java:190)
+	at org.apache.airavata.common.utils.ApplicationSettings.getSetting(ApplicationSettings.java:321)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:97)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+2015-12-02 15:45:00,994 [main] ERROR org.apache.airavata.data.catalog.util.Initialize  - 
+java.lang.NullPointerException
+	at java.lang.Class.forName0(Native Method)
+	at java.lang.Class.forName(Class.java:264)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:112)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+2015-12-02 15:48:20,275 [main] INFO  org.apache.airavata.common.utils.ApplicationSettings  - Settings loaded from jar:file:/Users/supun/.m2/repository/org/apache/airavata/airavata-server-configuration/0.16-SNAPSHOT/airavata-server-configuration-0.16-SNAPSHOT.jar!/airavata-server.properties
+2015-12-02 15:48:21,658 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - New Database created for Data Catalog !!!
+2015-12-02 15:49:56,590 [main] INFO  org.apache.airavata.common.utils.ApplicationSettings  - Settings loaded from jar:file:/Users/supun/.m2/repository/org/apache/airavata/airavata-server-configuration/0.16-SNAPSHOT/airavata-server-configuration-0.16-SNAPSHOT.jar!/airavata-server.properties
+2015-12-02 15:49:57,757 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:49:57,773 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_REPLICA_LOCATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'DATA_REPLICA_LOCATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:49:57,785 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'CONFIGURATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'CONFIGURATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:49:57,789 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - New Database created for Data Catalog !!!
+2015-12-02 15:49:58,069 [main] ERROR org.apache.airavata.registry.core.data.catalog.impl.DataCatalogImpl  - No persistence providers available for "datacatalog_data" after trying the following discovered implementations: org.apache.openjpa.persistence.PersistenceProviderImpl
+javax.persistence.PersistenceException: No persistence providers available for "datacatalog_data" after trying the following discovered implementations: org.apache.openjpa.persistence.PersistenceProviderImpl
+	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:182)
+	at org.apache.airavata.registry.core.data.catalog.utils.DataCatalogJPAUtils.getEntityManager(DataCatalogJPAUtils.java:68)
+	at org.apache.airavata.registry.core.data.catalog.impl.DataCatalogImpl.publishResource(DataCatalogImpl.java:52)
+	at org.apache.airavata.data.catalog.DataCatalogTest.testPublishDataResource(DataCatalogTest.java:74)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+2015-12-02 15:51:32,460 [main] INFO  org.apache.airavata.common.utils.ApplicationSettings  - Settings loaded from jar:file:/Users/supun/.m2/repository/org/apache/airavata/airavata-server-configuration/0.16-SNAPSHOT/airavata-server-configuration-0.16-SNAPSHOT.jar!/airavata-server.properties
+2015-12-02 15:51:33,615 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:51:33,631 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_REPLICA_LOCATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'DATA_REPLICA_LOCATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:51:33,642 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'CONFIGURATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'CONFIGURATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:51:33,646 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - New Database created for Data Catalog !!!
+2015-12-02 15:51:34,377 [main] ERROR org.apache.airavata.registry.core.data.catalog.impl.DataCatalogImpl  - Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
+<openjpa-2.2.0-r422266:1244990 fatal general error> org.apache.openjpa.persistence.PersistenceException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
+	at org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:102)
+	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:603)
+	at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1510)
+	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:518)
+	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:443)
+	at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
+	at org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
+	at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
+	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:968)
+	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:959)
+	at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
+	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:203)
+	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
+	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)
+	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:154)
+	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60)
+	at org.apache.airavata.registry.core.data.catalog.utils.DataCatalogJPAUtils.getEntityManager(DataCatalogJPAUtils.java:70)
+	at org.apache.airavata.registry.core.data.catalog.impl.DataCatalogImpl.publishResource(DataCatalogImpl.java:52)
+	at org.apache.airavata.data.catalog.DataCatalogTest.testPublishDataResource(DataCatalogTest.java:74)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
+	at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
+	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+	at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:110)
+	at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:87)
+	at org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:91)
+	... 46 more
+Caused by: java.sql.SQLException: validationQuery didn't return a row
+	at org.apache.commons.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:660)
+	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1558)
+	at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+	... 51 more
+2015-12-02 15:52:22,191 [main] INFO  org.apache.airavata.common.utils.ApplicationSettings  - Settings loaded from jar:file:/Users/supun/.m2/repository/org/apache/airavata/airavata-server-configuration/0.16-SNAPSHOT/airavata-server-configuration-0.16-SNAPSHOT.jar!/airavata-server.properties
+2015-12-02 15:52:23,348 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:52:23,365 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_REPLICA_LOCATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'DATA_REPLICA_LOCATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:52:23,378 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'CONFIGURATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'CONFIGURATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:52:23,381 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - New Database created for Data Catalog !!!
+2015-12-02 15:52:24,107 [main] ERROR org.apache.airavata.registry.core.data.catalog.impl.DataCatalogImpl  - Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
+<openjpa-2.2.0-r422266:1244990 fatal general error> org.apache.openjpa.persistence.PersistenceException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
+	at org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:102)
+	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:603)
+	at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1510)
+	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:518)
+	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:443)
+	at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
+	at org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
+	at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
+	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:968)
+	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:959)
+	at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
+	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:203)
+	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
+	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)
+	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:154)
+	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60)
+	at org.apache.airavata.registry.core.data.catalog.utils.DataCatalogJPAUtils.getEntityManager(DataCatalogJPAUtils.java:70)
+	at org.apache.airavata.registry.core.data.catalog.impl.DataCatalogImpl.publishResource(DataCatalogImpl.java:52)
+	at org.apache.airavata.data.catalog.DataCatalogTest.testPublishDataResource(DataCatalogTest.java:74)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (validationQuery didn't return a row)
+	at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
+	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
+	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
+	at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:110)
+	at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:87)
+	at org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:91)
+	... 46 more
+Caused by: java.sql.SQLException: validationQuery didn't return a row
+	at org.apache.commons.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:660)
+	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1558)
+	at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
+	... 51 more
+2015-12-02 15:53:23,254 [main] INFO  org.apache.airavata.common.utils.ApplicationSettings  - Settings loaded from jar:file:/Users/supun/.m2/repository/org/apache/airavata/airavata-server-configuration/0.16-SNAPSHOT/airavata-server-configuration-0.16-SNAPSHOT.jar!/airavata-server.properties
+2015-12-02 15:53:24,391 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:53:24,407 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_REPLICA_LOCATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'DATA_REPLICA_LOCATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:53:24,420 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'CONFIGURATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: ERROR X0Y32: Table/View 'CONFIGURATION' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:53:24,457 [main] ERROR org.apache.airavata.data.catalog.util.Initialize  - Error occurred while executing :   INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('data_catalog_version', '0.16')
+java.lang.Exception: Error occurred while executing :   INSERT INTO CONFIGURATION (CONFIG_KEY, CONFIG_VAL) VALUES('data_catalog_version', '0.16')
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:255)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
+	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
+Caused by: java.sql.SQLDataException: The string representation of a date/time value is out of range.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	... 30 more
+Caused by: ERROR 22007: The string representation of a date/time value is out of range.
+	at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
+	at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.executeX(Unknown Source)
+	... 32 more
+2015-12-02 15:54:53,931 [main] INFO  org.apache.airavata.common.utils.ApplicationSettings  - Settings loaded from jar:file:/Users/supun/.m2/repository/org/apache/airavata/airavata-server-configuration/0.16-SNAPSHOT/airavata-server-configuration-0.16-SNAPSHOT.jar!/airavata-server.properties
+2015-12-02 15:54:55,088 [main] INFO  org.apache.airavata.data.catalog.util.Initialize  - Table Already Exists
+java.sql.SQLTransactionRollbackException: Table/View 'DATA_RESOURCE' already exists in Schema 'AIRAVATA'.
+	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
+	at org.apache.derby.client.am.ClientStatement.execute(Unknown Source)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQL(Initialize.java:227)
+	at org.apache.airavata.data.catalog.util.Initialize.executeSQLScript(Initialize.java:196)
+	at org.apache.airavata.data.catalog.util.Initialize.initializeDB(Initialize.java:115)
+	at org.apache.airavata.data.catalog.DataCatalogTest.setUp(DataCatalogTest.java:48)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.ju

<TRUNCATED>

[16/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
renaming the module


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/1ad9ae5d
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/1ad9ae5d
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/1ad9ae5d

Branch: refs/heads/data-manager
Commit: 1ad9ae5d0891b89462c6cdfa8e1961475c3493b2
Parents: 312d7a2
Author: scnakandala <su...@gmail.com>
Authored: Tue Jan 12 10:40:49 2016 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Tue Jan 12 10:40:51 2016 -0500

----------------------------------------------------------------------
 .../java/org/apache/airavata/api/Airavata.java  |    2 +-
 .../file__transfer_models_constants.cpp         |    2 +-
 .../airavata/file__transfer_models_constants.h  |    2 +-
 .../airavata/file__transfer_models_types.cpp    |    2 +-
 .../lib/airavata/file__transfer_models_types.h  |    2 +-
 .../lib/airavata/metadata_models_constants.cpp  |    2 +-
 .../lib/airavata/metadata_models_constants.h    |    2 +-
 .../lib/airavata/metadata_models_types.cpp      |    2 +-
 .../lib/airavata/metadata_models_types.h        |    2 +-
 .../lib/airavata/replica_models_constants.cpp   |    2 +-
 .../lib/airavata/replica_models_constants.h     |    2 +-
 .../lib/airavata/replica_models_types.cpp       |    2 +-
 .../lib/airavata/replica_models_types.h         |    2 +-
 .../lib/Airavata/Model/File/Replica/Types.php   | 1028 -------
 .../lib/Airavata/Model/File/Transfer/Types.php  |  890 ------
 .../lib/Airavata/Model/File/metadata/Types.php  |  371 ---
 .../lib/apache/airavata/model/file/__init__.py  |    0
 .../airavata/model/file/metadata/__init__.py    |    1 -
 .../airavata/model/file/metadata/constants.py   |   11 -
 .../airavata/model/file/metadata/ttypes.py      |  232 --
 .../airavata/model/file/replica/__init__.py     |    1 -
 .../airavata/model/file/replica/constants.py    |   11 -
 .../airavata/model/file/replica/ttypes.py       |  663 -----
 .../airavata/model/file/transfer/__init__.py    |    1 -
 .../airavata/model/file/transfer/constants.py   |   11 -
 .../airavata/model/file/transfer/ttypes.py      |  597 ----
 .../lib/apache/airavata/model/ttypes.py         |    6 +-
 .../org/apache/airavata/model/Workflow.java     |    2 +-
 .../ApplicationDeploymentDescription.java       |    2 +-
 .../appdeployment/ApplicationModule.java        |    2 +-
 .../appcatalog/appdeployment/CommandObject.java |    2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |    2 +-
 .../ApplicationInterfaceDescription.java        |    2 +-
 .../appcatalog/computeresource/BatchQueue.java  |    2 +-
 .../computeresource/CloudJobSubmission.java     |    2 +-
 .../ComputeResourceDescription.java             |    2 +-
 .../computeresource/GlobusJobSubmission.java    |    2 +-
 .../computeresource/JobSubmissionInterface.java |    2 +-
 .../computeresource/LOCALSubmission.java        |    2 +-
 .../computeresource/ResourceJobManager.java     |    2 +-
 .../computeresource/SSHJobSubmission.java       |    2 +-
 .../computeresource/UnicoreJobSubmission.java   |    2 +-
 .../ComputeResourcePreference.java              |    2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |    2 +-
 .../gatewayprofile/StoragePreference.java       |    2 +-
 .../StorageResourceDescription.java             |    2 +-
 .../application/io/InputDataObjectType.java     |    2 +-
 .../application/io/OutputDataObjectType.java    |    2 +-
 .../airavata/model/commons/ErrorModel.java      |    2 +-
 .../model/commons/ValidationResults.java        |    2 +-
 .../airavata/model/commons/ValidatorResult.java |    2 +-
 .../data/movement/DataMovementInterface.java    |    2 +-
 .../data/movement/GridFTPDataMovement.java      |    2 +-
 .../model/data/movement/LOCALDataMovement.java  |    2 +-
 .../model/data/movement/SCPDataMovement.java    |    2 +-
 .../data/movement/UnicoreDataMovement.java      |    2 +-
 .../model/error/AiravataClientException.java    |    2 +-
 .../model/error/AiravataSystemException.java    |    2 +-
 .../model/error/AuthenticationException.java    |    2 +-
 .../model/error/AuthorizationException.java     |    2 +-
 .../error/ExperimentNotFoundException.java      |    2 +-
 .../model/error/InvalidRequestException.java    |    2 +-
 .../model/error/LaunchValidationException.java  |    2 +-
 .../model/error/ProjectNotFoundException.java   |    2 +-
 .../airavata/model/error/TimedOutException.java |    2 +-
 .../airavata/model/error/ValidationResults.java |    2 +-
 .../airavata/model/error/ValidatorResult.java   |    2 +-
 .../model/experiment/ExperimentModel.java       |    2 +-
 .../model/experiment/ExperimentStatistics.java  |    2 +-
 .../experiment/ExperimentSummaryModel.java      |    2 +-
 .../experiment/UserConfigurationDataModel.java  |    2 +-
 .../model/file/metadata/MetadataModel.java      | 1474 ----------
 .../model/file/metadata/MetadataType.java       |   62 -
 .../model/file/replica/FileCollectionModel.java | 1247 --------
 .../airavata/model/file/replica/FileModel.java  | 1879 ------------
 .../model/file/replica/FileModelType.java       |   62 -
 .../model/file/replica/FileReplicaModel.java    | 1272 ---------
 .../file/replica/ReplicaPersistentType.java     |   62 -
 .../model/file/replica/StorageResourceType.java |   71 -
 .../model/file/transfer/FileTransferMode.java   |   62 -
 .../file/transfer/FileTransferRequestModel.java | 2695 ------------------
 .../model/file/transfer/FileTransferStatus.java |   71 -
 .../model/file/transfer/LSEntryModel.java       | 1147 --------
 .../model/file/transfer/LSEntryType.java        |   62 -
 .../file/transfer/StorageResourceProtocol.java  |   74 -
 .../org/apache/airavata/model/job/JobModel.java |    2 +-
 .../event/ExperimentStatusChangeEvent.java      |    2 +-
 .../model/messaging/event/JobIdentifier.java    |    2 +-
 .../messaging/event/JobStatusChangeEvent.java   |    2 +-
 .../event/JobStatusChangeRequestEvent.java      |    2 +-
 .../airavata/model/messaging/event/Message.java |    2 +-
 .../messaging/event/ProcessIdentifier.java      |    2 +-
 .../event/ProcessStatusChangeEvent.java         |    2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |    2 +-
 .../messaging/event/ProcessSubmitEvent.java     |    2 +-
 .../messaging/event/ProcessTerminateEvent.java  |    2 +-
 .../model/messaging/event/TaskIdentifier.java   |    2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |    2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |    2 +-
 .../event/TaskStatusChangeRequestEvent.java     |    2 +-
 .../airavata/model/process/ProcessModel.java    |    2 +-
 .../ComputationalResourceSchedulingModel.java   |    2 +-
 .../airavata/model/security/AuthzToken.java     |    2 +-
 .../airavata/model/status/ExperimentStatus.java |    2 +-
 .../apache/airavata/model/status/JobStatus.java |    2 +-
 .../airavata/model/status/ProcessStatus.java    |    2 +-
 .../airavata/model/status/TaskStatus.java       |    2 +-
 .../model/task/DataStagingTaskModel.java        |    2 +-
 .../model/task/EnvironmentSetupTaskModel.java   |    2 +-
 .../model/task/JobSubmissionTaskModel.java      |    2 +-
 .../airavata/model/task/MonitorTaskModel.java   |    2 +-
 .../apache/airavata/model/task/TaskModel.java   |    2 +-
 .../airavata/model/workspace/Gateway.java       |    2 +-
 .../apache/airavata/model/workspace/Group.java  |    2 +-
 .../airavata/model/workspace/Project.java       |    2 +-
 .../apache/airavata/model/workspace/User.java   |    2 +-
 modules/data-manager/data-manager-core/pom.xml  |   95 +
 .../data/manager/core/FileManagerFactory.java   |   34 +
 .../data/manager/core/FileManagerImpl.java      |   78 +
 .../manager/core/FileTransferServiceImpl.java   |  484 ++++
 .../manager/core/MetadataCatalogService.java    |   76 +
 .../core/MetadataCatalogServiceImpl.java        |  105 +
 .../manager/core/ReplicaCatalogServiceImpl.java |  172 ++
 .../conversion/AbstractThriftDeserializer.java  |  151 +
 .../db/conversion/AbstractThriftSerializer.java |  122 +
 .../db/conversion/ModelConversionHelper.java    |  102 +
 .../metadata/MetadataDeserializer.java          |   44 +
 .../conversion/metadata/MetadataSerializer.java |   41 +
 .../replica/FileCollectionDeserializer.java     |   44 +
 .../replica/FileCollectionSerializer.java       |   41 +
 .../db/conversion/replica/FileDeserializer.java |   44 +
 .../db/conversion/replica/FileSerializer.java   |   41 +
 .../FileTransferRequestDeserializer.java        |   44 +
 .../transfer/FileTransferRequestSerializer.java |   41 +
 .../manager/core/db/dao/FileCollectionDao.java  |   93 +
 .../data/manager/core/db/dao/FileDao.java       |   93 +
 .../core/db/dao/FileTransferRequestDao.java     |   92 +
 .../data/manager/core/db/dao/MetadataDao.java   |   93 +
 .../data/manager/core/db/utils/MongoUtils.java  |   69 +
 .../core/remote/client/RemoteStorageClient.java |  107 +
 .../remote/client/gridftp/ExecutionContext.java |  184 ++
 .../core/remote/client/gridftp/GridFTP.java     |  430 +++
 .../remote/client/gridftp/GridFTPConstants.java |   45 +
 .../client/gridftp/GridFTPContactInfo.java      |   60 +
 .../gridftp/myproxy/CertificateManager.java     |   87 +
 .../gridftp/myproxy/MyProxyCredentials.java     |  296 ++
 .../client/gridftp/myproxy/SecurityContext.java |  211 ++
 .../remote/client/http/HTTPStorageClient.java   |  215 ++
 .../core/remote/client/scp/CommandOutput.java   |   34 +
 .../core/remote/client/scp/SCPApiException.java |   33 +
 .../remote/client/scp/SCPStorageClient.java     |  405 +++
 .../remote/client/scp/StandardOutReader.java    |   86 +
 .../remote/client/sftp/SFTPStorageClient.java   |  209 ++
 .../core/utils/FileManagerConstants.java        |   33 +
 .../core/utils/FileManagerProperties.java       |   55 +
 .../src/main/resources/file-manager.properties  |   24 +
 .../main/resources/gridftp-client.properties    |   30 +
 .../core/db/dao/FileTransferRequestDaoTest.java |   45 +
 .../remote/client/gridftp/CertFileReadTest.java |  126 +
 .../remote/client/gridftp/FileTransferTest.java |  168 ++
 .../client/http/HTTPStorageClientTest.java      |   45 +
 .../remote/client/scp/SCPStorageClientTest.java |   55 +
 .../airavata-myproxy-client.properties          |   28 +
 .../data-manager-core/src/test/resources/dummy  |    0
 modules/data-manager/data-manager-cpi/pom.xml   |   30 +
 .../airavata/data/manager/cpi/DataManager.java  |   42 +
 .../data/manager/cpi/DataManagerConstants.java  |   32 +
 .../data/manager/cpi/DataManagerException.java  |   35 +
 .../data/manager/cpi/FileTransferService.java   |  212 ++
 .../manager/cpi/MetadataCatalogService.java     |   56 +
 .../data/manager/cpi/ReplicaCatalogService.java |   86 +
 modules/data-manager/pom.xml                    |   54 +
 modules/file-manager/file-manager-core/pom.xml  |   95 -
 .../file/manager/core/FileManagerFactory.java   |   34 -
 .../file/manager/core/FileManagerImpl.java      |   75 -
 .../manager/core/FileTransferServiceImpl.java   |  484 ----
 .../manager/core/MetadataCatalogService.java    |   76 -
 .../core/MetadataCatalogServiceImpl.java        |  105 -
 .../manager/core/ReplicaCatalogServiceImpl.java |  172 --
 .../conversion/AbstractThriftDeserializer.java  |  154 -
 .../db/conversion/AbstractThriftSerializer.java |  122 -
 .../db/conversion/ModelConversionHelper.java    |  102 -
 .../metadata/MetadataDeserializer.java          |   45 -
 .../conversion/metadata/MetadataSerializer.java |   42 -
 .../replica/FileCollectionDeserializer.java     |   44 -
 .../replica/FileCollectionSerializer.java       |   41 -
 .../db/conversion/replica/FileDeserializer.java |   44 -
 .../db/conversion/replica/FileSerializer.java   |   41 -
 .../FileTransferRequestDeserializer.java        |   44 -
 .../transfer/FileTransferRequestSerializer.java |   41 -
 .../manager/core/db/dao/FileCollectionDao.java  |   93 -
 .../file/manager/core/db/dao/FileDao.java       |   93 -
 .../core/db/dao/FileTransferRequestDao.java     |   92 -
 .../file/manager/core/db/dao/MetadataDao.java   |   94 -
 .../file/manager/core/db/utils/MongoUtils.java  |   69 -
 .../core/remote/client/RemoteStorageClient.java |  107 -
 .../remote/client/gridftp/ExecutionContext.java |  184 --
 .../core/remote/client/gridftp/GridFTP.java     |  430 ---
 .../remote/client/gridftp/GridFTPConstants.java |   45 -
 .../client/gridftp/GridFTPContactInfo.java      |   60 -
 .../gridftp/myproxy/CertificateManager.java     |   87 -
 .../gridftp/myproxy/MyProxyCredentials.java     |  296 --
 .../client/gridftp/myproxy/SecurityContext.java |  211 --
 .../remote/client/http/HTTPStorageClient.java   |  215 --
 .../core/remote/client/scp/CommandOutput.java   |   34 -
 .../core/remote/client/scp/SCPApiException.java |   33 -
 .../remote/client/scp/SCPStorageClient.java     |  406 ---
 .../remote/client/scp/StandardOutReader.java    |   86 -
 .../remote/client/sftp/SFTPStorageClient.java   |  209 --
 .../core/utils/FileManagerConstants.java        |   33 -
 .../core/utils/FileManagerProperties.java       |   58 -
 .../src/main/resources/file-manager.properties  |   24 -
 .../main/resources/gridftp-client.properties    |   30 -
 .../core/db/dao/FileTransferRequestDaoTest.java |   45 -
 .../remote/client/gridftp/CertFileReadTest.java |  126 -
 .../remote/client/gridftp/FileTransferTest.java |  168 --
 .../client/http/HTTPStorageClientTest.java      |   45 -
 .../remote/client/scp/SCPStorageClientTest.java |   55 -
 .../airavata-myproxy-client.properties          |   28 -
 .../file-manager-core/src/test/resources/dummy  |    0
 modules/file-manager/file-manager-cpi/pom.xml   |   30 -
 .../airavata/file/manager/cpi/FileManager.java  |   42 -
 .../file/manager/cpi/FileManagerConstants.java  |   32 -
 .../file/manager/cpi/FileManagerException.java  |   35 -
 .../file/manager/cpi/FileTransferService.java   |  212 --
 .../manager/cpi/MetadataCatalogService.java     |   56 -
 .../file/manager/cpi/ReplicaCatalogService.java |   86 -
 modules/file-manager/pom.xml                    |   54 -
 pom.xml                                         |    2 +-
 .../data-models/airavata_data_models.thrift     |    6 +-
 .../file__transfer_models.thrift                |   77 +
 .../data-manager-models/metadata_models.thrift  |   41 +
 .../data-manager-models/replica_models.thrift   |   83 +
 .../file__transfer_models.thrift                |   77 -
 .../file-manager-models/metadata_models.thrift  |   41 -
 .../file-manager-models/replica_models.thrift   |   83 -
 236 files changed, 6053 insertions(+), 20117 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 5180921..acf770d 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
 public class Airavata {
 
   public interface Iface {

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_constants.cpp
index c2927ce..a1a0d0f 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_constants.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_constants.cpp
@@ -23,7 +23,7 @@
  */
 #include "file__transfer_models_constants.h"
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace transfer {
+namespace apache { namespace airavata { namespace model { namespace data { namespace transfer {
 
 const file__transfer_modelsConstants g_file__transfer_models_constants;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_constants.h
index eb49228..52a10b6 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_constants.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_constants.h
@@ -26,7 +26,7 @@
 
 #include "file__transfer_models_types.h"
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace transfer {
+namespace apache { namespace airavata { namespace model { namespace data { namespace transfer {
 
 class file__transfer_modelsConstants {
  public:

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_types.cpp
index f8e894f..375401c 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_types.cpp
@@ -28,7 +28,7 @@
 
 #include <thrift/TToString.h>
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace transfer {
+namespace apache { namespace airavata { namespace model { namespace data { namespace transfer {
 
 int _kStorageResourceProtocolValues[] = {
   StorageResourceProtocol::SCP,

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_types.h
index 18f1b8b..01f7cca 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/file__transfer_models_types.h
@@ -34,7 +34,7 @@
 #include <thrift/cxxfunctional.h>
 
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace transfer {
+namespace apache { namespace airavata { namespace model { namespace data { namespace transfer {
 
 struct StorageResourceProtocol {
   enum type {

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_constants.cpp
index b067323..b4f0d68 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_constants.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_constants.cpp
@@ -23,7 +23,7 @@
  */
 #include "metadata_models_constants.h"
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace metadata {
+namespace apache { namespace airavata { namespace model { namespace data { namespace metadata {
 
 const metadata_modelsConstants g_metadata_models_constants;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_constants.h
index a43c422..9d7bf9a 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_constants.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_constants.h
@@ -26,7 +26,7 @@
 
 #include "metadata_models_types.h"
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace metadata {
+namespace apache { namespace airavata { namespace model { namespace data { namespace metadata {
 
 class metadata_modelsConstants {
  public:

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_types.cpp
index fdf959e..f7d964e 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_types.cpp
@@ -28,7 +28,7 @@
 
 #include <thrift/TToString.h>
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace metadata {
+namespace apache { namespace airavata { namespace model { namespace data { namespace metadata {
 
 int _kMetadataTypeValues[] = {
   MetadataType::FILE,

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_types.h
index c8651f6..2be82d9 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/metadata_models_types.h
@@ -34,7 +34,7 @@
 #include <thrift/cxxfunctional.h>
 
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace metadata {
+namespace apache { namespace airavata { namespace model { namespace data { namespace metadata {
 
 struct MetadataType {
   enum type {

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_constants.cpp
index 175292b..b0b67df 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_constants.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_constants.cpp
@@ -23,7 +23,7 @@
  */
 #include "replica_models_constants.h"
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace replica {
+namespace apache { namespace airavata { namespace model { namespace data { namespace replica {
 
 const replica_modelsConstants g_replica_models_constants;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_constants.h
index aee0d7e..0dfb956 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_constants.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_constants.h
@@ -26,7 +26,7 @@
 
 #include "replica_models_types.h"
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace replica {
+namespace apache { namespace airavata { namespace model { namespace data { namespace replica {
 
 class replica_modelsConstants {
  public:

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_types.cpp
index b5c3027..d5a1762 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_types.cpp
@@ -28,7 +28,7 @@
 
 #include <thrift/TToString.h>
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace replica {
+namespace apache { namespace airavata { namespace model { namespace data { namespace replica {
 
 int _kFileModelTypeValues[] = {
   FileModelType::FILE,

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_types.h
index 73569cc..dad3e27 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_models_types.h
@@ -35,7 +35,7 @@
 #include "data_movement_models_types.h"
 
 
-namespace apache { namespace airavata { namespace model { namespace file { namespace replica {
+namespace apache { namespace airavata { namespace model { namespace data { namespace replica {
 
 struct FileModelType {
   enum type {

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/Replica/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/Replica/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/Replica/Types.php
deleted file mode 100644
index 7ccf94c..0000000
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/Replica/Types.php
+++ /dev/null
@@ -1,1028 +0,0 @@
-<?php
-namespace Airavata\Model\File\Replica;
-
-/**
- * Autogenerated by Thrift Compiler (0.9.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-use Thrift\Base\TBase;
-use Thrift\Type\TType;
-use Thrift\Type\TMessageType;
-use Thrift\Exception\TException;
-use Thrift\Exception\TProtocolException;
-use Thrift\Protocol\TProtocol;
-use Thrift\Protocol\TBinaryProtocolAccelerated;
-use Thrift\Exception\TApplicationException;
-
-
-final class FileModelType {
-  const FILE = 0;
-  const DIRECTORY = 1;
-  static public $__names = array(
-    0 => 'FILE',
-    1 => 'DIRECTORY',
-  );
-}
-
-final class StorageResourceType {
-  const GATEWAY_DATA_STORE = 0;
-  const BACKUP_GATEWAY_DATA_STORE = 1;
-  const COMPUTE_RESOURCE = 2;
-  const LONG_TERM_STORAGE_RESOURCE = 3;
-  const OTHER = 4;
-  static public $__names = array(
-    0 => 'GATEWAY_DATA_STORE',
-    1 => 'BACKUP_GATEWAY_DATA_STORE',
-    2 => 'COMPUTE_RESOURCE',
-    3 => 'LONG_TERM_STORAGE_RESOURCE',
-    4 => 'OTHER',
-  );
-}
-
-final class ReplicaPersistentType {
-  const TRANSIENT = 0;
-  const PERSISTENT = 1;
-  static public $__names = array(
-    0 => 'TRANSIENT',
-    1 => 'PERSISTENT',
-  );
-}
-
-class FileCollectionModel {
-  static $_TSPEC;
-
-  /**
-   * @var string
-   */
-  public $collectionId = null;
-  /**
-   * @var string
-   */
-  public $gatewayId = null;
-  /**
-   * @var string
-   */
-  public $username = null;
-  /**
-   * @var string[]
-   */
-  public $sharedUsers = null;
-  /**
-   * @var bool
-   */
-  public $sharedPublic = null;
-  /**
-   * @var string
-   */
-  public $collectionName = null;
-  /**
-   * @var string
-   */
-  public $collectionDescription = null;
-  /**
-   * @var string[]
-   */
-  public $fileIdList = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'collectionId',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'username',
-          'type' => TType::STRING,
-          ),
-        4 => array(
-          'var' => 'sharedUsers',
-          'type' => TType::LST,
-          'etype' => TType::STRING,
-          'elem' => array(
-            'type' => TType::STRING,
-            ),
-          ),
-        5 => array(
-          'var' => 'sharedPublic',
-          'type' => TType::BOOL,
-          ),
-        6 => array(
-          'var' => 'collectionName',
-          'type' => TType::STRING,
-          ),
-        7 => array(
-          'var' => 'collectionDescription',
-          'type' => TType::STRING,
-          ),
-        8 => array(
-          'var' => 'fileIdList',
-          'type' => TType::LST,
-          'etype' => TType::STRING,
-          'elem' => array(
-            'type' => TType::STRING,
-            ),
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['collectionId'])) {
-        $this->collectionId = $vals['collectionId'];
-      }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['username'])) {
-        $this->username = $vals['username'];
-      }
-      if (isset($vals['sharedUsers'])) {
-        $this->sharedUsers = $vals['sharedUsers'];
-      }
-      if (isset($vals['sharedPublic'])) {
-        $this->sharedPublic = $vals['sharedPublic'];
-      }
-      if (isset($vals['collectionName'])) {
-        $this->collectionName = $vals['collectionName'];
-      }
-      if (isset($vals['collectionDescription'])) {
-        $this->collectionDescription = $vals['collectionDescription'];
-      }
-      if (isset($vals['fileIdList'])) {
-        $this->fileIdList = $vals['fileIdList'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'FileCollectionModel';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->collectionId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->username);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::LST) {
-            $this->sharedUsers = array();
-            $_size0 = 0;
-            $_etype3 = 0;
-            $xfer += $input->readListBegin($_etype3, $_size0);
-            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
-            {
-              $elem5 = null;
-              $xfer += $input->readString($elem5);
-              $this->sharedUsers []= $elem5;
-            }
-            $xfer += $input->readListEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::BOOL) {
-            $xfer += $input->readBool($this->sharedPublic);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 6:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->collectionName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 7:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->collectionDescription);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 8:
-          if ($ftype == TType::LST) {
-            $this->fileIdList = array();
-            $_size6 = 0;
-            $_etype9 = 0;
-            $xfer += $input->readListBegin($_etype9, $_size6);
-            for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
-            {
-              $elem11 = null;
-              $xfer += $input->readString($elem11);
-              $this->fileIdList []= $elem11;
-            }
-            $xfer += $input->readListEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('FileCollectionModel');
-    if ($this->collectionId !== null) {
-      $xfer += $output->writeFieldBegin('collectionId', TType::STRING, 1);
-      $xfer += $output->writeString($this->collectionId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->username !== null) {
-      $xfer += $output->writeFieldBegin('username', TType::STRING, 3);
-      $xfer += $output->writeString($this->username);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->sharedUsers !== null) {
-      if (!is_array($this->sharedUsers)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('sharedUsers', TType::LST, 4);
-      {
-        $output->writeListBegin(TType::STRING, count($this->sharedUsers));
-        {
-          foreach ($this->sharedUsers as $iter12)
-          {
-            $xfer += $output->writeString($iter12);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->sharedPublic !== null) {
-      $xfer += $output->writeFieldBegin('sharedPublic', TType::BOOL, 5);
-      $xfer += $output->writeBool($this->sharedPublic);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->collectionName !== null) {
-      $xfer += $output->writeFieldBegin('collectionName', TType::STRING, 6);
-      $xfer += $output->writeString($this->collectionName);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->collectionDescription !== null) {
-      $xfer += $output->writeFieldBegin('collectionDescription', TType::STRING, 7);
-      $xfer += $output->writeString($this->collectionDescription);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->fileIdList !== null) {
-      if (!is_array($this->fileIdList)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('fileIdList', TType::LST, 8);
-      {
-        $output->writeListBegin(TType::STRING, count($this->fileIdList));
-        {
-          foreach ($this->fileIdList as $iter13)
-          {
-            $xfer += $output->writeString($iter13);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class FileModel {
-  static $_TSPEC;
-
-  /**
-   * @var string
-   */
-  public $fileId = null;
-  /**
-   * @var string
-   */
-  public $gatewayId = null;
-  /**
-   * @var string
-   */
-  public $username = null;
-  /**
-   * @var string[]
-   */
-  public $sharedUsers = null;
-  /**
-   * @var bool
-   */
-  public $sharedPublic = null;
-  /**
-   * @var string
-   */
-  public $fileName = null;
-  /**
-   * @var string
-   */
-  public $fileDescription = null;
-  /**
-   * @var string
-   */
-  public $sha256Checksum = null;
-  /**
-   * @var int
-   */
-  public $fileType = null;
-  /**
-   * @var int
-   */
-  public $fileSize = null;
-  /**
-   * @var string
-   */
-  public $dataType = null;
-  /**
-   * @var int
-   */
-  public $creationTime = null;
-  /**
-   * @var int
-   */
-  public $lastModifiedTime = null;
-  /**
-   * @var \Airavata\Model\File\Replica\FileReplicaModel[]
-   */
-  public $fileReplicas = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'fileId',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'username',
-          'type' => TType::STRING,
-          ),
-        4 => array(
-          'var' => 'sharedUsers',
-          'type' => TType::LST,
-          'etype' => TType::STRING,
-          'elem' => array(
-            'type' => TType::STRING,
-            ),
-          ),
-        5 => array(
-          'var' => 'sharedPublic',
-          'type' => TType::BOOL,
-          ),
-        6 => array(
-          'var' => 'fileName',
-          'type' => TType::STRING,
-          ),
-        7 => array(
-          'var' => 'fileDescription',
-          'type' => TType::STRING,
-          ),
-        8 => array(
-          'var' => 'sha256Checksum',
-          'type' => TType::STRING,
-          ),
-        9 => array(
-          'var' => 'fileType',
-          'type' => TType::I32,
-          ),
-        10 => array(
-          'var' => 'fileSize',
-          'type' => TType::I32,
-          ),
-        11 => array(
-          'var' => 'dataType',
-          'type' => TType::STRING,
-          ),
-        12 => array(
-          'var' => 'creationTime',
-          'type' => TType::I64,
-          ),
-        13 => array(
-          'var' => 'lastModifiedTime',
-          'type' => TType::I64,
-          ),
-        14 => array(
-          'var' => 'fileReplicas',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\File\Replica\FileReplicaModel',
-            ),
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['fileId'])) {
-        $this->fileId = $vals['fileId'];
-      }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['username'])) {
-        $this->username = $vals['username'];
-      }
-      if (isset($vals['sharedUsers'])) {
-        $this->sharedUsers = $vals['sharedUsers'];
-      }
-      if (isset($vals['sharedPublic'])) {
-        $this->sharedPublic = $vals['sharedPublic'];
-      }
-      if (isset($vals['fileName'])) {
-        $this->fileName = $vals['fileName'];
-      }
-      if (isset($vals['fileDescription'])) {
-        $this->fileDescription = $vals['fileDescription'];
-      }
-      if (isset($vals['sha256Checksum'])) {
-        $this->sha256Checksum = $vals['sha256Checksum'];
-      }
-      if (isset($vals['fileType'])) {
-        $this->fileType = $vals['fileType'];
-      }
-      if (isset($vals['fileSize'])) {
-        $this->fileSize = $vals['fileSize'];
-      }
-      if (isset($vals['dataType'])) {
-        $this->dataType = $vals['dataType'];
-      }
-      if (isset($vals['creationTime'])) {
-        $this->creationTime = $vals['creationTime'];
-      }
-      if (isset($vals['lastModifiedTime'])) {
-        $this->lastModifiedTime = $vals['lastModifiedTime'];
-      }
-      if (isset($vals['fileReplicas'])) {
-        $this->fileReplicas = $vals['fileReplicas'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'FileModel';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->fileId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->username);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::LST) {
-            $this->sharedUsers = array();
-            $_size14 = 0;
-            $_etype17 = 0;
-            $xfer += $input->readListBegin($_etype17, $_size14);
-            for ($_i18 = 0; $_i18 < $_size14; ++$_i18)
-            {
-              $elem19 = null;
-              $xfer += $input->readString($elem19);
-              $this->sharedUsers []= $elem19;
-            }
-            $xfer += $input->readListEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::BOOL) {
-            $xfer += $input->readBool($this->sharedPublic);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 6:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->fileName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 7:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->fileDescription);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 8:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->sha256Checksum);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 9:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->fileType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 10:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->fileSize);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 11:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->dataType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 12:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->creationTime);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 13:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->lastModifiedTime);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 14:
-          if ($ftype == TType::LST) {
-            $this->fileReplicas = array();
-            $_size20 = 0;
-            $_etype23 = 0;
-            $xfer += $input->readListBegin($_etype23, $_size20);
-            for ($_i24 = 0; $_i24 < $_size20; ++$_i24)
-            {
-              $elem25 = null;
-              $elem25 = new \Airavata\Model\File\Replica\FileReplicaModel();
-              $xfer += $elem25->read($input);
-              $this->fileReplicas []= $elem25;
-            }
-            $xfer += $input->readListEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('FileModel');
-    if ($this->fileId !== null) {
-      $xfer += $output->writeFieldBegin('fileId', TType::STRING, 1);
-      $xfer += $output->writeString($this->fileId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->username !== null) {
-      $xfer += $output->writeFieldBegin('username', TType::STRING, 3);
-      $xfer += $output->writeString($this->username);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->sharedUsers !== null) {
-      if (!is_array($this->sharedUsers)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('sharedUsers', TType::LST, 4);
-      {
-        $output->writeListBegin(TType::STRING, count($this->sharedUsers));
-        {
-          foreach ($this->sharedUsers as $iter26)
-          {
-            $xfer += $output->writeString($iter26);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->sharedPublic !== null) {
-      $xfer += $output->writeFieldBegin('sharedPublic', TType::BOOL, 5);
-      $xfer += $output->writeBool($this->sharedPublic);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->fileName !== null) {
-      $xfer += $output->writeFieldBegin('fileName', TType::STRING, 6);
-      $xfer += $output->writeString($this->fileName);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->fileDescription !== null) {
-      $xfer += $output->writeFieldBegin('fileDescription', TType::STRING, 7);
-      $xfer += $output->writeString($this->fileDescription);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->sha256Checksum !== null) {
-      $xfer += $output->writeFieldBegin('sha256Checksum', TType::STRING, 8);
-      $xfer += $output->writeString($this->sha256Checksum);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->fileType !== null) {
-      $xfer += $output->writeFieldBegin('fileType', TType::I32, 9);
-      $xfer += $output->writeI32($this->fileType);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->fileSize !== null) {
-      $xfer += $output->writeFieldBegin('fileSize', TType::I32, 10);
-      $xfer += $output->writeI32($this->fileSize);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->dataType !== null) {
-      $xfer += $output->writeFieldBegin('dataType', TType::STRING, 11);
-      $xfer += $output->writeString($this->dataType);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->creationTime !== null) {
-      $xfer += $output->writeFieldBegin('creationTime', TType::I64, 12);
-      $xfer += $output->writeI64($this->creationTime);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->lastModifiedTime !== null) {
-      $xfer += $output->writeFieldBegin('lastModifiedTime', TType::I64, 13);
-      $xfer += $output->writeI64($this->lastModifiedTime);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->fileReplicas !== null) {
-      if (!is_array($this->fileReplicas)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('fileReplicas', TType::LST, 14);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->fileReplicas));
-        {
-          foreach ($this->fileReplicas as $iter27)
-          {
-            $xfer += $iter27->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class FileReplicaModel {
-  static $_TSPEC;
-
-  /**
-   * @var string
-   */
-  public $replicaName = null;
-  /**
-   * @var string
-   */
-  public $replicaDescription = null;
-  /**
-   * @var string
-   */
-  public $storageHostname = null;
-  /**
-   * @var string
-   */
-  public $storageResourceId = null;
-  /**
-   * @var string
-   */
-  public $filePath = null;
-  /**
-   * @var int
-   */
-  public $creationTime = null;
-  /**
-   * @var int
-   */
-  public $validUntilTime = null;
-  /**
-   * @var int
-   */
-  public $storageResourceType = null;
-  /**
-   * @var int
-   */
-  public $replicaPersistentType = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'replicaName',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'replicaDescription',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'storageHostname',
-          'type' => TType::STRING,
-          ),
-        4 => array(
-          'var' => 'storageResourceId',
-          'type' => TType::STRING,
-          ),
-        5 => array(
-          'var' => 'filePath',
-          'type' => TType::STRING,
-          ),
-        6 => array(
-          'var' => 'creationTime',
-          'type' => TType::I64,
-          ),
-        7 => array(
-          'var' => 'validUntilTime',
-          'type' => TType::I64,
-          ),
-        8 => array(
-          'var' => 'storageResourceType',
-          'type' => TType::I32,
-          ),
-        9 => array(
-          'var' => 'replicaPersistentType',
-          'type' => TType::I32,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['replicaName'])) {
-        $this->replicaName = $vals['replicaName'];
-      }
-      if (isset($vals['replicaDescription'])) {
-        $this->replicaDescription = $vals['replicaDescription'];
-      }
-      if (isset($vals['storageHostname'])) {
-        $this->storageHostname = $vals['storageHostname'];
-      }
-      if (isset($vals['storageResourceId'])) {
-        $this->storageResourceId = $vals['storageResourceId'];
-      }
-      if (isset($vals['filePath'])) {
-        $this->filePath = $vals['filePath'];
-      }
-      if (isset($vals['creationTime'])) {
-        $this->creationTime = $vals['creationTime'];
-      }
-      if (isset($vals['validUntilTime'])) {
-        $this->validUntilTime = $vals['validUntilTime'];
-      }
-      if (isset($vals['storageResourceType'])) {
-        $this->storageResourceType = $vals['storageResourceType'];
-      }
-      if (isset($vals['replicaPersistentType'])) {
-        $this->replicaPersistentType = $vals['replicaPersistentType'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'FileReplicaModel';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->replicaName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->replicaDescription);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->storageHostname);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->storageResourceId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->filePath);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 6:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->creationTime);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 7:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->validUntilTime);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 8:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->storageResourceType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 9:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->replicaPersistentType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('FileReplicaModel');
-    if ($this->replicaName !== null) {
-      $xfer += $output->writeFieldBegin('replicaName', TType::STRING, 1);
-      $xfer += $output->writeString($this->replicaName);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->replicaDescription !== null) {
-      $xfer += $output->writeFieldBegin('replicaDescription', TType::STRING, 2);
-      $xfer += $output->writeString($this->replicaDescription);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->storageHostname !== null) {
-      $xfer += $output->writeFieldBegin('storageHostname', TType::STRING, 3);
-      $xfer += $output->writeString($this->storageHostname);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->storageResourceId !== null) {
-      $xfer += $output->writeFieldBegin('storageResourceId', TType::STRING, 4);
-      $xfer += $output->writeString($this->storageResourceId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->filePath !== null) {
-      $xfer += $output->writeFieldBegin('filePath', TType::STRING, 5);
-      $xfer += $output->writeString($this->filePath);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->creationTime !== null) {
-      $xfer += $output->writeFieldBegin('creationTime', TType::I64, 6);
-      $xfer += $output->writeI64($this->creationTime);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->validUntilTime !== null) {
-      $xfer += $output->writeFieldBegin('validUntilTime', TType::I64, 7);
-      $xfer += $output->writeI64($this->validUntilTime);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->storageResourceType !== null) {
-      $xfer += $output->writeFieldBegin('storageResourceType', TType::I32, 8);
-      $xfer += $output->writeI32($this->storageResourceType);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->replicaPersistentType !== null) {
-      $xfer += $output->writeFieldBegin('replicaPersistentType', TType::I32, 9);
-      $xfer += $output->writeI32($this->replicaPersistentType);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/Transfer/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/Transfer/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/Transfer/Types.php
deleted file mode 100644
index 46eae5b..0000000
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/File/Transfer/Types.php
+++ /dev/null
@@ -1,890 +0,0 @@
-<?php
-namespace Airavata\Model\File\Transfer;
-
-/**
- * Autogenerated by Thrift Compiler (0.9.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-use Thrift\Base\TBase;
-use Thrift\Type\TType;
-use Thrift\Type\TMessageType;
-use Thrift\Exception\TException;
-use Thrift\Exception\TProtocolException;
-use Thrift\Protocol\TProtocol;
-use Thrift\Protocol\TBinaryProtocolAccelerated;
-use Thrift\Exception\TApplicationException;
-
-
-final class StorageResourceProtocol {
-  const SCP = 0;
-  const SFTP = 1;
-  const HTTP = 2;
-  const HTTPS = 3;
-  const GridFTP = 4;
-  const LOCAL = 5;
-  static public $__names = array(
-    0 => 'SCP',
-    1 => 'SFTP',
-    2 => 'HTTP',
-    3 => 'HTTPS',
-    4 => 'GridFTP',
-    5 => 'LOCAL',
-  );
-}
-
-final class LSEntryType {
-  const DIRECTORY = 0;
-  const FILE = 1;
-  static public $__names = array(
-    0 => 'DIRECTORY',
-    1 => 'FILE',
-  );
-}
-
-final class FileTransferMode {
-  const SYNC = 0;
-  const ASYNC = 1;
-  static public $__names = array(
-    0 => 'SYNC',
-    1 => 'ASYNC',
-  );
-}
-
-final class FileTransferStatus {
-  const CREATED = 0;
-  const QUEUED = 1;
-  const RUNNING = 2;
-  const COMPLETED = 3;
-  const FAILED = 4;
-  static public $__names = array(
-    0 => 'CREATED',
-    1 => 'QUEUED',
-    2 => 'RUNNING',
-    3 => 'COMPLETED',
-    4 => 'FAILED',
-  );
-}
-
-class FileTransferRequestModel {
-  static $_TSPEC;
-
-  /**
-   * @var string
-   */
-  public $transferId = null;
-  /**
-   * @var string
-   */
-  public $gatewayId = null;
-  /**
-   * @var string
-   */
-  public $username = null;
-  /**
-   * @var string
-   */
-  public $srcHostname = null;
-  /**
-   * @var string
-   */
-  public $srcLoginName = null;
-  /**
-   * @var int
-   */
-  public $srcPort = null;
-  /**
-   * @var int
-   */
-  public $srcProtocol = null;
-  /**
-   * @var string
-   */
-  public $srcFilePath = null;
-  /**
-   * @var string
-   */
-  public $srcHostCredToken = null;
-  /**
-   * @var string
-   */
-  public $destHostname = null;
-  /**
-   * @var string
-   */
-  public $destLoginName = null;
-  /**
-   * @var int
-   */
-  public $destPort = null;
-  /**
-   * @var int
-   */
-  public $destProtocol = null;
-  /**
-   * @var string
-   */
-  public $destFilePath = null;
-  /**
-   * @var string
-   */
-  public $destHostCredToken = null;
-  /**
-   * @var int
-   */
-  public $fileTransferMode = null;
-  /**
-   * @var int
-   */
-  public $transferStatus = null;
-  /**
-   * @var int
-   */
-  public $fileSize = null;
-  /**
-   * @var int
-   */
-  public $transferTime = null;
-  /**
-   * @var int
-   */
-  public $createdTime = null;
-  /**
-   * @var int
-   */
-  public $lastModifiedType = null;
-  /**
-   * @var string[]
-   */
-  public $callbackEmails = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'transferId',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'username',
-          'type' => TType::STRING,
-          ),
-        4 => array(
-          'var' => 'srcHostname',
-          'type' => TType::STRING,
-          ),
-        5 => array(
-          'var' => 'srcLoginName',
-          'type' => TType::STRING,
-          ),
-        6 => array(
-          'var' => 'srcPort',
-          'type' => TType::I64,
-          ),
-        7 => array(
-          'var' => 'srcProtocol',
-          'type' => TType::I32,
-          ),
-        8 => array(
-          'var' => 'srcFilePath',
-          'type' => TType::STRING,
-          ),
-        9 => array(
-          'var' => 'srcHostCredToken',
-          'type' => TType::STRING,
-          ),
-        10 => array(
-          'var' => 'destHostname',
-          'type' => TType::STRING,
-          ),
-        11 => array(
-          'var' => 'destLoginName',
-          'type' => TType::STRING,
-          ),
-        12 => array(
-          'var' => 'destPort',
-          'type' => TType::I64,
-          ),
-        13 => array(
-          'var' => 'destProtocol',
-          'type' => TType::I32,
-          ),
-        14 => array(
-          'var' => 'destFilePath',
-          'type' => TType::STRING,
-          ),
-        15 => array(
-          'var' => 'destHostCredToken',
-          'type' => TType::STRING,
-          ),
-        16 => array(
-          'var' => 'fileTransferMode',
-          'type' => TType::I32,
-          ),
-        17 => array(
-          'var' => 'transferStatus',
-          'type' => TType::I32,
-          ),
-        18 => array(
-          'var' => 'fileSize',
-          'type' => TType::I64,
-          ),
-        19 => array(
-          'var' => 'transferTime',
-          'type' => TType::I64,
-          ),
-        20 => array(
-          'var' => 'createdTime',
-          'type' => TType::I64,
-          ),
-        21 => array(
-          'var' => 'lastModifiedType',
-          'type' => TType::I64,
-          ),
-        22 => array(
-          'var' => 'callbackEmails',
-          'type' => TType::LST,
-          'etype' => TType::STRING,
-          'elem' => array(
-            'type' => TType::STRING,
-            ),
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['transferId'])) {
-        $this->transferId = $vals['transferId'];
-      }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['username'])) {
-        $this->username = $vals['username'];
-      }
-      if (isset($vals['srcHostname'])) {
-        $this->srcHostname = $vals['srcHostname'];
-      }
-      if (isset($vals['srcLoginName'])) {
-        $this->srcLoginName = $vals['srcLoginName'];
-      }
-      if (isset($vals['srcPort'])) {
-        $this->srcPort = $vals['srcPort'];
-      }
-      if (isset($vals['srcProtocol'])) {
-        $this->srcProtocol = $vals['srcProtocol'];
-      }
-      if (isset($vals['srcFilePath'])) {
-        $this->srcFilePath = $vals['srcFilePath'];
-      }
-      if (isset($vals['srcHostCredToken'])) {
-        $this->srcHostCredToken = $vals['srcHostCredToken'];
-      }
-      if (isset($vals['destHostname'])) {
-        $this->destHostname = $vals['destHostname'];
-      }
-      if (isset($vals['destLoginName'])) {
-        $this->destLoginName = $vals['destLoginName'];
-      }
-      if (isset($vals['destPort'])) {
-        $this->destPort = $vals['destPort'];
-      }
-      if (isset($vals['destProtocol'])) {
-        $this->destProtocol = $vals['destProtocol'];
-      }
-      if (isset($vals['destFilePath'])) {
-        $this->destFilePath = $vals['destFilePath'];
-      }
-      if (isset($vals['destHostCredToken'])) {
-        $this->destHostCredToken = $vals['destHostCredToken'];
-      }
-      if (isset($vals['fileTransferMode'])) {
-        $this->fileTransferMode = $vals['fileTransferMode'];
-      }
-      if (isset($vals['transferStatus'])) {
-        $this->transferStatus = $vals['transferStatus'];
-      }
-      if (isset($vals['fileSize'])) {
-        $this->fileSize = $vals['fileSize'];
-      }
-      if (isset($vals['transferTime'])) {
-        $this->transferTime = $vals['transferTime'];
-      }
-      if (isset($vals['createdTime'])) {
-        $this->createdTime = $vals['createdTime'];
-      }
-      if (isset($vals['lastModifiedType'])) {
-        $this->lastModifiedType = $vals['lastModifiedType'];
-      }
-      if (isset($vals['callbackEmails'])) {
-        $this->callbackEmails = $vals['callbackEmails'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'FileTransferRequestModel';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->transferId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->username);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->srcHostname);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->srcLoginName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 6:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->srcPort);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 7:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->srcProtocol);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 8:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->srcFilePath);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 9:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->srcHostCredToken);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 10:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->destHostname);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 11:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->destLoginName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 12:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->destPort);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 13:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->destProtocol);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 14:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->destFilePath);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 15:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->destHostCredToken);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 16:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->fileTransferMode);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 17:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->transferStatus);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 18:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->fileSize);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 19:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->transferTime);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 20:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->createdTime);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 21:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->lastModifiedType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 22:
-          if ($ftype == TType::LST) {
-            $this->callbackEmails = array();
-            $_size0 = 0;
-            $_etype3 = 0;
-            $xfer += $input->readListBegin($_etype3, $_size0);
-            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
-            {
-              $elem5 = null;
-              $xfer += $input->readString($elem5);
-              $this->callbackEmails []= $elem5;
-            }
-            $xfer += $input->readListEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('FileTransferRequestModel');
-    if ($this->transferId !== null) {
-      $xfer += $output->writeFieldBegin('transferId', TType::STRING, 1);
-      $xfer += $output->writeString($this->transferId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->username !== null) {
-      $xfer += $output->writeFieldBegin('username', TType::STRING, 3);
-      $xfer += $output->writeString($this->username);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->srcHostname !== null) {
-      $xfer += $output->writeFieldBegin('srcHostname', TType::STRING, 4);
-      $xfer += $output->writeString($this->srcHostname);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->srcLoginName !== null) {
-      $xfer += $output->writeFieldBegin('srcLoginName', TType::STRING, 5);
-      $xfer += $output->writeString($this->srcLoginName);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->srcPort !== null) {
-      $xfer += $output->writeFieldBegin('srcPort', TType::I64, 6);
-      $xfer += $output->writeI64($this->srcPort);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->srcProtocol !== null) {
-      $xfer += $output->writeFieldBegin('srcProtocol', TType::I32, 7);
-      $xfer += $output->writeI32($this->srcProtocol);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->srcFilePath !== null) {
-      $xfer += $output->writeFieldBegin('srcFilePath', TType::STRING, 8);
-      $xfer += $output->writeString($this->srcFilePath);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->srcHostCredToken !== null) {
-      $xfer += $output->writeFieldBegin('srcHostCredToken', TType::STRING, 9);
-      $xfer += $output->writeString($this->srcHostCredToken);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->destHostname !== null) {
-      $xfer += $output->writeFieldBegin('destHostname', TType::STRING, 10);
-      $xfer += $output->writeString($this->destHostname);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->destLoginName !== null) {
-      $xfer += $output->writeFieldBegin('destLoginName', TType::STRING, 11);
-      $xfer += $output->writeString($this->destLoginName);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->destPort !== null) {
-      $xfer += $output->writeFieldBegin('destPort', TType::I64, 12);
-      $xfer += $output->writeI64($this->destPort);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->destProtocol !== null) {
-      $xfer += $output->writeFieldBegin('destProtocol', TType::I32, 13);
-      $xfer += $output->writeI32($this->destProtocol);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->destFilePath !== null) {
-      $xfer += $output->writeFieldBegin('destFilePath', TType::STRING, 14);
-      $xfer += $output->writeString($this->destFilePath);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->destHostCredToken !== null) {
-      $xfer += $output->writeFieldBegin('destHostCredToken', TType::STRING, 15);
-      $xfer += $output->writeString($this->destHostCredToken);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->fileTransferMode !== null) {
-      $xfer += $output->writeFieldBegin('fileTransferMode', TType::I32, 16);
-      $xfer += $output->writeI32($this->fileTransferMode);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->transferStatus !== null) {
-      $xfer += $output->writeFieldBegin('transferStatus', TType::I32, 17);
-      $xfer += $output->writeI32($this->transferStatus);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->fileSize !== null) {
-      $xfer += $output->writeFieldBegin('fileSize', TType::I64, 18);
-      $xfer += $output->writeI64($this->fileSize);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->transferTime !== null) {
-      $xfer += $output->writeFieldBegin('transferTime', TType::I64, 19);
-      $xfer += $output->writeI64($this->transferTime);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->createdTime !== null) {
-      $xfer += $output->writeFieldBegin('createdTime', TType::I64, 20);
-      $xfer += $output->writeI64($this->createdTime);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->lastModifiedType !== null) {
-      $xfer += $output->writeFieldBegin('lastModifiedType', TType::I64, 21);
-      $xfer += $output->writeI64($this->lastModifiedType);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->callbackEmails !== null) {
-      if (!is_array($this->callbackEmails)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('callbackEmails', TType::LST, 22);
-      {
-        $output->writeListBegin(TType::STRING, count($this->callbackEmails));
-        {
-          foreach ($this->callbackEmails as $iter6)
-          {
-            $xfer += $output->writeString($iter6);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class LSEntryModel {
-  static $_TSPEC;
-
-  /**
-   * @var int
-   */
-  public $type = null;
-  /**
-   * @var int
-   */
-  public $size = null;
-  /**
-   * @var string
-   */
-  public $nativeType = null;
-  /**
-   * @var string
-   */
-  public $name = null;
-  /**
-   * @var string
-   */
-  public $path = null;
-  /**
-   * @var string
-   */
-  public $storageHostName = null;
-  /**
-   * @var int
-   */
-  public $lastModifiedType = null;
-  /**
-   * @var int
-   */
-  public $createdTime = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'type',
-          'type' => TType::I32,
-          ),
-        2 => array(
-          'var' => 'size',
-          'type' => TType::I64,
-          ),
-        3 => array(
-          'var' => 'nativeType',
-          'type' => TType::STRING,
-          ),
-        4 => array(
-          'var' => 'name',
-          'type' => TType::STRING,
-          ),
-        5 => array(
-          'var' => 'path',
-          'type' => TType::STRING,
-          ),
-        6 => array(
-          'var' => 'storageHostName',
-          'type' => TType::STRING,
-          ),
-        7 => array(
-          'var' => 'lastModifiedType',
-          'type' => TType::I64,
-          ),
-        8 => array(
-          'var' => 'createdTime',
-          'type' => TType::I64,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['type'])) {
-        $this->type = $vals['type'];
-      }
-      if (isset($vals['size'])) {
-        $this->size = $vals['size'];
-      }
-      if (isset($vals['nativeType'])) {
-        $this->nativeType = $vals['nativeType'];
-      }
-      if (isset($vals['name'])) {
-        $this->name = $vals['name'];
-      }
-      if (isset($vals['path'])) {
-        $this->path = $vals['path'];
-      }
-      if (isset($vals['storageHostName'])) {
-        $this->storageHostName = $vals['storageHostName'];
-      }
-      if (isset($vals['lastModifiedType'])) {
-        $this->lastModifiedType = $vals['lastModifiedType'];
-      }
-      if (isset($vals['createdTime'])) {
-        $this->createdTime = $vals['createdTime'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'LSEntryModel';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->type);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->size);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->nativeType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->name);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->path);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 6:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->storageHostName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 7:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->lastModifiedType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 8:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->createdTime);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('LSEntryModel');
-    if ($this->type !== null) {
-      $xfer += $output->writeFieldBegin('type', TType::I32, 1);
-      $xfer += $output->writeI32($this->type);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->size !== null) {
-      $xfer += $output->writeFieldBegin('size', TType::I64, 2);
-      $xfer += $output->writeI64($this->size);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->nativeType !== null) {
-      $xfer += $output->writeFieldBegin('nativeType', TType::STRING, 3);
-      $xfer += $output->writeString($this->nativeType);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->name !== null) {
-      $xfer += $output->writeFieldBegin('name', TType::STRING, 4);
-      $xfer += $output->writeString($this->name);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->path !== null) {
-      $xfer += $output->writeFieldBegin('path', TType::STRING, 5);
-      $xfer += $output->writeString($this->path);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->storageHostName !== null) {
-      $xfer += $output->writeFieldBegin('storageHostName', TType::STRING, 6);
-      $xfer += $output->writeString($this->storageHostName);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->lastModifiedType !== null) {
-      $xfer += $output->writeFieldBegin('lastModifiedType', TType::I64, 7);
-      $xfer += $output->writeI64($this->lastModifiedType);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->createdTime !== null) {
-      $xfer += $output->writeFieldBegin('createdTime', TType::I64, 8);
-      $xfer += $output->writeI64($this->createdTime);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferRequestModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferRequestModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferRequestModel.java
new file mode 100644
index 0000000..eee0c84
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/transfer/FileTransferRequestModel.java
@@ -0,0 +1,2695 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.transfer;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-12")
+public class FileTransferRequestModel implements org.apache.thrift.TBase<FileTransferRequestModel, FileTransferRequestModel._Fields>, java.io.Serializable, Cloneable, Comparable<FileTransferRequestModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("FileTransferRequestModel");
+
+  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 GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField SRC_HOSTNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("srcHostname", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField SRC_LOGIN_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("srcLoginName", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField SRC_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("srcPort", org.apache.thrift.protocol.TType.I64, (short)6);
+  private static final org.apache.thrift.protocol.TField SRC_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("srcProtocol", org.apache.thrift.protocol.TType.I32, (short)7);
+  private static final org.apache.thrift.protocol.TField SRC_FILE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("srcFilePath", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField SRC_HOST_CRED_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("srcHostCredToken", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField DEST_HOSTNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("destHostname", org.apache.thrift.protocol.TType.STRING, (short)10);
+  private static final org.apache.thrift.protocol.TField DEST_LOGIN_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("destLoginName", org.apache.thrift.protocol.TType.STRING, (short)11);
+  private static final org.apache.thrift.protocol.TField DEST_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("destPort", org.apache.thrift.protocol.TType.I64, (short)12);
+  private static final org.apache.thrift.protocol.TField DEST_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("destProtocol", org.apache.thrift.protocol.TType.I32, (short)13);
+  private static final org.apache.thrift.protocol.TField DEST_FILE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("destFilePath", org.apache.thrift.protocol.TType.STRING, (short)14);
+  private static final org.apache.thrift.protocol.TField DEST_HOST_CRED_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("destHostCredToken", org.apache.thrift.protocol.TType.STRING, (short)15);
+  private static final org.apache.thrift.protocol.TField FILE_TRANSFER_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("fileTransferMode", org.apache.thrift.protocol.TType.I32, (short)16);
+  private static final org.apache.thrift.protocol.TField TRANSFER_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("transferStatus", org.apache.thrift.protocol.TType.I32, (short)17);
+  private static final org.apache.thrift.protocol.TField FILE_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("fileSize", org.apache.thrift.protocol.TType.I64, (short)18);
+  private static final org.apache.thrift.protocol.TField TRANSFER_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("transferTime", org.apache.thrift.protocol.TType.I64, (short)19);
+  private static final org.apache.thrift.protocol.TField CREATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("createdTime", org.apache.thrift.protocol.TType.I64, (short)20);
+  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedType", org.apache.thrift.protocol.TType.I64, (short)21);
+  private static final org.apache.thrift.protocol.TField CALLBACK_EMAILS_FIELD_DESC = new org.apache.thrift.protocol.TField("callbackEmails", org.apache.thrift.protocol.TType.LIST, (short)22);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new FileTransferRequestModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new FileTransferRequestModelTupleSchemeFactory());
+  }
+
+  private String transferId; // optional
+  private String gatewayId; // optional
+  private String username; // optional
+  private String srcHostname; // optional
+  private String srcLoginName; // optional
+  private long srcPort; // optional
+  private StorageResourceProtocol srcProtocol; // optional
+  private String srcFilePath; // optional
+  private String srcHostCredToken; // optional
+  private String destHostname; // optional
+  private String destLoginName; // optional
+  private long destPort; // optional
+  private StorageResourceProtocol destProtocol; // optional
+  private String destFilePath; // optional
+  private String destHostCredToken; // optional
+  private FileTransferMode fileTransferMode; // optional
+  private FileTransferStatus transferStatus; // optional
+  private long fileSize; // optional
+  private long transferTime; // optional
+  private long createdTime; // optional
+  private long lastModifiedType; // optional
+  private List<String> callbackEmails; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    TRANSFER_ID((short)1, "transferId"),
+    GATEWAY_ID((short)2, "gatewayId"),
+    USERNAME((short)3, "username"),
+    SRC_HOSTNAME((short)4, "srcHostname"),
+    SRC_LOGIN_NAME((short)5, "srcLoginName"),
+    SRC_PORT((short)6, "srcPort"),
+    /**
+     * 
+     * @see StorageResourceProtocol
+     */
+    SRC_PROTOCOL((short)7, "srcProtocol"),
+    SRC_FILE_PATH((short)8, "srcFilePath"),
+    SRC_HOST_CRED_TOKEN((short)9, "srcHostCredToken"),
+    DEST_HOSTNAME((short)10, "destHostname"),
+    DEST_LOGIN_NAME((short)11, "destLoginName"),
+    DEST_PORT((short)12, "destPort"),
+    /**
+     * 
+     * @see StorageResourceProtocol
+     */
+    DEST_PROTOCOL((short)13, "destProtocol"),
+    DEST_FILE_PATH((short)14, "destFilePath"),
+    DEST_HOST_CRED_TOKEN((short)15, "destHostCredToken"),
+    /**
+     * 
+     * @see FileTransferMode
+     */
+    FILE_TRANSFER_MODE((short)16, "fileTransferMode"),
+    /**
+     * 
+     * @see FileTransferStatus
+     */
+    TRANSFER_STATUS((short)17, "transferStatus"),
+    FILE_SIZE((short)18, "fileSize"),
+    TRANSFER_TIME((short)19, "transferTime"),
+    CREATED_TIME((short)20, "createdTime"),
+    LAST_MODIFIED_TYPE((short)21, "lastModifiedType"),
+    CALLBACK_EMAILS((short)22, "callbackEmails");
+
+    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: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 3: // USERNAME
+          return USERNAME;
+        case 4: // SRC_HOSTNAME
+          return SRC_HOSTNAME;
+        case 5: // SRC_LOGIN_NAME
+          return SRC_LOGIN_NAME;
+        case 6: // SRC_PORT
+          return SRC_PORT;
+        case 7: // SRC_PROTOCOL
+          return SRC_PROTOCOL;
+        case 8: // SRC_FILE_PATH
+          return SRC_FILE_PATH;
+        case 9: // SRC_HOST_CRED_TOKEN
+          return SRC_HOST_CRED_TOKEN;
+        case 10: // DEST_HOSTNAME
+          return DEST_HOSTNAME;
+        case 11: // DEST_LOGIN_NAME
+          return DEST_LOGIN_NAME;
+        case 12: // DEST_PORT
+          return DEST_PORT;
+        case 13: // DEST_PROTOCOL
+          return DEST_PROTOCOL;
+        case 14: // DEST_FILE_PATH
+          return DEST_FILE_PATH;
+        case 15: // DEST_HOST_CRED_TOKEN
+          return DEST_HOST_CRED_TOKEN;
+        case 16: // FILE_TRANSFER_MODE
+          return FILE_TRANSFER_MODE;
+        case 17: // TRANSFER_STATUS
+          return TRANSFER_STATUS;
+        case 18: // FILE_SIZE
+          return FILE_SIZE;
+        case 19: // TRANSFER_TIME
+          return TRANSFER_TIME;
+        case 20: // CREATED_TIME
+          return CREATED_TIME;
+        case 21: // LAST_MODIFIED_TYPE
+          return LAST_MODIFIED_TYPE;
+        case 22: // CALLBACK_EMAILS
+          return CALLBACK_EMAILS;
+        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 __SRCPORT_ISSET_ID = 0;
+  private static final int __DESTPORT_ISSET_ID = 1;
+  private static final int __FILESIZE_ISSET_ID = 2;
+  private static final int __TRANSFERTIME_ISSET_ID = 3;
+  private static final int __CREATEDTIME_ISSET_ID = 4;
+  private static final int __LASTMODIFIEDTYPE_ISSET_ID = 5;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.TRANSFER_ID,_Fields.GATEWAY_ID,_Fields.USERNAME,_Fields.SRC_HOSTNAME,_Fields.SRC_LOGIN_NAME,_Fields.SRC_PORT,_Fields.SRC_PROTOCOL,_Fields.SRC_FILE_PATH,_Fields.SRC_HOST_CRED_TOKEN,_Fields.DEST_HOSTNAME,_Fields.DEST_LOGIN_NAME,_Fields.DEST_PORT,_Fields.DEST_PROTOCOL,_Fields.DEST_FILE_PATH,_Fields.DEST_HOST_CRED_TOKEN,_Fields.FILE_TRANSFER_MODE,_Fields.TRANSFER_STATUS,_Fields.FILE_SIZE,_Fields.TRANSFER_TIME,_Fields.CREATED_TIME,_Fields.LAST_MODIFIED_TYPE,_Fields.CALLBACK_EMAILS};
+  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.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SRC_HOSTNAME, new org.apache.thrift.meta_data.FieldMetaData("srcHostname", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SRC_LOGIN_NAME, new org.apache.thrift.meta_data.FieldMetaData("srcLoginName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SRC_PORT, new org.apache.thrift.meta_data.FieldMetaData("srcPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.SRC_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("srcProtocol", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, StorageResourceProtocol.class)));
+    tmpMap.put(_Fields.SRC_FILE_PATH, new org.apache.thrift.meta_data.FieldMetaData("srcFilePath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SRC_HOST_CRED_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("srcHostCredToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DEST_HOSTNAME, new org.apache.thrift.meta_data.FieldMetaData("destHostname", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DEST_LOGIN_NAME, new org.apache.thrift.meta_data.FieldMetaData("destLoginName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DEST_PORT, new org.apache.thrift.meta_data.FieldMetaData("destPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.DEST_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("destProtocol", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, StorageResourceProtocol.class)));
+    tmpMap.put(_Fields.DEST_FILE_PATH, new org.apache.thrift.meta_data.FieldMetaData("destFilePath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DEST_HOST_CRED_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("destHostCredToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_TRANSFER_MODE, new org.apache.thrift.meta_data.FieldMetaData("fileTransferMode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, FileTransferMode.class)));
+    tmpMap.put(_Fields.TRANSFER_STATUS, new org.apache.thrift.meta_data.FieldMetaData("transferStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, FileTransferStatus.class)));
+    tmpMap.put(_Fields.FILE_SIZE, new org.apache.thrift.meta_data.FieldMetaData("fileSize", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.TRANSFER_TIME, new org.apache.thrift.meta_data.FieldMetaData("transferTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.CREATED_TIME, new org.apache.thrift.meta_data.FieldMetaData("createdTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.LAST_MODIFIED_TYPE, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.CALLBACK_EMAILS, new org.apache.thrift.meta_data.FieldMetaData("callbackEmails", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(FileTransferRequestModel.class, metaDataMap);
+  }
+
+  public FileTransferRequestModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public FileTransferRequestModel(FileTransferRequestModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetTransferId()) {
+      this.transferId = other.transferId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetUsername()) {
+      this.username = other.username;
+    }
+    if (other.isSetSrcHostname()) {
+      this.srcHostname = other.srcHostname;
+    }
+    if (other.isSetSrcLoginName()) {
+      this.srcLoginName = other.srcLoginName;
+    }
+    this.srcPort = other.srcPort;
+    if (other.isSetSrcProtocol()) {
+      this.srcProtocol = other.srcProtocol;
+    }
+    if (other.isSetSrcFilePath()) {
+      this.srcFilePath = other.srcFilePath;
+    }
+    if (other.isSetSrcHostCredToken()) {
+      this.srcHostCredToken = other.srcHostCredToken;
+    }
+    if (other.isSetDestHostname()) {
+      this.destHostname = other.destHostname;
+    }
+    if (other.isSetDestLoginName()) {
+      this.destLoginName = other.destLoginName;
+    }
+    this.destPort = other.destPort;
+    if (other.isSetDestProtocol()) {
+      this.destProtocol = other.destProtocol;
+    }
+    if (other.isSetDestFilePath()) {
+      this.destFilePath = other.destFilePath;
+    }
+    if (other.isSetDestHostCredToken()) {
+      this.destHostCredToken = other.destHostCredToken;
+    }
+    if (other.isSetFileTransferMode()) {
+      this.fileTransferMode = other.fileTransferMode;
+    }
+    if (other.isSetTransferStatus()) {
+      this.transferStatus = other.transferStatus;
+    }
+    this.fileSize = other.fileSize;
+    this.transferTime = other.transferTime;
+    this.createdTime = other.createdTime;
+    this.lastModifiedType = other.lastModifiedType;
+    if (other.isSetCallbackEmails()) {
+      List<String> __this__callbackEmails = new ArrayList<String>(other.callbackEmails);
+      this.callbackEmails = __this__callbackEmails;
+    }
+  }
+
+  public FileTransferRequestModel deepCopy() {
+    return new FileTransferRequestModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.transferId = null;
+    this.gatewayId = null;
+    this.username = null;
+    this.srcHostname = null;
+    this.srcLoginName = null;
+    setSrcPortIsSet(false);
+    this.srcPort = 0;
+    this.srcProtocol = null;
+    this.srcFilePath = null;
+    this.srcHostCredToken = null;
+    this.destHostname = null;
+    this.destLoginName = null;
+    setDestPortIsSet(false);
+    this.destPort = 0;
+    this.destProtocol = null;
+    this.destFilePath = null;
+    this.destHostCredToken = null;
+    this.fileTransferMode = null;
+    this.transferStatus = null;
+    setFileSizeIsSet(false);
+    this.fileSize = 0;
+    setTransferTimeIsSet(false);
+    this.transferTime = 0;
+    setCreatedTimeIsSet(false);
+    this.createdTime = 0;
+    setLastModifiedTypeIsSet(false);
+    this.lastModifiedType = 0;
+    this.callbackEmails = 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 String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public void setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  public String getUsername() {
+    return this.username;
+  }
+
+  public void setUsername(String username) {
+    this.username = username;
+  }
+
+  public void unsetUsername() {
+    this.username = null;
+  }
+
+  /** Returns true if field username is set (has been assigned a value) and false otherwise */
+  public boolean isSetUsername() {
+    return this.username != null;
+  }
+
+  public void setUsernameIsSet(boolean value) {
+    if (!value) {
+      this.username = null;
+    }
+  }
+
+  public String getSrcHostname() {
+    return this.srcHostname;
+  }
+
+  public void setSrcHostname(String srcHostname) {
+    this.srcHostname = srcHostname;
+  }
+
+  public void unsetSrcHostname() {
+    this.srcHostname = null;
+  }
+
+  /** Returns true if field srcHostname is set (has been assigned a value) and false otherwise */
+  public boolean isSetSrcHostname() {
+    return this.srcHostname != null;
+  }
+
+  public void setSrcHostnameIsSet(boolean value) {
+    if (!value) {
+      this.srcHostname = null;
+    }
+  }
+
+  public String getSrcLoginName() {
+    return this.srcLoginName;
+  }
+
+  public void setSrcLoginName(String srcLoginName) {
+    this.srcLoginName = srcLoginName;
+  }
+
+  public void unsetSrcLoginName() {
+    this.srcLoginName = null;
+  }
+
+  /** Returns true if field srcLoginName is set (has been assigned a value) and false otherwise */
+  public boolean isSetSrcLoginName() {
+    return this.srcLoginName != null;
+  }
+
+  public void setSrcLoginNameIsSet(boolean value) {
+    if (!value) {
+      this.srcLoginName = null;
+    }
+  }
+
+  public long getSrcPort() {
+    return this.srcPort;
+  }
+
+  public void setSrcPort(long srcPort) {
+    this.srcPort = srcPort;
+    setSrcPortIsSet(true);
+  }
+
+  public void unsetSrcPort() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SRCPORT_ISSET_ID);
+  }
+
+  /** Returns true if field srcPort is set (has been assigned a value) and false otherwise */
+  public boolean isSetSrcPort() {
+    return EncodingUtils.testBit(__isset_bitfield, __SRCPORT_ISSET_ID);
+  }
+
+  public void setSrcPortIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SRCPORT_ISSET_ID, value);
+  }
+
+  /**
+   * 
+   * @see StorageResourceProtocol
+   */
+  public StorageResourceProtocol getSrcProtocol() {
+    return this.srcProtocol;
+  }
+
+  /**
+   * 
+   * @see StorageResourceProtocol
+   */
+  public void setSrcProtocol(StorageResourceProtocol srcProtocol) {
+    this.srcProtocol = srcProtocol;
+  }
+
+  public void unsetSrcProtocol() {
+    this.srcProtocol = null;
+  }
+
+  /** Returns true if field srcProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSrcProtocol() {
+    return this.srcProtocol != null;
+  }
+
+  public void setSrcProtocolIsSet(boolean value) {
+    if (!value) {
+      this.srcProtocol = null;
+    }
+  }
+
+  public String getSrcFilePath() {
+    return this.srcFilePath;
+  }
+
+  public void setSrcFilePath(String srcFilePath) {
+    this.srcFilePath = srcFilePath;
+  }
+
+  public void unsetSrcFilePath() {
+    this.srcFilePath = null;
+  }
+
+  /** Returns true if field srcFilePath is set (has been assigned a value) and false otherwise */
+  public boolean isSetSrcFilePath() {
+    return this.srcFilePath != null;
+  }
+
+  public void setSrcFilePathIsSet(boolean value) {
+    if (!value) {
+      this.srcFilePath = null;
+    }
+  }
+
+  public String getSrcHostCredToken() {
+    return this.srcHostCredToken;
+  }
+
+  public void setSrcHostCredToken(String srcHostCredToken) {
+    this.srcHostCredToken = srcHostCredToken;
+  }
+
+  public void unsetSrcHostCredToken() {
+    this.srcHostCredToken = null;
+  }
+
+  /** Returns true if field srcHostCredToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetSrcHostCredToken() {
+    return this.srcHostCredToken != null;
+  }
+
+  public void setSrcHostCredTokenIsSet(boolean value) {
+    if (!value) {
+      this.srcHostCredToken = null;
+    }
+  }
+
+  public String getDestHostname() {
+    return this.destHostname;
+  }
+
+  public void setDestHostname(String destHostname) {
+    this.destHostname = destHostname;
+  }
+
+  public void unsetDestHostname() {
+    this.destHostname = null;
+  }
+
+  /** Returns true if field destHostname is set (has been assigned a value) and false otherwise */
+  public boolean isSetDestHostname() {
+    return this.destHostname != null;
+  }
+
+  public void setDestHostnameIsSet(boolean value) {
+    if (!value) {
+      this.destHostname = null;
+    }
+  }
+
+  public String getDestLoginName() {
+    return this.destLoginName;
+  }
+
+  public void setDestLoginName(String destLoginName) {
+    this.destLoginName = destLoginName;
+  }
+
+  public void unsetDestLoginName() {
+    this.destLoginName = null;
+  }
+
+  /** Returns true if field destLoginName is set (has been assigned a value) and false otherwise */
+  public boolean isSetDestLoginName() {
+    return this.destLoginName != null;
+  }
+
+  public void setDestLoginNameIsSet(boolean value) {
+    if (!value) {
+      this.destLoginName = null;
+    }
+  }
+
+  public long getDestPort() {
+    return this.destPort;
+  }
+
+  public void setDestPort(long destPort) {
+    this.destPort = destPort;
+    setDestPortIsSet(true);
+  }
+
+  public void unsetDestPort() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DESTPORT_ISSET_ID);
+  }
+
+  /** Returns true if field destPort is set (has been assigned a value) and false otherwise */
+  public boolean isSetDestPort() {
+    return EncodingUtils.testBit(__isset_bitfield, __DESTPORT_ISSET_ID);
+  }
+
+  public void setDestPortIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DESTPORT_ISSET_ID, value);
+  }
+
+  /**
+   * 
+   * @see StorageResourceProtocol
+   */
+  public StorageResourceProtocol getDestProtocol() {
+    return this.destProtocol;
+  }
+
+  /**
+   * 
+   * @see StorageResourceProtocol
+   */
+  public void setDestProtocol(StorageResourceProtocol destProtocol) {
+    this.destProtocol = destProtocol;
+  }
+
+  public void unsetDestProtocol() {
+    this.destProtocol = null;
+  }
+
+  /** Returns true if field destProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetDestProtocol() {
+    return this.destProtocol != null;
+  }
+
+  public void setDestProtocolIsSet(boolean value) {
+    if (!value) {
+      this.destProtocol = null;
+    }
+  }
+
+  public String getDestFilePath() {
+    return this.destFilePath;
+  }
+
+  public void setDestFilePath(String destFilePath) {
+    this.destFilePath = destFilePath;
+  }
+
+  public void unsetDestFilePath() {
+    this.destFilePath = null;
+  }
+
+  /** Returns true if field destFilePath is set (has been assigned a value) and false otherwise */
+  public boolean isSetDestFilePath() {
+    return this.destFilePath != null;
+  }
+
+  public void setDestFilePathIsSet(boolean value) {
+    if (!value) {
+      this.destFilePath = null;
+    }
+  }
+
+  public String getDestHostCredToken() {
+    return this.destHostCredToken;
+  }
+
+  public void setDestHostCredToken(String destHostCredToken) {
+    this.destHostCredToken = destHostCredToken;
+  }
+
+  public void unsetDestHostCredToken() {
+    this.destHostCredToken = null;
+  }
+
+  /** Returns true if field destHostCredToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetDestHostCredToken() {
+    return this.destHostCredToken != null;
+  }
+
+  public void setDestHostCredTokenIsSet(boolean value) {
+    if (!value) {
+      this.destHostCredToken = null;
+    }
+  }
+
+  /**
+   * 
+   * @see FileTransferMode
+   */
+  public FileTransferMode getFileTransferMode() {
+    return this.fileTransferMode;
+  }
+
+  /**
+   * 
+   * @see FileTransferMode
+   */
+  public void setFileTransferMode(FileTransferMode fileTransferMode) {
+    this.fileTransferMode = fileTransferMode;
+  }
+
+  public void unsetFileTransferMode() {
+    this.fileTransferMode = null;
+  }
+
+  /** Returns true if field fileTransferMode is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileTransferMode() {
+    return this.fileTransferMode != null;
+  }
+
+  public void setFileTransferModeIsSet(boolean value) {
+    if (!value) {
+      this.fileTransferMode = null;
+    }
+  }
+
+  /**
+   * 
+   * @see FileTransferStatus
+   */
+  public FileTransferStatus getTransferStatus() {
+    return this.transferStatus;
+  }
+
+  /**
+   * 
+   * @see FileTransferStatus
+   */
+  public void setTransferStatus(FileTransferStatus 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 long getFileSize() {
+    return this.fileSize;
+  }
+
+  public void setFileSize(long fileSize) {
+    this.fileSize = fileSize;
+    setFileSizeIsSet(true);
+  }
+
+  public void unsetFileSize() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __FILESIZE_ISSET_ID);
+  }
+
+  /** Returns true if field fileSize is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileSize() {
+    return EncodingUtils.testBit(__isset_bitfield, __FILESIZE_ISSET_ID);
+  }
+
+  public void setFileSizeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __FILESIZE_ISSET_ID, value);
+  }
+
+  public long getTransferTime() {
+    return this.transferTime;
+  }
+
+  public void setTransferTime(long transferTime) {
+    this.transferTime = transferTime;
+    setTransferTimeIsSet(true);
+  }
+
+  public void unsetTransferTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TRANSFERTIME_ISSET_ID);
+  }
+
+  /** Returns true if field transferTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetTransferTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __TRANSFERTIME_ISSET_ID);
+  }
+
+  public void setTransferTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TRANSFERTIME_ISSET_ID, value);
+  }
+
+  public long getCreatedTime() {
+    return this.createdTime;
+  }
+
+  public void setCreatedTime(long createdTime) {
+    this.createdTime = createdTime;
+    setCreatedTimeIsSet(true);
+  }
+
+  public void unsetCreatedTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
+  }
+
+  /** Returns true if field createdTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreatedTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
+  }
+
+  public void setCreatedTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATEDTIME_ISSET_ID, value);
+  }
+
+  public long getLastModifiedType() {
+    return this.lastModifiedType;
+  }
+
+  public void setLastModifiedType(long lastModifiedType) {
+    this.lastModifiedType = lastModifiedType;
+    setLastModifiedTypeIsSet(true);
+  }
+
+  public void unsetLastModifiedType() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID);
+  }
+
+  /** Returns true if field lastModifiedType is set (has been assigned a value) and false otherwise */
+  public boolean isSetLastModifiedType() {
+    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID);
+  }
+
+  public void setLastModifiedTypeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID, value);
+  }
+
+  public int getCallbackEmailsSize() {
+    return (this.callbackEmails == null) ? 0 : this.callbackEmails.size();
+  }
+
+  public java.util.Iterator<String> getCallbackEmailsIterator() {
+    return (this.callbackEmails == null) ? null : this.callbackEmails.iterator();
+  }
+
+  public void addToCallbackEmails(String elem) {
+    if (this.callbackEmails == null) {
+      this.callbackEmails = new ArrayList<String>();
+    }
+    this.callbackEmails.add(elem);
+  }
+
+  public List<String> getCallbackEmails() {
+    return this.callbackEmails;
+  }
+
+  public void setCallbackEmails(List<String> callbackEmails) {
+    this.callbackEmails = callbackEmails;
+  }
+
+  public void unsetCallbackEmails() {
+    this.callbackEmails = null;
+  }
+
+  /** Returns true if field callbackEmails is set (has been assigned a value) and false otherwise */
+  public boolean isSetCallbackEmails() {
+    return this.callbackEmails != null;
+  }
+
+  public void setCallbackEmailsIsSet(boolean value) {
+    if (!value) {
+      this.callbackEmails = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TRANSFER_ID:
+      if (value == null) {
+        unsetTransferId();
+      } else {
+        setTransferId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case USERNAME:
+      if (value == null) {
+        unsetUsername();
+      } else {
+        setUsername((String)value);
+      }
+      break;
+
+    case SRC_HOSTNAME:
+      if (value == null) {
+        unsetSrcHostname();
+      } else {
+        setSrcHostname((String)value);
+      }
+      break;
+
+    case SRC_LOGIN_NAME:
+      if (value == null) {
+        unsetSrcLoginName();
+      } else {
+        setSrcLoginName((String)value);
+      }
+      break;
+
+    case SRC_PORT:
+      if (value == null) {
+        unsetSrcPort();
+      } else {
+        setSrcPort((Long)value);
+      }
+      break;
+
+    case SRC_PROTOCOL:
+      if (value == null) {
+        unsetSrcProtocol();
+      } else {
+        setSrcProtocol((StorageResourceProtocol)value);
+      }
+      break;
+
+    case SRC_FILE_PATH:
+      if (value == null) {
+        unsetSrcFilePath();
+      } else {
+        setSrcFilePath((String)value);
+      }
+      break;
+
+    case SRC_HOST_CRED_TOKEN:
+      if (value == null) {
+        unsetSrcHostCredToken();
+      } else {
+        setSrcHostCredToken((String)value);
+      }
+      break;
+
+    case DEST_HOSTNAME:
+      if (value == null) {
+        unsetDestHostname();
+      } else {
+        setDestHostname((String)value);
+      }
+      break;
+
+    case DEST_LOGIN_NAME:
+      if (value == null) {
+        unsetDestLoginName();
+      } else {
+        setDestLoginName((String)value);
+      }
+      break;
+
+    case DEST_PORT:
+      if (value == null) {
+        unsetDestPort();
+      } else {
+        setDestPort((Long)value);
+      }
+      break;
+
+    case DEST_PROTOCOL:
+      if (value == null) {
+        unsetDestProtocol();
+      } else {
+        setDestProtocol((StorageResourceProtocol)value);
+      }
+      break;
+
+    case DEST_FILE_PATH:
+      if (value == null) {
+        unsetDestFilePath();
+      } else {
+        setDestFilePath((String)value);
+      }
+      break;
+
+    case DEST_HOST_CRED_TOKEN:
+      if (value == null) {
+        unsetDestHostCredToken();
+      } else {
+        setDestHostCredToken((String)value);
+      }
+      break;
+
+    case FILE_TRANSFER_MODE:
+      if (value == null) {
+        unsetFileTransferMode();
+      } else {
+        setFileTransferMode((FileTransferMode)value);
+      }
+      break;
+
+    case TRANSFER_STATUS:
+      if (value == null) {
+        unsetTransferStatus();
+      } else {
+        setTransferStatus((FileTransferStatus)value);
+      }
+      break;
+
+    case FILE_SIZE:
+      if (value == null) {
+        unsetFileSize();
+      } else {
+        setFileSize((Long)value);
+      }
+      break;
+
+    case TRANSFER_TIME:
+      if (value == null) {
+        unsetTransferTime();
+      } else {
+        setTransferTime((Long)value);
+      }
+      break;
+
+    case CREATED_TIME:
+      if (value == null) {
+        unsetCreatedTime();
+      } else {
+        setCreatedTime((Long)value);
+      }
+      break;
+
+    case LAST_MODIFIED_TYPE:
+      if (value == null) {
+        unsetLastModifiedType();
+      } else {
+        setLastModifiedType((Long)value);
+      }
+      break;
+
+    case CALLBACK_EMAILS:
+      if (value == null) {
+        unsetCallbackEmails();
+      } else {
+        setCallbackEmails((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TRANSFER_ID:
+      return getTransferId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case USERNAME:
+      return getUsername();
+
+    case SRC_HOSTNAME:
+      return getSrcHostname();
+
+    case SRC_LOGIN_NAME:
+      return getSrcLoginName();
+
+    case SRC_PORT:
+      return getSrcPort();
+
+    case SRC_PROTOCOL:
+      return getSrcProtocol();
+
+    case SRC_FILE_PATH:
+      return getSrcFilePath();
+
+    case SRC_HOST_CRED_TOKEN:
+      return getSrcHostCredToken();
+
+    case DEST_HOSTNAME:
+      return getDestHostname();
+
+    case DEST_LOGIN_NAME:
+      return getDestLoginName();
+
+    case DEST_PORT:
+      return getDestPort();
+
+    case DEST_PROTOCOL:
+      return getDestProtocol();
+
+    case DEST_FILE_PATH:
+      return getDestFilePath();
+
+    case DEST_HOST_CRED_TOKEN:
+      return getDestHostCredToken();
+
+    case FILE_TRANSFER_MODE:
+      return getFileTransferMode();
+
+    case TRANSFER_STATUS:
+      return getTransferStatus();
+
+    case FILE_SIZE:
+      return getFileSize();
+
+    case TRANSFER_TIME:
+      return getTransferTime();
+
+    case CREATED_TIME:
+      return getCreatedTime();
+
+    case LAST_MODIFIED_TYPE:
+      return getLastModifiedType();
+
+    case CALLBACK_EMAILS:
+      return getCallbackEmails();
+
+    }
+    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 GATEWAY_ID:
+      return isSetGatewayId();
+    case USERNAME:
+      return isSetUsername();
+    case SRC_HOSTNAME:
+      return isSetSrcHostname();
+    case SRC_LOGIN_NAME:
+      return isSetSrcLoginName();
+    case SRC_PORT:
+      return isSetSrcPort();
+    case SRC_PROTOCOL:
+      return isSetSrcProtocol();
+    case SRC_FILE_PATH:
+      return isSetSrcFilePath();
+    case SRC_HOST_CRED_TOKEN:
+      return isSetSrcHostCredToken();
+    case DEST_HOSTNAME:
+      return isSetDestHostname();
+    case DEST_LOGIN_NAME:
+      return isSetDestLoginName();
+    case DEST_PORT:
+      return isSetDestPort();
+    case DEST_PROTOCOL:
+      return isSetDestProtocol();
+    case DEST_FILE_PATH:
+      return isSetDestFilePath();
+    case DEST_HOST_CRED_TOKEN:
+      return isSetDestHostCredToken();
+    case FILE_TRANSFER_MODE:
+      return isSetFileTransferMode();
+    case TRANSFER_STATUS:
+      return isSetTransferStatus();
+    case FILE_SIZE:
+      return isSetFileSize();
+    case TRANSFER_TIME:
+      return isSetTransferTime();
+    case CREATED_TIME:
+      return isSetCreatedTime();
+    case LAST_MODIFIED_TYPE:
+      return isSetLastModifiedType();
+    case CALLBACK_EMAILS:
+      return isSetCallbackEmails();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof FileTransferRequestModel)
+      return this.equals((FileTransferRequestModel)that);
+    return false;
+  }
+
+  public boolean equals(FileTransferRequestModel 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_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_username = true && this.isSetUsername();
+    boolean that_present_username = true && that.isSetUsername();
+    if (this_present_username || that_present_username) {
+      if (!(this_present_username && that_present_username))
+        return false;
+      if (!this.username.equals(that.username))
+        return false;
+    }
+
+    boolean this_present_srcHostname = true && this.isSetSrcHostname();
+    boolean that_present_srcHostname = true && that.isSetSrcHostname();
+    if (this_present_srcHostname || that_present_srcHostname) {
+      if (!(this_present_srcHostname && that_present_srcHostname))
+        return false;
+      if (!this.srcHostname.equals(that.srcHostname))
+        return false;
+    }
+
+    boolean this_present_srcLoginName = true && this.isSetSrcLoginName();
+    boolean that_present_srcLoginName = true && that.isSetSrcLoginName();
+    if (this_present_srcLoginName || that_present_srcLoginName) {
+      if (!(this_present_srcLoginName && that_present_srcLoginName))
+        return false;
+      if (!this.srcLoginName.equals(that.srcLoginName))
+        return false;
+    }
+
+    boolean this_present_srcPort = true && this.isSetSrcPort();
+    boolean that_present_srcPort = true && that.isSetSrcPort();
+    if (this_present_srcPort || that_present_srcPort) {
+      if (!(this_present_srcPort && that_present_srcPort))
+        return false;
+      if (this.srcPort != that.srcPort)
+        return false;
+    }
+
+    boolean this_present_srcProtocol = true && this.isSetSrcProtocol();
+    boolean that_present_srcProtocol = true && that.isSetSrcProtocol();
+    if (this_present_srcProtocol || that_present_srcProtocol) {
+      if (!(this_present_srcProtocol && that_present_srcProtocol))
+        return false;
+      if (!this.srcProtocol.equals(that.srcProtocol))
+        return false;
+    }
+
+    boolean this_present_srcFilePath = true && this.isSetSrcFilePath();
+    boolean that_present_srcFilePath = true && that.isSetSrcFilePath();
+    if (this_present_srcFilePath || that_present_srcFilePath) {
+      if (!(this_present_srcFilePath && that_present_srcFilePath))
+        return false;
+      if (!this.srcFilePath.equals(that.srcFilePath))
+        return false;
+    }
+
+    boolean this_present_srcHostCredToken = true && this.isSetSrcHostCredToken();
+    boolean that_present_srcHostCredToken = true && that.isSetSrcHostCredToken();
+    if (this_present_srcHostCredToken || that_present_srcHostCredToken) {
+      if (!(this_present_srcHostCredToken && that_present_srcHostCredToken))
+        return false;
+      if (!this.srcHostCredToken.equals(that.srcHostCredToken))
+        return false;
+    }
+
+    boolean this_present_destHostname = true && this.isSetDestHostname();
+    boolean that_present_destHostname = true && that.isSetDestHostname();
+    if (this_present_destHostname || that_present_destHostname) {
+      if (!(this_present_destHostname && that_present_destHostname))
+        return false;
+      if (!this.destHostname.equals(that.destHostname))
+        return false;
+    }
+
+    boolean this_present_destLoginName = true && this.isSetDestLoginName();
+    boolean that_present_destLoginName = true && that.isSetDestLoginName();
+    if (this_present_destLoginName || that_present_destLoginName) {
+      if (!(this_present_destLoginName && that_present_destLoginName))
+        return false;
+      if (!this.destLoginName.equals(that.destLoginName))
+        return false;
+    }
+
+    boolean this_present_destPort = true && this.isSetDestPort();
+    boolean that_present_destPort = true && that.isSetDestPort();
+    if (this_present_destPort || that_present_destPort) {
+      if (!(this_present_destPort && that_present_destPort))
+        return false;
+      if (this.destPort != that.destPort)
+        return false;
+    }
+
+    boolean this_present_destProtocol = true && this.isSetDestProtocol();
+    boolean that_present_destProtocol = true && that.isSetDestProtocol();
+    if (this_present_destProtocol || that_present_destProtocol) {
+      if (!(this_present_destProtocol && that_present_destProtocol))
+        return false;
+      if (!this.destProtocol.equals(that.destProtocol))
+        return false;
+    }
+
+    boolean this_present_destFilePath = true && this.isSetDestFilePath();
+    boolean that_present_destFilePath = true && that.isSetDestFilePath();
+    if (this_present_destFilePath || that_present_destFilePath) {
+      if (!(this_present_destFilePath && that_present_destFilePath))
+        return false;
+      if (!this.destFilePath.equals(that.destFilePath))
+        return false;
+    }
+
+    boolean this_present_destHostCredToken = true && this.isSetDestHostCredToken();
+    boolean that_present_destHostCredToken = true && that.isSetDestHostCredToken();
+    if (this_present_destHostCredToken || that_present_destHostCredToken) {
+      if (!(this_present_destHostCredToken && that_present_destHostCredToken))
+        return false;
+      if (!this.destHostCredToken.equals(that.destHostCredToken))
+        return false;
+    }
+
+    boolean this_present_fileTransferMode = true && this.isSetFileTransferMode();
+    boolean that_present_fileTransferMode = true && that.isSetFileTransferMode();
+    if (this_present_fileTransferMode || that_present_fileTransferMode) {
+      if (!(this_present_fileTransferMode && that_present_fileTransferMode))
+        return false;
+      if (!this.fileTransferMode.equals(that.fileTransferMode))
+        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;
+    }
+
+    boolean this_present_fileSize = true && this.isSetFileSize();
+    boolean that_present_fileSize = true && that.isSetFileSize();
+    if (this_present_fileSize || that_present_fileSize) {
+      if (!(this_present_fileSize && that_present_fileSize))
+        return false;
+      if (this.fileSize != that.fileSize)
+        return false;
+    }
+
+    boolean this_present_transferTime = true && this.isSetTransferTime();
+    boolean that_present_transferTime = true && that.isSetTransferTime();
+    if (this_present_transferTime || that_present_transferTime) {
+      if (!(this_present_transferTime && that_present_transferTime))
+        return false;
+      if (this.transferTime != that.transferTime)
+        return false;
+    }
+
+    boolean this_present_createdTime = true && this.isSetCreatedTime();
+    boolean that_present_createdTime = true && that.isSetCreatedTime();
+    if (this_present_createdTime || that_present_createdTime) {
+      if (!(this_present_createdTime && that_present_createdTime))
+        return false;
+      if (this.createdTime != that.createdTime)
+        return false;
+    }
+
+    boolean this_present_lastModifiedType = true && this.isSetLastModifiedType();
+    boolean that_present_lastModifiedType = true && that.isSetLastModifiedType();
+    if (this_present_lastModifiedType || that_present_lastModifiedType) {
+      if (!(this_present_lastModifiedType && that_present_lastModifiedType))
+        return false;
+      if (this.lastModifiedType != that.lastModifiedType)
+        return false;
+    }
+
+    boolean this_present_callbackEmails = true && this.isSetCallbackEmails();
+    boolean that_present_callbackEmails = true && that.isSetCallbackEmails();
+    if (this_present_callbackEmails || that_present_callbackEmails) {
+      if (!(this_present_callbackEmails && that_present_callbackEmails))
+        return false;
+      if (!this.callbackEmails.equals(that.callbackEmails))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_transferId = true && (isSetTransferId());
+    list.add(present_transferId);
+    if (present_transferId)
+      list.add(transferId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_username = true && (isSetUsername());
+    list.add(present_username);
+    if (present_username)
+      list.add(username);
+
+    boolean present_srcHostname = true && (isSetSrcHostname());
+    list.add(present_srcHostname);
+    if (present_srcHostname)
+      list.add(srcHostname);
+
+    boolean present_srcLoginName = true && (isSetSrcLoginName());
+    list.add(present_srcLoginName);
+    if (present_srcLoginName)
+      list.add(srcLoginName);
+
+    boolean present_srcPort = true && (isSetSrcPort());
+    list.add(present_srcPort);
+    if (present_srcPort)
+      list.add(srcPort);
+
+    boolean present_srcProtocol = true && (isSetSrcProtocol());
+    list.add(present_srcProtocol);
+    if (present_srcProtocol)
+      list.add(srcProtocol.getValue());
+
+    boolean present_srcFilePath = true && (isSetSrcFilePath());
+    list.add(present_srcFilePath);
+    if (present_srcFilePath)
+      list.add(srcFilePath);
+
+    boolean present_srcHostCredToken = true && (isSetSrcHostCredToken());
+    list.add(present_srcHostCredToken);
+    if (present_srcHostCredToken)
+      list.add(srcHostCredToken);
+
+    boolean present_destHostname = true && (isSetDestHostname());
+    list.add(present_destHostname);
+    if (present_destHostname)
+      list.add(destHostname);
+
+    boolean present_destLoginName = true && (isSetDestLoginName());
+    list.add(present_destLoginName);
+    if (present_destLoginName)
+      list.add(destLoginName);
+
+    boolean present_destPort = true && (isSetDestPort());
+    list.add(present_destPort);
+    if (present_destPort)
+      list.add(destPort);
+
+    boolean present_destProtocol = true && (isSetDestProtocol());
+    list.add(present_destProtocol);
+    if (present_destProtocol)
+      list.add(destProtocol.getValue());
+
+    boolean present_destFilePath = true && (isSetDestFilePath());
+    list.add(present_destFilePath);
+    if (present_destFilePath)
+      list.add(destFilePath);
+
+    boolean present_destHostCredToken = true && (isSetDestHostCredToken());
+    list.add(present_destHostCredToken);
+    if (present_destHostCredToken)
+      list.add(destHostCredToken);
+
+    boolean present_fileTransferMode = true && (isSetFileTransferMode());
+    list.add(present_fileTransferMode);
+    if (present_fileTransferMode)
+      list.add(fileTransferMode.getValue());
+
+    boolean present_transferStatus = true && (isSetTransferStatus());
+    list.add(present_transferStatus);
+    if (present_transferStatus)
+      list.add(transferStatus.getValue());
+
+    boolean present_fileSize = true && (isSetFileSize());
+    list.add(present_fileSize);
+    if (present_fileSize)
+      list.add(fileSize);
+
+    boolean present_transferTime = true && (isSetTransferTime());
+    list.add(present_transferTime);
+    if (present_transferTime)
+      list.add(transferTime);
+
+    boolean present_createdTime = true && (isSetCreatedTime());
+    list.add(present_createdTime);
+    if (present_createdTime)
+      list.add(createdTime);
+
+    boolean present_lastModifiedType = true && (isSetLastModifiedType());
+    list.add(present_lastModifiedType);
+    if (present_lastModifiedType)
+      list.add(lastModifiedType);
+
+    boolean present_callbackEmails = true && (isSetCallbackEmails());
+    list.add(present_callbackEmails);
+    if (present_callbackEmails)
+      list.add(callbackEmails);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(FileTransferRequestModel 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(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUsername()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSrcHostname()).compareTo(other.isSetSrcHostname());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSrcHostname()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcHostname, other.srcHostname);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSrcLoginName()).compareTo(other.isSetSrcLoginName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSrcLoginName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcLoginName, other.srcLoginName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSrcPort()).compareTo(other.isSetSrcPort());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSrcPort()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcPort, other.srcPort);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSrcProtocol()).compareTo(other.isSetSrcProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSrcProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcProtocol, other.srcProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSrcFilePath()).compareTo(other.isSetSrcFilePath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSrcFilePath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcFilePath, other.srcFilePath);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSrcHostCredToken()).compareTo(other.isSetSrcHostCredToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSrcHostCredToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcHostCredToken, other.srcHostCredToken);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDestHostname()).compareTo(other.isSetDestHostname());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDestHostname()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destHostname, other.destHostname);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDestLoginName()).compareTo(other.isSetDestLoginName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDestLoginName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destLoginName, other.destLoginName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDestPort()).compareTo(other.isSetDestPort());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDestPort()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destPort, other.destPort);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDestProtocol()).compareTo(other.isSetDestProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDestProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destProtocol, other.destProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDestFilePath()).compareTo(other.isSetDestFilePath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDestFilePath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destFilePath, other.destFilePath);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDestHostCredToken()).compareTo(other.isSetDestHostCredToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDestHostCredToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destHostCredToken, other.destHostCredToken);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileTransferMode()).compareTo(other.isSetFileTransferMode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileTransferMode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileTransferMode, other.fileTransferMode);
+      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;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileSize()).compareTo(other.isSetFileSize());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileSize()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileSize, other.fileSize);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTransferTime()).compareTo(other.isSetTransferTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTransferTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transferTime, other.transferTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCreatedTime()).compareTo(other.isSetCreatedTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCreatedTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.createdTime, other.createdTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLastModifiedType()).compareTo(other.isSetLastModifiedType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLastModifiedType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedType, other.lastModifiedType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCallbackEmails()).compareTo(other.isSetCallbackEmails());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCallbackEmails()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.callbackEmails, other.callbackEmails);
+      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("FileTransferRequestModel(");
+    boolean first = true;
+
+    if (isSetTransferId()) {
+      sb.append("transferId:");
+      if (this.transferId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.transferId);
+      }
+      first = false;
+    }
+    if (isSetGatewayId()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
+    }
+    if (isSetUsername()) {
+      if (!first) sb.append(", ");
+      sb.append("username:");
+      if (this.username == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.username);
+      }
+      first = false;
+    }
+    if (isSetSrcHostname()) {
+      if (!first) sb.append(", ");
+      sb.append("srcHostname:");
+      if (this.srcHostname == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.srcHostname);
+      }
+      first = false;
+    }
+    if (isSetSrcLoginName()) {
+      if (!first) sb.append(", ");
+      sb.append("srcLoginName:");
+      if (this.srcLoginName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.srcLoginName);
+      }
+      first = false;
+    }
+    if (isSetSrcPort()) {
+      if (!first) sb.append(", ");
+      sb.append("srcPort:");
+      sb.append(this.srcPort);
+      first = false;
+    }
+    if (isSetSrcProtocol()) {
+      if (!first) sb.append(", ");
+      sb.append("srcProtocol:");
+      if (this.srcProtocol == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.srcProtocol);
+      }
+      first = false;
+    }
+    if (isSetSrcFilePath()) {
+      if (!first) sb.append(", ");
+      sb.append("srcFilePath:");
+      if (this.srcFilePath == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.srcFilePath);
+      }
+      first = false;
+    }
+    if (isSetSrcHostCredToken()) {
+      if (!first) sb.append(", ");
+      sb.append("srcHostCredToken:");
+      if (this.srcHostCredToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.srcHostCredToken);
+      }
+      first = false;
+    }
+    if (isSetDestHostname()) {
+      if (!first) sb.append(", ");
+      sb.append("destHostname:");
+      if (this.destHostname == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.destHostname);
+      }
+      first = false;
+    }
+    if (isSetDestLoginName()) {
+      if (!first) sb.append(", ");
+      sb.append("destLoginName:");
+      if (this.destLoginName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.destLoginName);
+      }
+      first = false;
+    }
+    if (isSetDestPort()) {
+      if (!first) sb.append(", ");
+      sb.append("destPort:");
+      sb.append(this.destPort);
+      first = false;
+    }
+    if (isSetDestProtocol()) {
+      if (!first) sb.append(", ");
+      sb.append("destProtocol:");
+      if (this.destProtocol == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.destProtocol);
+      }
+      first = false;
+    }
+    if (isSetDestFilePath()) {
+      if (!first) sb.append(", ");
+      sb.append("destFilePath:");
+      if (this.destFilePath == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.destFilePath);
+      }
+      first = false;
+    }
+    if (isSetDestHostCredToken()) {
+      if (!first) sb.append(", ");
+      sb.append("destHostCredToken:");
+      if (this.destHostCredToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.destHostCredToken);
+      }
+      first = false;
+    }
+    if (isSetFileTransferMode()) {
+      if (!first) sb.append(", ");
+      sb.append("fileTransferMode:");
+      if (this.fileTransferMode == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileTransferMode);
+      }
+      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;
+    }
+    if (isSetFileSize()) {
+      if (!first) sb.append(", ");
+      sb.append("fileSize:");
+      sb.append(this.fileSize);
+      first = false;
+    }
+    if (isSetTransferTime()) {
+      if (!first) sb.append(", ");
+      sb.append("transferTime:");
+      sb.append(this.transferTime);
+      first = false;
+    }
+    if (isSetCreatedTime()) {
+      if (!first) sb.append(", ");
+      sb.append("createdTime:");
+      sb.append(this.createdTime);
+      first = false;
+    }
+    if (isSetLastModifiedType()) {
+      if (!first) sb.append(", ");
+      sb.append("lastModifiedType:");
+      sb.append(this.lastModifiedType);
+      first = false;
+    }
+    if (isSetCallbackEmails()) {
+      if (!first) sb.append(", ");
+      sb.append("callbackEmails:");
+      if (this.callbackEmails == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.callbackEmails);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 FileTransferRequestModelStandardSchemeFactory implements SchemeFactory {
+    public FileTransferRequestModelStandardScheme getScheme() {
+      return new FileTransferRequestModelStandardScheme();
+    }
+  }
+
+  private static class FileTransferRequestModelStandardScheme extends StandardScheme<FileTransferRequestModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, FileTransferRequestModel 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: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // USERNAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.username = iprot.readString();
+              struct.setUsernameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // SRC_HOSTNAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.srcHostname = iprot.readString();
+              struct.setSrcHostnameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // SRC_LOGIN_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.srcLoginName = iprot.readString();
+              struct.setSrcLoginNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // SRC_PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.srcPort = iprot.readI64();
+              struct.setSrcPortIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // SRC_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.srcProtocol = org.apache.airavata.model.data.transfer.StorageResourceProtocol.findByValue(iprot.readI32());
+              struct.setSrcProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // SRC_FILE_PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.srcFilePath = iprot.readString();
+              struct.setSrcFilePathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // SRC_HOST_CRED_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.srcHostCredToken = iprot.readString();
+              struct.setSrcHostCredTokenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // DEST_HOSTNAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.destHostname = iprot.readString();
+              struct.setDestHostnameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // DEST_LOGIN_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.destLoginName = iprot.readString();
+              struct.setDestLoginNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // DEST_PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.destPort = iprot.readI64();
+              struct.setDestPortIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 13: // DEST_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.destProtocol = org.apache.airavata.model.data.transfer.StorageResourceProtocol.findByValue(iprot.readI32());
+              struct.setDestProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 14: // DEST_FILE_PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.destFilePath = iprot.readString();
+              struct.setDestFilePathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 15: // DEST_HOST_CRED_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.destHostCredToken = iprot.readString();
+              struct.setDestHostCredTokenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 16: // FILE_TRANSFER_MODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.fileTransferMode = org.apache.airavata.model.data.transfer.FileTransferMode.findByValue(iprot.readI32());
+              struct.setFileTransferModeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 17: // TRANSFER_STATUS
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.transferStatus = org.apache.airavata.model.data.transfer.FileTransferStatus.findByValue(iprot.readI32());
+              struct.setTransferStatusIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 18: // FILE_SIZE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.fileSize = iprot.readI64();
+              struct.setFileSizeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 19: // TRANSFER_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.transferTime = iprot.readI64();
+              struct.setTransferTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 20: // CREATED_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.createdTime = iprot.readI64();
+              struct.setCreatedTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 21: // LAST_MODIFIED_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.lastModifiedType = iprot.readI64();
+              struct.setLastModifiedTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 22: // CALLBACK_EMAILS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.callbackEmails = new ArrayList<String>(_list0.size);
+                String _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = iprot.readString();
+                  struct.callbackEmails.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setCallbackEmailsIsSet(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, FileTransferRequestModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.transferId != null) {
+        if (struct.isSetTransferId()) {
+          oprot.writeFieldBegin(TRANSFER_ID_FIELD_DESC);
+          oprot.writeString(struct.transferId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.gatewayId != null) {
+        if (struct.isSetGatewayId()) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.username != null) {
+        if (struct.isSetUsername()) {
+          oprot.writeFieldBegin(USERNAME_FIELD_DESC);
+          oprot.writeString(struct.username);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.srcHostname != null) {
+        if (struct.isSetSrcHostname()) {
+          oprot.writeFieldBegin(SRC_HOSTNAME_FIELD_DESC);
+          oprot.writeString(struct.srcHostname);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.srcLoginName != null) {
+        if (struct.isSetSrcLoginName()) {
+          oprot.writeFieldBegin(SRC_LOGIN_NAME_FIELD_DESC);
+          oprot.writeString(struct.srcLoginName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetSrcPort()) {
+        oprot.writeFieldBegin(SRC_PORT_FIELD_DESC);
+        oprot.writeI64(struct.srcPort);
+        oprot.writeFieldEnd();
+      }
+      if (struct.srcProtocol != null) {
+        if (struct.isSetSrcProtocol()) {
+          oprot.writeFieldBegin(SRC_PROTOCOL_FIELD_DESC);
+          oprot.writeI32(struct.srcProtocol.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.srcFilePath != null) {
+        if (struct.isSetSrcFilePath()) {
+          oprot.writeFieldBegin(SRC_FILE_PATH_FIELD_DESC);
+          oprot.writeString(struct.srcFilePath);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.srcHostCredToken != null) {
+        if (struct.isSetSrcHostCredToken()) {
+          oprot.writeFieldBegin(SRC_HOST_CRED_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.srcHostCredToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.destHostname != null) {
+        if (struct.isSetDestHostname()) {
+          oprot.writeFieldBegin(DEST_HOSTNAME_FIELD_DESC);
+          oprot.writeString(struct.destHostname);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.destLoginName != null) {
+        if (struct.isSetDestLoginName()) {
+          oprot.writeFieldBegin(DEST_LOGIN_NAME_FIELD_DESC);
+          oprot.writeString(struct.destLoginName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetDestPort()) {
+        oprot.writeFieldBegin(DEST_PORT_FIELD_DESC);
+        oprot.writeI64(struct.destPort);
+        oprot.writeFieldEnd();
+      }
+      if (struct.destProtocol != null) {
+        if (struct.isSetDestProtocol()) {
+          oprot.writeFieldBegin(DEST_PROTOCOL_FIELD_DESC);
+          oprot.writeI32(struct.destProtocol.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.destFilePath != null) {
+        if (struct.isSetDestFilePath()) {
+          oprot.writeFieldBegin(DEST_FILE_PATH_FIELD_DESC);
+          oprot.writeString(struct.destFilePath);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.destHostCredToken != null) {
+        if (struct.isSetDestHostCredToken()) {
+          oprot.writeFieldBegin(DEST_HOST_CRED_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.destHostCredToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.fileTransferMode != null) {
+        if (struct.isSetFileTransferMode()) {
+          oprot.writeFieldBegin(FILE_TRANSFER_MODE_FIELD_DESC);
+          oprot.writeI32(struct.fileTransferMode.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.transferStatus != null) {
+        if (struct.isSetTransferStatus()) {
+          oprot.writeFieldBegin(TRANSFER_STATUS_FIELD_DESC);
+          oprot.writeI32(struct.transferStatus.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetFileSize()) {
+        oprot.writeFieldBegin(FILE_SIZE_FIELD_DESC);
+        oprot.writeI64(struct.fileSize);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTransferTime()) {
+        oprot.writeFieldBegin(TRANSFER_TIME_FIELD_DESC);
+        oprot.writeI64(struct.transferTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCreatedTime()) {
+        oprot.writeFieldBegin(CREATED_TIME_FIELD_DESC);
+        oprot.writeI64(struct.createdTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetLastModifiedType()) {
+        oprot.writeFieldBegin(LAST_MODIFIED_TYPE_FIELD_DESC);
+        oprot.writeI64(struct.lastModifiedType);
+        oprot.writeFieldEnd();
+      }
+      if (struct.callbackEmails != null) {
+        if (struct.isSetCallbackEmails()) {
+          oprot.writeFieldBegin(CALLBACK_EMAILS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.callbackEmails.size()));
+            for (String _iter3 : struct.callbackEmails)
+            {
+              oprot.writeString(_iter3);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class FileTransferRequestModelTupleSchemeFactory implements SchemeFactory {
+    public FileTransferRequestModelTupleScheme getScheme() {
+      return new FileTransferRequestModelTupleScheme();
+    }
+  }
+
+  private static class FileTransferRequestModelTupleScheme extends TupleScheme<FileTransferRequestModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, FileTransferRequestModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetTransferId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetGatewayId()) {
+        optionals.set(1);
+      }
+      if (struct.isSetUsername()) {
+        optionals.set(2);
+      }
+      if (struct.isSetSrcHostname()) {
+        optionals.set(3);
+      }
+      if (struct.isSetSrcLoginName()) {
+        optionals.set(4);
+      }
+      if (struct.isSetSrcPort()) {
+        optionals.set(5);
+      }
+      if (struct.isSetSrcProtocol()) {
+        optionals.set(6);
+      }
+      if (struct.isSetSrcFilePath()) {
+        optionals.set(7);
+      }
+      if (struct.isSetSrcHostCredToken()) {
+        optionals.set(8);
+      }
+      if (struct.isSetDestHostname()) {
+        optionals.set(9);
+      }
+      if (struct.isSetDestLoginName()

<TRUNCATED>

[09/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferRequestModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferRequestModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferRequestModel.java
deleted file mode 100644
index ecda7cd..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferRequestModel.java
+++ /dev/null
@@ -1,2695 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.transfer;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
-public class FileTransferRequestModel implements org.apache.thrift.TBase<FileTransferRequestModel, FileTransferRequestModel._Fields>, java.io.Serializable, Cloneable, Comparable<FileTransferRequestModel> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("FileTransferRequestModel");
-
-  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 GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField SRC_HOSTNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("srcHostname", org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField SRC_LOGIN_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("srcLoginName", org.apache.thrift.protocol.TType.STRING, (short)5);
-  private static final org.apache.thrift.protocol.TField SRC_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("srcPort", org.apache.thrift.protocol.TType.I64, (short)6);
-  private static final org.apache.thrift.protocol.TField SRC_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("srcProtocol", org.apache.thrift.protocol.TType.I32, (short)7);
-  private static final org.apache.thrift.protocol.TField SRC_FILE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("srcFilePath", org.apache.thrift.protocol.TType.STRING, (short)8);
-  private static final org.apache.thrift.protocol.TField SRC_HOST_CRED_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("srcHostCredToken", org.apache.thrift.protocol.TType.STRING, (short)9);
-  private static final org.apache.thrift.protocol.TField DEST_HOSTNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("destHostname", org.apache.thrift.protocol.TType.STRING, (short)10);
-  private static final org.apache.thrift.protocol.TField DEST_LOGIN_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("destLoginName", org.apache.thrift.protocol.TType.STRING, (short)11);
-  private static final org.apache.thrift.protocol.TField DEST_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("destPort", org.apache.thrift.protocol.TType.I64, (short)12);
-  private static final org.apache.thrift.protocol.TField DEST_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("destProtocol", org.apache.thrift.protocol.TType.I32, (short)13);
-  private static final org.apache.thrift.protocol.TField DEST_FILE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("destFilePath", org.apache.thrift.protocol.TType.STRING, (short)14);
-  private static final org.apache.thrift.protocol.TField DEST_HOST_CRED_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("destHostCredToken", org.apache.thrift.protocol.TType.STRING, (short)15);
-  private static final org.apache.thrift.protocol.TField FILE_TRANSFER_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("fileTransferMode", org.apache.thrift.protocol.TType.I32, (short)16);
-  private static final org.apache.thrift.protocol.TField TRANSFER_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("transferStatus", org.apache.thrift.protocol.TType.I32, (short)17);
-  private static final org.apache.thrift.protocol.TField FILE_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("fileSize", org.apache.thrift.protocol.TType.I64, (short)18);
-  private static final org.apache.thrift.protocol.TField TRANSFER_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("transferTime", org.apache.thrift.protocol.TType.I64, (short)19);
-  private static final org.apache.thrift.protocol.TField CREATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("createdTime", org.apache.thrift.protocol.TType.I64, (short)20);
-  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedType", org.apache.thrift.protocol.TType.I64, (short)21);
-  private static final org.apache.thrift.protocol.TField CALLBACK_EMAILS_FIELD_DESC = new org.apache.thrift.protocol.TField("callbackEmails", org.apache.thrift.protocol.TType.LIST, (short)22);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new FileTransferRequestModelStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new FileTransferRequestModelTupleSchemeFactory());
-  }
-
-  private String transferId; // optional
-  private String gatewayId; // optional
-  private String username; // optional
-  private String srcHostname; // optional
-  private String srcLoginName; // optional
-  private long srcPort; // optional
-  private StorageResourceProtocol srcProtocol; // optional
-  private String srcFilePath; // optional
-  private String srcHostCredToken; // optional
-  private String destHostname; // optional
-  private String destLoginName; // optional
-  private long destPort; // optional
-  private StorageResourceProtocol destProtocol; // optional
-  private String destFilePath; // optional
-  private String destHostCredToken; // optional
-  private FileTransferMode fileTransferMode; // optional
-  private FileTransferStatus transferStatus; // optional
-  private long fileSize; // optional
-  private long transferTime; // optional
-  private long createdTime; // optional
-  private long lastModifiedType; // optional
-  private List<String> callbackEmails; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    TRANSFER_ID((short)1, "transferId"),
-    GATEWAY_ID((short)2, "gatewayId"),
-    USERNAME((short)3, "username"),
-    SRC_HOSTNAME((short)4, "srcHostname"),
-    SRC_LOGIN_NAME((short)5, "srcLoginName"),
-    SRC_PORT((short)6, "srcPort"),
-    /**
-     * 
-     * @see StorageResourceProtocol
-     */
-    SRC_PROTOCOL((short)7, "srcProtocol"),
-    SRC_FILE_PATH((short)8, "srcFilePath"),
-    SRC_HOST_CRED_TOKEN((short)9, "srcHostCredToken"),
-    DEST_HOSTNAME((short)10, "destHostname"),
-    DEST_LOGIN_NAME((short)11, "destLoginName"),
-    DEST_PORT((short)12, "destPort"),
-    /**
-     * 
-     * @see StorageResourceProtocol
-     */
-    DEST_PROTOCOL((short)13, "destProtocol"),
-    DEST_FILE_PATH((short)14, "destFilePath"),
-    DEST_HOST_CRED_TOKEN((short)15, "destHostCredToken"),
-    /**
-     * 
-     * @see FileTransferMode
-     */
-    FILE_TRANSFER_MODE((short)16, "fileTransferMode"),
-    /**
-     * 
-     * @see FileTransferStatus
-     */
-    TRANSFER_STATUS((short)17, "transferStatus"),
-    FILE_SIZE((short)18, "fileSize"),
-    TRANSFER_TIME((short)19, "transferTime"),
-    CREATED_TIME((short)20, "createdTime"),
-    LAST_MODIFIED_TYPE((short)21, "lastModifiedType"),
-    CALLBACK_EMAILS((short)22, "callbackEmails");
-
-    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: // GATEWAY_ID
-          return GATEWAY_ID;
-        case 3: // USERNAME
-          return USERNAME;
-        case 4: // SRC_HOSTNAME
-          return SRC_HOSTNAME;
-        case 5: // SRC_LOGIN_NAME
-          return SRC_LOGIN_NAME;
-        case 6: // SRC_PORT
-          return SRC_PORT;
-        case 7: // SRC_PROTOCOL
-          return SRC_PROTOCOL;
-        case 8: // SRC_FILE_PATH
-          return SRC_FILE_PATH;
-        case 9: // SRC_HOST_CRED_TOKEN
-          return SRC_HOST_CRED_TOKEN;
-        case 10: // DEST_HOSTNAME
-          return DEST_HOSTNAME;
-        case 11: // DEST_LOGIN_NAME
-          return DEST_LOGIN_NAME;
-        case 12: // DEST_PORT
-          return DEST_PORT;
-        case 13: // DEST_PROTOCOL
-          return DEST_PROTOCOL;
-        case 14: // DEST_FILE_PATH
-          return DEST_FILE_PATH;
-        case 15: // DEST_HOST_CRED_TOKEN
-          return DEST_HOST_CRED_TOKEN;
-        case 16: // FILE_TRANSFER_MODE
-          return FILE_TRANSFER_MODE;
-        case 17: // TRANSFER_STATUS
-          return TRANSFER_STATUS;
-        case 18: // FILE_SIZE
-          return FILE_SIZE;
-        case 19: // TRANSFER_TIME
-          return TRANSFER_TIME;
-        case 20: // CREATED_TIME
-          return CREATED_TIME;
-        case 21: // LAST_MODIFIED_TYPE
-          return LAST_MODIFIED_TYPE;
-        case 22: // CALLBACK_EMAILS
-          return CALLBACK_EMAILS;
-        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 __SRCPORT_ISSET_ID = 0;
-  private static final int __DESTPORT_ISSET_ID = 1;
-  private static final int __FILESIZE_ISSET_ID = 2;
-  private static final int __TRANSFERTIME_ISSET_ID = 3;
-  private static final int __CREATEDTIME_ISSET_ID = 4;
-  private static final int __LASTMODIFIEDTYPE_ISSET_ID = 5;
-  private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.TRANSFER_ID,_Fields.GATEWAY_ID,_Fields.USERNAME,_Fields.SRC_HOSTNAME,_Fields.SRC_LOGIN_NAME,_Fields.SRC_PORT,_Fields.SRC_PROTOCOL,_Fields.SRC_FILE_PATH,_Fields.SRC_HOST_CRED_TOKEN,_Fields.DEST_HOSTNAME,_Fields.DEST_LOGIN_NAME,_Fields.DEST_PORT,_Fields.DEST_PROTOCOL,_Fields.DEST_FILE_PATH,_Fields.DEST_HOST_CRED_TOKEN,_Fields.FILE_TRANSFER_MODE,_Fields.TRANSFER_STATUS,_Fields.FILE_SIZE,_Fields.TRANSFER_TIME,_Fields.CREATED_TIME,_Fields.LAST_MODIFIED_TYPE,_Fields.CALLBACK_EMAILS};
-  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.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SRC_HOSTNAME, new org.apache.thrift.meta_data.FieldMetaData("srcHostname", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SRC_LOGIN_NAME, new org.apache.thrift.meta_data.FieldMetaData("srcLoginName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SRC_PORT, new org.apache.thrift.meta_data.FieldMetaData("srcPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.SRC_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("srcProtocol", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, StorageResourceProtocol.class)));
-    tmpMap.put(_Fields.SRC_FILE_PATH, new org.apache.thrift.meta_data.FieldMetaData("srcFilePath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SRC_HOST_CRED_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("srcHostCredToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.DEST_HOSTNAME, new org.apache.thrift.meta_data.FieldMetaData("destHostname", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.DEST_LOGIN_NAME, new org.apache.thrift.meta_data.FieldMetaData("destLoginName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.DEST_PORT, new org.apache.thrift.meta_data.FieldMetaData("destPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.DEST_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("destProtocol", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, StorageResourceProtocol.class)));
-    tmpMap.put(_Fields.DEST_FILE_PATH, new org.apache.thrift.meta_data.FieldMetaData("destFilePath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.DEST_HOST_CRED_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("destHostCredToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.FILE_TRANSFER_MODE, new org.apache.thrift.meta_data.FieldMetaData("fileTransferMode", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, FileTransferMode.class)));
-    tmpMap.put(_Fields.TRANSFER_STATUS, new org.apache.thrift.meta_data.FieldMetaData("transferStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, FileTransferStatus.class)));
-    tmpMap.put(_Fields.FILE_SIZE, new org.apache.thrift.meta_data.FieldMetaData("fileSize", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.TRANSFER_TIME, new org.apache.thrift.meta_data.FieldMetaData("transferTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.CREATED_TIME, new org.apache.thrift.meta_data.FieldMetaData("createdTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.LAST_MODIFIED_TYPE, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.CALLBACK_EMAILS, new org.apache.thrift.meta_data.FieldMetaData("callbackEmails", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(FileTransferRequestModel.class, metaDataMap);
-  }
-
-  public FileTransferRequestModel() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public FileTransferRequestModel(FileTransferRequestModel other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetTransferId()) {
-      this.transferId = other.transferId;
-    }
-    if (other.isSetGatewayId()) {
-      this.gatewayId = other.gatewayId;
-    }
-    if (other.isSetUsername()) {
-      this.username = other.username;
-    }
-    if (other.isSetSrcHostname()) {
-      this.srcHostname = other.srcHostname;
-    }
-    if (other.isSetSrcLoginName()) {
-      this.srcLoginName = other.srcLoginName;
-    }
-    this.srcPort = other.srcPort;
-    if (other.isSetSrcProtocol()) {
-      this.srcProtocol = other.srcProtocol;
-    }
-    if (other.isSetSrcFilePath()) {
-      this.srcFilePath = other.srcFilePath;
-    }
-    if (other.isSetSrcHostCredToken()) {
-      this.srcHostCredToken = other.srcHostCredToken;
-    }
-    if (other.isSetDestHostname()) {
-      this.destHostname = other.destHostname;
-    }
-    if (other.isSetDestLoginName()) {
-      this.destLoginName = other.destLoginName;
-    }
-    this.destPort = other.destPort;
-    if (other.isSetDestProtocol()) {
-      this.destProtocol = other.destProtocol;
-    }
-    if (other.isSetDestFilePath()) {
-      this.destFilePath = other.destFilePath;
-    }
-    if (other.isSetDestHostCredToken()) {
-      this.destHostCredToken = other.destHostCredToken;
-    }
-    if (other.isSetFileTransferMode()) {
-      this.fileTransferMode = other.fileTransferMode;
-    }
-    if (other.isSetTransferStatus()) {
-      this.transferStatus = other.transferStatus;
-    }
-    this.fileSize = other.fileSize;
-    this.transferTime = other.transferTime;
-    this.createdTime = other.createdTime;
-    this.lastModifiedType = other.lastModifiedType;
-    if (other.isSetCallbackEmails()) {
-      List<String> __this__callbackEmails = new ArrayList<String>(other.callbackEmails);
-      this.callbackEmails = __this__callbackEmails;
-    }
-  }
-
-  public FileTransferRequestModel deepCopy() {
-    return new FileTransferRequestModel(this);
-  }
-
-  @Override
-  public void clear() {
-    this.transferId = null;
-    this.gatewayId = null;
-    this.username = null;
-    this.srcHostname = null;
-    this.srcLoginName = null;
-    setSrcPortIsSet(false);
-    this.srcPort = 0;
-    this.srcProtocol = null;
-    this.srcFilePath = null;
-    this.srcHostCredToken = null;
-    this.destHostname = null;
-    this.destLoginName = null;
-    setDestPortIsSet(false);
-    this.destPort = 0;
-    this.destProtocol = null;
-    this.destFilePath = null;
-    this.destHostCredToken = null;
-    this.fileTransferMode = null;
-    this.transferStatus = null;
-    setFileSizeIsSet(false);
-    this.fileSize = 0;
-    setTransferTimeIsSet(false);
-    this.transferTime = 0;
-    setCreatedTimeIsSet(false);
-    this.createdTime = 0;
-    setLastModifiedTypeIsSet(false);
-    this.lastModifiedType = 0;
-    this.callbackEmails = 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 String getGatewayId() {
-    return this.gatewayId;
-  }
-
-  public void setGatewayId(String gatewayId) {
-    this.gatewayId = gatewayId;
-  }
-
-  public void unsetGatewayId() {
-    this.gatewayId = null;
-  }
-
-  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
-  public boolean isSetGatewayId() {
-    return this.gatewayId != null;
-  }
-
-  public void setGatewayIdIsSet(boolean value) {
-    if (!value) {
-      this.gatewayId = null;
-    }
-  }
-
-  public String getUsername() {
-    return this.username;
-  }
-
-  public void setUsername(String username) {
-    this.username = username;
-  }
-
-  public void unsetUsername() {
-    this.username = null;
-  }
-
-  /** Returns true if field username is set (has been assigned a value) and false otherwise */
-  public boolean isSetUsername() {
-    return this.username != null;
-  }
-
-  public void setUsernameIsSet(boolean value) {
-    if (!value) {
-      this.username = null;
-    }
-  }
-
-  public String getSrcHostname() {
-    return this.srcHostname;
-  }
-
-  public void setSrcHostname(String srcHostname) {
-    this.srcHostname = srcHostname;
-  }
-
-  public void unsetSrcHostname() {
-    this.srcHostname = null;
-  }
-
-  /** Returns true if field srcHostname is set (has been assigned a value) and false otherwise */
-  public boolean isSetSrcHostname() {
-    return this.srcHostname != null;
-  }
-
-  public void setSrcHostnameIsSet(boolean value) {
-    if (!value) {
-      this.srcHostname = null;
-    }
-  }
-
-  public String getSrcLoginName() {
-    return this.srcLoginName;
-  }
-
-  public void setSrcLoginName(String srcLoginName) {
-    this.srcLoginName = srcLoginName;
-  }
-
-  public void unsetSrcLoginName() {
-    this.srcLoginName = null;
-  }
-
-  /** Returns true if field srcLoginName is set (has been assigned a value) and false otherwise */
-  public boolean isSetSrcLoginName() {
-    return this.srcLoginName != null;
-  }
-
-  public void setSrcLoginNameIsSet(boolean value) {
-    if (!value) {
-      this.srcLoginName = null;
-    }
-  }
-
-  public long getSrcPort() {
-    return this.srcPort;
-  }
-
-  public void setSrcPort(long srcPort) {
-    this.srcPort = srcPort;
-    setSrcPortIsSet(true);
-  }
-
-  public void unsetSrcPort() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SRCPORT_ISSET_ID);
-  }
-
-  /** Returns true if field srcPort is set (has been assigned a value) and false otherwise */
-  public boolean isSetSrcPort() {
-    return EncodingUtils.testBit(__isset_bitfield, __SRCPORT_ISSET_ID);
-  }
-
-  public void setSrcPortIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SRCPORT_ISSET_ID, value);
-  }
-
-  /**
-   * 
-   * @see StorageResourceProtocol
-   */
-  public StorageResourceProtocol getSrcProtocol() {
-    return this.srcProtocol;
-  }
-
-  /**
-   * 
-   * @see StorageResourceProtocol
-   */
-  public void setSrcProtocol(StorageResourceProtocol srcProtocol) {
-    this.srcProtocol = srcProtocol;
-  }
-
-  public void unsetSrcProtocol() {
-    this.srcProtocol = null;
-  }
-
-  /** Returns true if field srcProtocol is set (has been assigned a value) and false otherwise */
-  public boolean isSetSrcProtocol() {
-    return this.srcProtocol != null;
-  }
-
-  public void setSrcProtocolIsSet(boolean value) {
-    if (!value) {
-      this.srcProtocol = null;
-    }
-  }
-
-  public String getSrcFilePath() {
-    return this.srcFilePath;
-  }
-
-  public void setSrcFilePath(String srcFilePath) {
-    this.srcFilePath = srcFilePath;
-  }
-
-  public void unsetSrcFilePath() {
-    this.srcFilePath = null;
-  }
-
-  /** Returns true if field srcFilePath is set (has been assigned a value) and false otherwise */
-  public boolean isSetSrcFilePath() {
-    return this.srcFilePath != null;
-  }
-
-  public void setSrcFilePathIsSet(boolean value) {
-    if (!value) {
-      this.srcFilePath = null;
-    }
-  }
-
-  public String getSrcHostCredToken() {
-    return this.srcHostCredToken;
-  }
-
-  public void setSrcHostCredToken(String srcHostCredToken) {
-    this.srcHostCredToken = srcHostCredToken;
-  }
-
-  public void unsetSrcHostCredToken() {
-    this.srcHostCredToken = null;
-  }
-
-  /** Returns true if field srcHostCredToken is set (has been assigned a value) and false otherwise */
-  public boolean isSetSrcHostCredToken() {
-    return this.srcHostCredToken != null;
-  }
-
-  public void setSrcHostCredTokenIsSet(boolean value) {
-    if (!value) {
-      this.srcHostCredToken = null;
-    }
-  }
-
-  public String getDestHostname() {
-    return this.destHostname;
-  }
-
-  public void setDestHostname(String destHostname) {
-    this.destHostname = destHostname;
-  }
-
-  public void unsetDestHostname() {
-    this.destHostname = null;
-  }
-
-  /** Returns true if field destHostname is set (has been assigned a value) and false otherwise */
-  public boolean isSetDestHostname() {
-    return this.destHostname != null;
-  }
-
-  public void setDestHostnameIsSet(boolean value) {
-    if (!value) {
-      this.destHostname = null;
-    }
-  }
-
-  public String getDestLoginName() {
-    return this.destLoginName;
-  }
-
-  public void setDestLoginName(String destLoginName) {
-    this.destLoginName = destLoginName;
-  }
-
-  public void unsetDestLoginName() {
-    this.destLoginName = null;
-  }
-
-  /** Returns true if field destLoginName is set (has been assigned a value) and false otherwise */
-  public boolean isSetDestLoginName() {
-    return this.destLoginName != null;
-  }
-
-  public void setDestLoginNameIsSet(boolean value) {
-    if (!value) {
-      this.destLoginName = null;
-    }
-  }
-
-  public long getDestPort() {
-    return this.destPort;
-  }
-
-  public void setDestPort(long destPort) {
-    this.destPort = destPort;
-    setDestPortIsSet(true);
-  }
-
-  public void unsetDestPort() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DESTPORT_ISSET_ID);
-  }
-
-  /** Returns true if field destPort is set (has been assigned a value) and false otherwise */
-  public boolean isSetDestPort() {
-    return EncodingUtils.testBit(__isset_bitfield, __DESTPORT_ISSET_ID);
-  }
-
-  public void setDestPortIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DESTPORT_ISSET_ID, value);
-  }
-
-  /**
-   * 
-   * @see StorageResourceProtocol
-   */
-  public StorageResourceProtocol getDestProtocol() {
-    return this.destProtocol;
-  }
-
-  /**
-   * 
-   * @see StorageResourceProtocol
-   */
-  public void setDestProtocol(StorageResourceProtocol destProtocol) {
-    this.destProtocol = destProtocol;
-  }
-
-  public void unsetDestProtocol() {
-    this.destProtocol = null;
-  }
-
-  /** Returns true if field destProtocol is set (has been assigned a value) and false otherwise */
-  public boolean isSetDestProtocol() {
-    return this.destProtocol != null;
-  }
-
-  public void setDestProtocolIsSet(boolean value) {
-    if (!value) {
-      this.destProtocol = null;
-    }
-  }
-
-  public String getDestFilePath() {
-    return this.destFilePath;
-  }
-
-  public void setDestFilePath(String destFilePath) {
-    this.destFilePath = destFilePath;
-  }
-
-  public void unsetDestFilePath() {
-    this.destFilePath = null;
-  }
-
-  /** Returns true if field destFilePath is set (has been assigned a value) and false otherwise */
-  public boolean isSetDestFilePath() {
-    return this.destFilePath != null;
-  }
-
-  public void setDestFilePathIsSet(boolean value) {
-    if (!value) {
-      this.destFilePath = null;
-    }
-  }
-
-  public String getDestHostCredToken() {
-    return this.destHostCredToken;
-  }
-
-  public void setDestHostCredToken(String destHostCredToken) {
-    this.destHostCredToken = destHostCredToken;
-  }
-
-  public void unsetDestHostCredToken() {
-    this.destHostCredToken = null;
-  }
-
-  /** Returns true if field destHostCredToken is set (has been assigned a value) and false otherwise */
-  public boolean isSetDestHostCredToken() {
-    return this.destHostCredToken != null;
-  }
-
-  public void setDestHostCredTokenIsSet(boolean value) {
-    if (!value) {
-      this.destHostCredToken = null;
-    }
-  }
-
-  /**
-   * 
-   * @see FileTransferMode
-   */
-  public FileTransferMode getFileTransferMode() {
-    return this.fileTransferMode;
-  }
-
-  /**
-   * 
-   * @see FileTransferMode
-   */
-  public void setFileTransferMode(FileTransferMode fileTransferMode) {
-    this.fileTransferMode = fileTransferMode;
-  }
-
-  public void unsetFileTransferMode() {
-    this.fileTransferMode = null;
-  }
-
-  /** Returns true if field fileTransferMode is set (has been assigned a value) and false otherwise */
-  public boolean isSetFileTransferMode() {
-    return this.fileTransferMode != null;
-  }
-
-  public void setFileTransferModeIsSet(boolean value) {
-    if (!value) {
-      this.fileTransferMode = null;
-    }
-  }
-
-  /**
-   * 
-   * @see FileTransferStatus
-   */
-  public FileTransferStatus getTransferStatus() {
-    return this.transferStatus;
-  }
-
-  /**
-   * 
-   * @see FileTransferStatus
-   */
-  public void setTransferStatus(FileTransferStatus 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 long getFileSize() {
-    return this.fileSize;
-  }
-
-  public void setFileSize(long fileSize) {
-    this.fileSize = fileSize;
-    setFileSizeIsSet(true);
-  }
-
-  public void unsetFileSize() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __FILESIZE_ISSET_ID);
-  }
-
-  /** Returns true if field fileSize is set (has been assigned a value) and false otherwise */
-  public boolean isSetFileSize() {
-    return EncodingUtils.testBit(__isset_bitfield, __FILESIZE_ISSET_ID);
-  }
-
-  public void setFileSizeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __FILESIZE_ISSET_ID, value);
-  }
-
-  public long getTransferTime() {
-    return this.transferTime;
-  }
-
-  public void setTransferTime(long transferTime) {
-    this.transferTime = transferTime;
-    setTransferTimeIsSet(true);
-  }
-
-  public void unsetTransferTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TRANSFERTIME_ISSET_ID);
-  }
-
-  /** Returns true if field transferTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetTransferTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __TRANSFERTIME_ISSET_ID);
-  }
-
-  public void setTransferTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TRANSFERTIME_ISSET_ID, value);
-  }
-
-  public long getCreatedTime() {
-    return this.createdTime;
-  }
-
-  public void setCreatedTime(long createdTime) {
-    this.createdTime = createdTime;
-    setCreatedTimeIsSet(true);
-  }
-
-  public void unsetCreatedTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
-  }
-
-  /** Returns true if field createdTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetCreatedTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
-  }
-
-  public void setCreatedTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATEDTIME_ISSET_ID, value);
-  }
-
-  public long getLastModifiedType() {
-    return this.lastModifiedType;
-  }
-
-  public void setLastModifiedType(long lastModifiedType) {
-    this.lastModifiedType = lastModifiedType;
-    setLastModifiedTypeIsSet(true);
-  }
-
-  public void unsetLastModifiedType() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID);
-  }
-
-  /** Returns true if field lastModifiedType is set (has been assigned a value) and false otherwise */
-  public boolean isSetLastModifiedType() {
-    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID);
-  }
-
-  public void setLastModifiedTypeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTYPE_ISSET_ID, value);
-  }
-
-  public int getCallbackEmailsSize() {
-    return (this.callbackEmails == null) ? 0 : this.callbackEmails.size();
-  }
-
-  public java.util.Iterator<String> getCallbackEmailsIterator() {
-    return (this.callbackEmails == null) ? null : this.callbackEmails.iterator();
-  }
-
-  public void addToCallbackEmails(String elem) {
-    if (this.callbackEmails == null) {
-      this.callbackEmails = new ArrayList<String>();
-    }
-    this.callbackEmails.add(elem);
-  }
-
-  public List<String> getCallbackEmails() {
-    return this.callbackEmails;
-  }
-
-  public void setCallbackEmails(List<String> callbackEmails) {
-    this.callbackEmails = callbackEmails;
-  }
-
-  public void unsetCallbackEmails() {
-    this.callbackEmails = null;
-  }
-
-  /** Returns true if field callbackEmails is set (has been assigned a value) and false otherwise */
-  public boolean isSetCallbackEmails() {
-    return this.callbackEmails != null;
-  }
-
-  public void setCallbackEmailsIsSet(boolean value) {
-    if (!value) {
-      this.callbackEmails = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case TRANSFER_ID:
-      if (value == null) {
-        unsetTransferId();
-      } else {
-        setTransferId((String)value);
-      }
-      break;
-
-    case GATEWAY_ID:
-      if (value == null) {
-        unsetGatewayId();
-      } else {
-        setGatewayId((String)value);
-      }
-      break;
-
-    case USERNAME:
-      if (value == null) {
-        unsetUsername();
-      } else {
-        setUsername((String)value);
-      }
-      break;
-
-    case SRC_HOSTNAME:
-      if (value == null) {
-        unsetSrcHostname();
-      } else {
-        setSrcHostname((String)value);
-      }
-      break;
-
-    case SRC_LOGIN_NAME:
-      if (value == null) {
-        unsetSrcLoginName();
-      } else {
-        setSrcLoginName((String)value);
-      }
-      break;
-
-    case SRC_PORT:
-      if (value == null) {
-        unsetSrcPort();
-      } else {
-        setSrcPort((Long)value);
-      }
-      break;
-
-    case SRC_PROTOCOL:
-      if (value == null) {
-        unsetSrcProtocol();
-      } else {
-        setSrcProtocol((StorageResourceProtocol)value);
-      }
-      break;
-
-    case SRC_FILE_PATH:
-      if (value == null) {
-        unsetSrcFilePath();
-      } else {
-        setSrcFilePath((String)value);
-      }
-      break;
-
-    case SRC_HOST_CRED_TOKEN:
-      if (value == null) {
-        unsetSrcHostCredToken();
-      } else {
-        setSrcHostCredToken((String)value);
-      }
-      break;
-
-    case DEST_HOSTNAME:
-      if (value == null) {
-        unsetDestHostname();
-      } else {
-        setDestHostname((String)value);
-      }
-      break;
-
-    case DEST_LOGIN_NAME:
-      if (value == null) {
-        unsetDestLoginName();
-      } else {
-        setDestLoginName((String)value);
-      }
-      break;
-
-    case DEST_PORT:
-      if (value == null) {
-        unsetDestPort();
-      } else {
-        setDestPort((Long)value);
-      }
-      break;
-
-    case DEST_PROTOCOL:
-      if (value == null) {
-        unsetDestProtocol();
-      } else {
-        setDestProtocol((StorageResourceProtocol)value);
-      }
-      break;
-
-    case DEST_FILE_PATH:
-      if (value == null) {
-        unsetDestFilePath();
-      } else {
-        setDestFilePath((String)value);
-      }
-      break;
-
-    case DEST_HOST_CRED_TOKEN:
-      if (value == null) {
-        unsetDestHostCredToken();
-      } else {
-        setDestHostCredToken((String)value);
-      }
-      break;
-
-    case FILE_TRANSFER_MODE:
-      if (value == null) {
-        unsetFileTransferMode();
-      } else {
-        setFileTransferMode((FileTransferMode)value);
-      }
-      break;
-
-    case TRANSFER_STATUS:
-      if (value == null) {
-        unsetTransferStatus();
-      } else {
-        setTransferStatus((FileTransferStatus)value);
-      }
-      break;
-
-    case FILE_SIZE:
-      if (value == null) {
-        unsetFileSize();
-      } else {
-        setFileSize((Long)value);
-      }
-      break;
-
-    case TRANSFER_TIME:
-      if (value == null) {
-        unsetTransferTime();
-      } else {
-        setTransferTime((Long)value);
-      }
-      break;
-
-    case CREATED_TIME:
-      if (value == null) {
-        unsetCreatedTime();
-      } else {
-        setCreatedTime((Long)value);
-      }
-      break;
-
-    case LAST_MODIFIED_TYPE:
-      if (value == null) {
-        unsetLastModifiedType();
-      } else {
-        setLastModifiedType((Long)value);
-      }
-      break;
-
-    case CALLBACK_EMAILS:
-      if (value == null) {
-        unsetCallbackEmails();
-      } else {
-        setCallbackEmails((List<String>)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case TRANSFER_ID:
-      return getTransferId();
-
-    case GATEWAY_ID:
-      return getGatewayId();
-
-    case USERNAME:
-      return getUsername();
-
-    case SRC_HOSTNAME:
-      return getSrcHostname();
-
-    case SRC_LOGIN_NAME:
-      return getSrcLoginName();
-
-    case SRC_PORT:
-      return getSrcPort();
-
-    case SRC_PROTOCOL:
-      return getSrcProtocol();
-
-    case SRC_FILE_PATH:
-      return getSrcFilePath();
-
-    case SRC_HOST_CRED_TOKEN:
-      return getSrcHostCredToken();
-
-    case DEST_HOSTNAME:
-      return getDestHostname();
-
-    case DEST_LOGIN_NAME:
-      return getDestLoginName();
-
-    case DEST_PORT:
-      return getDestPort();
-
-    case DEST_PROTOCOL:
-      return getDestProtocol();
-
-    case DEST_FILE_PATH:
-      return getDestFilePath();
-
-    case DEST_HOST_CRED_TOKEN:
-      return getDestHostCredToken();
-
-    case FILE_TRANSFER_MODE:
-      return getFileTransferMode();
-
-    case TRANSFER_STATUS:
-      return getTransferStatus();
-
-    case FILE_SIZE:
-      return getFileSize();
-
-    case TRANSFER_TIME:
-      return getTransferTime();
-
-    case CREATED_TIME:
-      return getCreatedTime();
-
-    case LAST_MODIFIED_TYPE:
-      return getLastModifiedType();
-
-    case CALLBACK_EMAILS:
-      return getCallbackEmails();
-
-    }
-    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 GATEWAY_ID:
-      return isSetGatewayId();
-    case USERNAME:
-      return isSetUsername();
-    case SRC_HOSTNAME:
-      return isSetSrcHostname();
-    case SRC_LOGIN_NAME:
-      return isSetSrcLoginName();
-    case SRC_PORT:
-      return isSetSrcPort();
-    case SRC_PROTOCOL:
-      return isSetSrcProtocol();
-    case SRC_FILE_PATH:
-      return isSetSrcFilePath();
-    case SRC_HOST_CRED_TOKEN:
-      return isSetSrcHostCredToken();
-    case DEST_HOSTNAME:
-      return isSetDestHostname();
-    case DEST_LOGIN_NAME:
-      return isSetDestLoginName();
-    case DEST_PORT:
-      return isSetDestPort();
-    case DEST_PROTOCOL:
-      return isSetDestProtocol();
-    case DEST_FILE_PATH:
-      return isSetDestFilePath();
-    case DEST_HOST_CRED_TOKEN:
-      return isSetDestHostCredToken();
-    case FILE_TRANSFER_MODE:
-      return isSetFileTransferMode();
-    case TRANSFER_STATUS:
-      return isSetTransferStatus();
-    case FILE_SIZE:
-      return isSetFileSize();
-    case TRANSFER_TIME:
-      return isSetTransferTime();
-    case CREATED_TIME:
-      return isSetCreatedTime();
-    case LAST_MODIFIED_TYPE:
-      return isSetLastModifiedType();
-    case CALLBACK_EMAILS:
-      return isSetCallbackEmails();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof FileTransferRequestModel)
-      return this.equals((FileTransferRequestModel)that);
-    return false;
-  }
-
-  public boolean equals(FileTransferRequestModel 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_gatewayId = true && this.isSetGatewayId();
-    boolean that_present_gatewayId = true && that.isSetGatewayId();
-    if (this_present_gatewayId || that_present_gatewayId) {
-      if (!(this_present_gatewayId && that_present_gatewayId))
-        return false;
-      if (!this.gatewayId.equals(that.gatewayId))
-        return false;
-    }
-
-    boolean this_present_username = true && this.isSetUsername();
-    boolean that_present_username = true && that.isSetUsername();
-    if (this_present_username || that_present_username) {
-      if (!(this_present_username && that_present_username))
-        return false;
-      if (!this.username.equals(that.username))
-        return false;
-    }
-
-    boolean this_present_srcHostname = true && this.isSetSrcHostname();
-    boolean that_present_srcHostname = true && that.isSetSrcHostname();
-    if (this_present_srcHostname || that_present_srcHostname) {
-      if (!(this_present_srcHostname && that_present_srcHostname))
-        return false;
-      if (!this.srcHostname.equals(that.srcHostname))
-        return false;
-    }
-
-    boolean this_present_srcLoginName = true && this.isSetSrcLoginName();
-    boolean that_present_srcLoginName = true && that.isSetSrcLoginName();
-    if (this_present_srcLoginName || that_present_srcLoginName) {
-      if (!(this_present_srcLoginName && that_present_srcLoginName))
-        return false;
-      if (!this.srcLoginName.equals(that.srcLoginName))
-        return false;
-    }
-
-    boolean this_present_srcPort = true && this.isSetSrcPort();
-    boolean that_present_srcPort = true && that.isSetSrcPort();
-    if (this_present_srcPort || that_present_srcPort) {
-      if (!(this_present_srcPort && that_present_srcPort))
-        return false;
-      if (this.srcPort != that.srcPort)
-        return false;
-    }
-
-    boolean this_present_srcProtocol = true && this.isSetSrcProtocol();
-    boolean that_present_srcProtocol = true && that.isSetSrcProtocol();
-    if (this_present_srcProtocol || that_present_srcProtocol) {
-      if (!(this_present_srcProtocol && that_present_srcProtocol))
-        return false;
-      if (!this.srcProtocol.equals(that.srcProtocol))
-        return false;
-    }
-
-    boolean this_present_srcFilePath = true && this.isSetSrcFilePath();
-    boolean that_present_srcFilePath = true && that.isSetSrcFilePath();
-    if (this_present_srcFilePath || that_present_srcFilePath) {
-      if (!(this_present_srcFilePath && that_present_srcFilePath))
-        return false;
-      if (!this.srcFilePath.equals(that.srcFilePath))
-        return false;
-    }
-
-    boolean this_present_srcHostCredToken = true && this.isSetSrcHostCredToken();
-    boolean that_present_srcHostCredToken = true && that.isSetSrcHostCredToken();
-    if (this_present_srcHostCredToken || that_present_srcHostCredToken) {
-      if (!(this_present_srcHostCredToken && that_present_srcHostCredToken))
-        return false;
-      if (!this.srcHostCredToken.equals(that.srcHostCredToken))
-        return false;
-    }
-
-    boolean this_present_destHostname = true && this.isSetDestHostname();
-    boolean that_present_destHostname = true && that.isSetDestHostname();
-    if (this_present_destHostname || that_present_destHostname) {
-      if (!(this_present_destHostname && that_present_destHostname))
-        return false;
-      if (!this.destHostname.equals(that.destHostname))
-        return false;
-    }
-
-    boolean this_present_destLoginName = true && this.isSetDestLoginName();
-    boolean that_present_destLoginName = true && that.isSetDestLoginName();
-    if (this_present_destLoginName || that_present_destLoginName) {
-      if (!(this_present_destLoginName && that_present_destLoginName))
-        return false;
-      if (!this.destLoginName.equals(that.destLoginName))
-        return false;
-    }
-
-    boolean this_present_destPort = true && this.isSetDestPort();
-    boolean that_present_destPort = true && that.isSetDestPort();
-    if (this_present_destPort || that_present_destPort) {
-      if (!(this_present_destPort && that_present_destPort))
-        return false;
-      if (this.destPort != that.destPort)
-        return false;
-    }
-
-    boolean this_present_destProtocol = true && this.isSetDestProtocol();
-    boolean that_present_destProtocol = true && that.isSetDestProtocol();
-    if (this_present_destProtocol || that_present_destProtocol) {
-      if (!(this_present_destProtocol && that_present_destProtocol))
-        return false;
-      if (!this.destProtocol.equals(that.destProtocol))
-        return false;
-    }
-
-    boolean this_present_destFilePath = true && this.isSetDestFilePath();
-    boolean that_present_destFilePath = true && that.isSetDestFilePath();
-    if (this_present_destFilePath || that_present_destFilePath) {
-      if (!(this_present_destFilePath && that_present_destFilePath))
-        return false;
-      if (!this.destFilePath.equals(that.destFilePath))
-        return false;
-    }
-
-    boolean this_present_destHostCredToken = true && this.isSetDestHostCredToken();
-    boolean that_present_destHostCredToken = true && that.isSetDestHostCredToken();
-    if (this_present_destHostCredToken || that_present_destHostCredToken) {
-      if (!(this_present_destHostCredToken && that_present_destHostCredToken))
-        return false;
-      if (!this.destHostCredToken.equals(that.destHostCredToken))
-        return false;
-    }
-
-    boolean this_present_fileTransferMode = true && this.isSetFileTransferMode();
-    boolean that_present_fileTransferMode = true && that.isSetFileTransferMode();
-    if (this_present_fileTransferMode || that_present_fileTransferMode) {
-      if (!(this_present_fileTransferMode && that_present_fileTransferMode))
-        return false;
-      if (!this.fileTransferMode.equals(that.fileTransferMode))
-        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;
-    }
-
-    boolean this_present_fileSize = true && this.isSetFileSize();
-    boolean that_present_fileSize = true && that.isSetFileSize();
-    if (this_present_fileSize || that_present_fileSize) {
-      if (!(this_present_fileSize && that_present_fileSize))
-        return false;
-      if (this.fileSize != that.fileSize)
-        return false;
-    }
-
-    boolean this_present_transferTime = true && this.isSetTransferTime();
-    boolean that_present_transferTime = true && that.isSetTransferTime();
-    if (this_present_transferTime || that_present_transferTime) {
-      if (!(this_present_transferTime && that_present_transferTime))
-        return false;
-      if (this.transferTime != that.transferTime)
-        return false;
-    }
-
-    boolean this_present_createdTime = true && this.isSetCreatedTime();
-    boolean that_present_createdTime = true && that.isSetCreatedTime();
-    if (this_present_createdTime || that_present_createdTime) {
-      if (!(this_present_createdTime && that_present_createdTime))
-        return false;
-      if (this.createdTime != that.createdTime)
-        return false;
-    }
-
-    boolean this_present_lastModifiedType = true && this.isSetLastModifiedType();
-    boolean that_present_lastModifiedType = true && that.isSetLastModifiedType();
-    if (this_present_lastModifiedType || that_present_lastModifiedType) {
-      if (!(this_present_lastModifiedType && that_present_lastModifiedType))
-        return false;
-      if (this.lastModifiedType != that.lastModifiedType)
-        return false;
-    }
-
-    boolean this_present_callbackEmails = true && this.isSetCallbackEmails();
-    boolean that_present_callbackEmails = true && that.isSetCallbackEmails();
-    if (this_present_callbackEmails || that_present_callbackEmails) {
-      if (!(this_present_callbackEmails && that_present_callbackEmails))
-        return false;
-      if (!this.callbackEmails.equals(that.callbackEmails))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    List<Object> list = new ArrayList<Object>();
-
-    boolean present_transferId = true && (isSetTransferId());
-    list.add(present_transferId);
-    if (present_transferId)
-      list.add(transferId);
-
-    boolean present_gatewayId = true && (isSetGatewayId());
-    list.add(present_gatewayId);
-    if (present_gatewayId)
-      list.add(gatewayId);
-
-    boolean present_username = true && (isSetUsername());
-    list.add(present_username);
-    if (present_username)
-      list.add(username);
-
-    boolean present_srcHostname = true && (isSetSrcHostname());
-    list.add(present_srcHostname);
-    if (present_srcHostname)
-      list.add(srcHostname);
-
-    boolean present_srcLoginName = true && (isSetSrcLoginName());
-    list.add(present_srcLoginName);
-    if (present_srcLoginName)
-      list.add(srcLoginName);
-
-    boolean present_srcPort = true && (isSetSrcPort());
-    list.add(present_srcPort);
-    if (present_srcPort)
-      list.add(srcPort);
-
-    boolean present_srcProtocol = true && (isSetSrcProtocol());
-    list.add(present_srcProtocol);
-    if (present_srcProtocol)
-      list.add(srcProtocol.getValue());
-
-    boolean present_srcFilePath = true && (isSetSrcFilePath());
-    list.add(present_srcFilePath);
-    if (present_srcFilePath)
-      list.add(srcFilePath);
-
-    boolean present_srcHostCredToken = true && (isSetSrcHostCredToken());
-    list.add(present_srcHostCredToken);
-    if (present_srcHostCredToken)
-      list.add(srcHostCredToken);
-
-    boolean present_destHostname = true && (isSetDestHostname());
-    list.add(present_destHostname);
-    if (present_destHostname)
-      list.add(destHostname);
-
-    boolean present_destLoginName = true && (isSetDestLoginName());
-    list.add(present_destLoginName);
-    if (present_destLoginName)
-      list.add(destLoginName);
-
-    boolean present_destPort = true && (isSetDestPort());
-    list.add(present_destPort);
-    if (present_destPort)
-      list.add(destPort);
-
-    boolean present_destProtocol = true && (isSetDestProtocol());
-    list.add(present_destProtocol);
-    if (present_destProtocol)
-      list.add(destProtocol.getValue());
-
-    boolean present_destFilePath = true && (isSetDestFilePath());
-    list.add(present_destFilePath);
-    if (present_destFilePath)
-      list.add(destFilePath);
-
-    boolean present_destHostCredToken = true && (isSetDestHostCredToken());
-    list.add(present_destHostCredToken);
-    if (present_destHostCredToken)
-      list.add(destHostCredToken);
-
-    boolean present_fileTransferMode = true && (isSetFileTransferMode());
-    list.add(present_fileTransferMode);
-    if (present_fileTransferMode)
-      list.add(fileTransferMode.getValue());
-
-    boolean present_transferStatus = true && (isSetTransferStatus());
-    list.add(present_transferStatus);
-    if (present_transferStatus)
-      list.add(transferStatus.getValue());
-
-    boolean present_fileSize = true && (isSetFileSize());
-    list.add(present_fileSize);
-    if (present_fileSize)
-      list.add(fileSize);
-
-    boolean present_transferTime = true && (isSetTransferTime());
-    list.add(present_transferTime);
-    if (present_transferTime)
-      list.add(transferTime);
-
-    boolean present_createdTime = true && (isSetCreatedTime());
-    list.add(present_createdTime);
-    if (present_createdTime)
-      list.add(createdTime);
-
-    boolean present_lastModifiedType = true && (isSetLastModifiedType());
-    list.add(present_lastModifiedType);
-    if (present_lastModifiedType)
-      list.add(lastModifiedType);
-
-    boolean present_callbackEmails = true && (isSetCallbackEmails());
-    list.add(present_callbackEmails);
-    if (present_callbackEmails)
-      list.add(callbackEmails);
-
-    return list.hashCode();
-  }
-
-  @Override
-  public int compareTo(FileTransferRequestModel 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(isSetGatewayId()).compareTo(other.isSetGatewayId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetGatewayId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetUsername()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSrcHostname()).compareTo(other.isSetSrcHostname());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSrcHostname()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcHostname, other.srcHostname);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSrcLoginName()).compareTo(other.isSetSrcLoginName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSrcLoginName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcLoginName, other.srcLoginName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSrcPort()).compareTo(other.isSetSrcPort());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSrcPort()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcPort, other.srcPort);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSrcProtocol()).compareTo(other.isSetSrcProtocol());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSrcProtocol()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcProtocol, other.srcProtocol);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSrcFilePath()).compareTo(other.isSetSrcFilePath());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSrcFilePath()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcFilePath, other.srcFilePath);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSrcHostCredToken()).compareTo(other.isSetSrcHostCredToken());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSrcHostCredToken()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.srcHostCredToken, other.srcHostCredToken);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDestHostname()).compareTo(other.isSetDestHostname());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDestHostname()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destHostname, other.destHostname);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDestLoginName()).compareTo(other.isSetDestLoginName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDestLoginName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destLoginName, other.destLoginName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDestPort()).compareTo(other.isSetDestPort());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDestPort()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destPort, other.destPort);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDestProtocol()).compareTo(other.isSetDestProtocol());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDestProtocol()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destProtocol, other.destProtocol);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDestFilePath()).compareTo(other.isSetDestFilePath());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDestFilePath()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destFilePath, other.destFilePath);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDestHostCredToken()).compareTo(other.isSetDestHostCredToken());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDestHostCredToken()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destHostCredToken, other.destHostCredToken);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetFileTransferMode()).compareTo(other.isSetFileTransferMode());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFileTransferMode()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileTransferMode, other.fileTransferMode);
-      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;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetFileSize()).compareTo(other.isSetFileSize());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFileSize()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileSize, other.fileSize);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetTransferTime()).compareTo(other.isSetTransferTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetTransferTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transferTime, other.transferTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetCreatedTime()).compareTo(other.isSetCreatedTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCreatedTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.createdTime, other.createdTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetLastModifiedType()).compareTo(other.isSetLastModifiedType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetLastModifiedType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedType, other.lastModifiedType);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetCallbackEmails()).compareTo(other.isSetCallbackEmails());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCallbackEmails()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.callbackEmails, other.callbackEmails);
-      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("FileTransferRequestModel(");
-    boolean first = true;
-
-    if (isSetTransferId()) {
-      sb.append("transferId:");
-      if (this.transferId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.transferId);
-      }
-      first = false;
-    }
-    if (isSetGatewayId()) {
-      if (!first) sb.append(", ");
-      sb.append("gatewayId:");
-      if (this.gatewayId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.gatewayId);
-      }
-      first = false;
-    }
-    if (isSetUsername()) {
-      if (!first) sb.append(", ");
-      sb.append("username:");
-      if (this.username == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.username);
-      }
-      first = false;
-    }
-    if (isSetSrcHostname()) {
-      if (!first) sb.append(", ");
-      sb.append("srcHostname:");
-      if (this.srcHostname == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.srcHostname);
-      }
-      first = false;
-    }
-    if (isSetSrcLoginName()) {
-      if (!first) sb.append(", ");
-      sb.append("srcLoginName:");
-      if (this.srcLoginName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.srcLoginName);
-      }
-      first = false;
-    }
-    if (isSetSrcPort()) {
-      if (!first) sb.append(", ");
-      sb.append("srcPort:");
-      sb.append(this.srcPort);
-      first = false;
-    }
-    if (isSetSrcProtocol()) {
-      if (!first) sb.append(", ");
-      sb.append("srcProtocol:");
-      if (this.srcProtocol == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.srcProtocol);
-      }
-      first = false;
-    }
-    if (isSetSrcFilePath()) {
-      if (!first) sb.append(", ");
-      sb.append("srcFilePath:");
-      if (this.srcFilePath == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.srcFilePath);
-      }
-      first = false;
-    }
-    if (isSetSrcHostCredToken()) {
-      if (!first) sb.append(", ");
-      sb.append("srcHostCredToken:");
-      if (this.srcHostCredToken == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.srcHostCredToken);
-      }
-      first = false;
-    }
-    if (isSetDestHostname()) {
-      if (!first) sb.append(", ");
-      sb.append("destHostname:");
-      if (this.destHostname == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.destHostname);
-      }
-      first = false;
-    }
-    if (isSetDestLoginName()) {
-      if (!first) sb.append(", ");
-      sb.append("destLoginName:");
-      if (this.destLoginName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.destLoginName);
-      }
-      first = false;
-    }
-    if (isSetDestPort()) {
-      if (!first) sb.append(", ");
-      sb.append("destPort:");
-      sb.append(this.destPort);
-      first = false;
-    }
-    if (isSetDestProtocol()) {
-      if (!first) sb.append(", ");
-      sb.append("destProtocol:");
-      if (this.destProtocol == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.destProtocol);
-      }
-      first = false;
-    }
-    if (isSetDestFilePath()) {
-      if (!first) sb.append(", ");
-      sb.append("destFilePath:");
-      if (this.destFilePath == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.destFilePath);
-      }
-      first = false;
-    }
-    if (isSetDestHostCredToken()) {
-      if (!first) sb.append(", ");
-      sb.append("destHostCredToken:");
-      if (this.destHostCredToken == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.destHostCredToken);
-      }
-      first = false;
-    }
-    if (isSetFileTransferMode()) {
-      if (!first) sb.append(", ");
-      sb.append("fileTransferMode:");
-      if (this.fileTransferMode == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.fileTransferMode);
-      }
-      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;
-    }
-    if (isSetFileSize()) {
-      if (!first) sb.append(", ");
-      sb.append("fileSize:");
-      sb.append(this.fileSize);
-      first = false;
-    }
-    if (isSetTransferTime()) {
-      if (!first) sb.append(", ");
-      sb.append("transferTime:");
-      sb.append(this.transferTime);
-      first = false;
-    }
-    if (isSetCreatedTime()) {
-      if (!first) sb.append(", ");
-      sb.append("createdTime:");
-      sb.append(this.createdTime);
-      first = false;
-    }
-    if (isSetLastModifiedType()) {
-      if (!first) sb.append(", ");
-      sb.append("lastModifiedType:");
-      sb.append(this.lastModifiedType);
-      first = false;
-    }
-    if (isSetCallbackEmails()) {
-      if (!first) sb.append(", ");
-      sb.append("callbackEmails:");
-      if (this.callbackEmails == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.callbackEmails);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // 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 FileTransferRequestModelStandardSchemeFactory implements SchemeFactory {
-    public FileTransferRequestModelStandardScheme getScheme() {
-      return new FileTransferRequestModelStandardScheme();
-    }
-  }
-
-  private static class FileTransferRequestModelStandardScheme extends StandardScheme<FileTransferRequestModel> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, FileTransferRequestModel 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: // GATEWAY_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.gatewayId = iprot.readString();
-              struct.setGatewayIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // USERNAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.username = iprot.readString();
-              struct.setUsernameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // SRC_HOSTNAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.srcHostname = iprot.readString();
-              struct.setSrcHostnameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // SRC_LOGIN_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.srcLoginName = iprot.readString();
-              struct.setSrcLoginNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // SRC_PORT
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.srcPort = iprot.readI64();
-              struct.setSrcPortIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 7: // SRC_PROTOCOL
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.srcProtocol = org.apache.airavata.model.file.transfer.StorageResourceProtocol.findByValue(iprot.readI32());
-              struct.setSrcProtocolIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // SRC_FILE_PATH
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.srcFilePath = iprot.readString();
-              struct.setSrcFilePathIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 9: // SRC_HOST_CRED_TOKEN
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.srcHostCredToken = iprot.readString();
-              struct.setSrcHostCredTokenIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 10: // DEST_HOSTNAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.destHostname = iprot.readString();
-              struct.setDestHostnameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 11: // DEST_LOGIN_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.destLoginName = iprot.readString();
-              struct.setDestLoginNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 12: // DEST_PORT
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.destPort = iprot.readI64();
-              struct.setDestPortIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 13: // DEST_PROTOCOL
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.destProtocol = org.apache.airavata.model.file.transfer.StorageResourceProtocol.findByValue(iprot.readI32());
-              struct.setDestProtocolIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 14: // DEST_FILE_PATH
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.destFilePath = iprot.readString();
-              struct.setDestFilePathIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 15: // DEST_HOST_CRED_TOKEN
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.destHostCredToken = iprot.readString();
-              struct.setDestHostCredTokenIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 16: // FILE_TRANSFER_MODE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.fileTransferMode = org.apache.airavata.model.file.transfer.FileTransferMode.findByValue(iprot.readI32());
-              struct.setFileTransferModeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 17: // TRANSFER_STATUS
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.transferStatus = org.apache.airavata.model.file.transfer.FileTransferStatus.findByValue(iprot.readI32());
-              struct.setTransferStatusIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 18: // FILE_SIZE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.fileSize = iprot.readI64();
-              struct.setFileSizeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 19: // TRANSFER_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.transferTime = iprot.readI64();
-              struct.setTransferTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 20: // CREATED_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.createdTime = iprot.readI64();
-              struct.setCreatedTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 21: // LAST_MODIFIED_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.lastModifiedType = iprot.readI64();
-              struct.setLastModifiedTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 22: // CALLBACK_EMAILS
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
-                struct.callbackEmails = new ArrayList<String>(_list0.size);
-                String _elem1;
-                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
-                {
-                  _elem1 = iprot.readString();
-                  struct.callbackEmails.add(_elem1);
-                }
-                iprot.readListEnd();
-              }
-              struct.setCallbackEmailsIsSet(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, FileTransferRequestModel struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.transferId != null) {
-        if (struct.isSetTransferId()) {
-          oprot.writeFieldBegin(TRANSFER_ID_FIELD_DESC);
-          oprot.writeString(struct.transferId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.gatewayId != null) {
-        if (struct.isSetGatewayId()) {
-          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
-          oprot.writeString(struct.gatewayId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.username != null) {
-        if (struct.isSetUsername()) {
-          oprot.writeFieldBegin(USERNAME_FIELD_DESC);
-          oprot.writeString(struct.username);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.srcHostname != null) {
-        if (struct.isSetSrcHostname()) {
-          oprot.writeFieldBegin(SRC_HOSTNAME_FIELD_DESC);
-          oprot.writeString(struct.srcHostname);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.srcLoginName != null) {
-        if (struct.isSetSrcLoginName()) {
-          oprot.writeFieldBegin(SRC_LOGIN_NAME_FIELD_DESC);
-          oprot.writeString(struct.srcLoginName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetSrcPort()) {
-        oprot.writeFieldBegin(SRC_PORT_FIELD_DESC);
-        oprot.writeI64(struct.srcPort);
-        oprot.writeFieldEnd();
-      }
-      if (struct.srcProtocol != null) {
-        if (struct.isSetSrcProtocol()) {
-          oprot.writeFieldBegin(SRC_PROTOCOL_FIELD_DESC);
-          oprot.writeI32(struct.srcProtocol.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.srcFilePath != null) {
-        if (struct.isSetSrcFilePath()) {
-          oprot.writeFieldBegin(SRC_FILE_PATH_FIELD_DESC);
-          oprot.writeString(struct.srcFilePath);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.srcHostCredToken != null) {
-        if (struct.isSetSrcHostCredToken()) {
-          oprot.writeFieldBegin(SRC_HOST_CRED_TOKEN_FIELD_DESC);
-          oprot.writeString(struct.srcHostCredToken);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.destHostname != null) {
-        if (struct.isSetDestHostname()) {
-          oprot.writeFieldBegin(DEST_HOSTNAME_FIELD_DESC);
-          oprot.writeString(struct.destHostname);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.destLoginName != null) {
-        if (struct.isSetDestLoginName()) {
-          oprot.writeFieldBegin(DEST_LOGIN_NAME_FIELD_DESC);
-          oprot.writeString(struct.destLoginName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetDestPort()) {
-        oprot.writeFieldBegin(DEST_PORT_FIELD_DESC);
-        oprot.writeI64(struct.destPort);
-        oprot.writeFieldEnd();
-      }
-      if (struct.destProtocol != null) {
-        if (struct.isSetDestProtocol()) {
-          oprot.writeFieldBegin(DEST_PROTOCOL_FIELD_DESC);
-          oprot.writeI32(struct.destProtocol.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.destFilePath != null) {
-        if (struct.isSetDestFilePath()) {
-          oprot.writeFieldBegin(DEST_FILE_PATH_FIELD_DESC);
-          oprot.writeString(struct.destFilePath);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.destHostCredToken != null) {
-        if (struct.isSetDestHostCredToken()) {
-          oprot.writeFieldBegin(DEST_HOST_CRED_TOKEN_FIELD_DESC);
-          oprot.writeString(struct.destHostCredToken);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.fileTransferMode != null) {
-        if (struct.isSetFileTransferMode()) {
-          oprot.writeFieldBegin(FILE_TRANSFER_MODE_FIELD_DESC);
-          oprot.writeI32(struct.fileTransferMode.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.transferStatus != null) {
-        if (struct.isSetTransferStatus()) {
-          oprot.writeFieldBegin(TRANSFER_STATUS_FIELD_DESC);
-          oprot.writeI32(struct.transferStatus.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetFileSize()) {
-        oprot.writeFieldBegin(FILE_SIZE_FIELD_DESC);
-        oprot.writeI64(struct.fileSize);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetTransferTime()) {
-        oprot.writeFieldBegin(TRANSFER_TIME_FIELD_DESC);
-        oprot.writeI64(struct.transferTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetCreatedTime()) {
-        oprot.writeFieldBegin(CREATED_TIME_FIELD_DESC);
-        oprot.writeI64(struct.createdTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetLastModifiedType()) {
-        oprot.writeFieldBegin(LAST_MODIFIED_TYPE_FIELD_DESC);
-        oprot.writeI64(struct.lastModifiedType);
-        oprot.writeFieldEnd();
-      }
-      if (struct.callbackEmails != null) {
-        if (struct.isSetCallbackEmails()) {
-          oprot.writeFieldBegin(CALLBACK_EMAILS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.callbackEmails.size()));
-            for (String _iter3 : struct.callbackEmails)
-            {
-              oprot.writeString(_iter3);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class FileTransferRequestModelTupleSchemeFactory implements SchemeFactory {
-    public FileTransferRequestModelTupleScheme getScheme() {
-      return new FileTransferRequestModelTupleScheme();
-    }
-  }
-
-  private static class FileTransferRequestModelTupleScheme extends TupleScheme<FileTransferRequestModel> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, FileTransferRequestModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      BitSet optionals = new BitSet();
-      if (struct.isSetTransferId()) {
-        optionals.set(0);
-      }
-      if (struct.isSetGatewayId()) {
-        optionals.set(1);
-      }
-      if (struct.isSetUsername()) {
-        optionals.set(2);
-      }
-      if (struct.isSetSrcHostname()) {
-        optionals.set(3);
-      }
-      if (struct.isSetSrcLoginName()) {
-        optionals.set(4);
-      }
-      if (struct.isSetSrcPort()) {
-        optionals.set(5);
-      }
-      if (struct.isSetSrcProtocol()) {
-        optionals.set(6);
-      }
-      if (struct.isSetSrcFilePath()) {
-        optionals.set(7);
-      }
-      if (struct.isSetSrcHostCredToken()) {
-        optionals.set(8);
-      }
-      if (struct.isSetDestHostname()) {
-        optionals.set(9);
-      }
-      if (struct.isSetDestLoginNa

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
new file mode 100644
index 0000000..e7dcc59
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@ -0,0 +1,854 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.gatewayprofile;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Gateway Resource Profile
+ * 
+ * gatewayID:
+ *  Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+ * 
+ * credentialStoreToken:
+ *  Gateway's defualt credential store token.
+ * 
+ * computeResourcePreferences:
+ *  List of resource preferences for each of the registered compute resources.
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayResourceProfile, GatewayResourceProfile._Fields>, java.io.Serializable, Cloneable, Comparable<GatewayResourceProfile> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GatewayResourceProfile");
+
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayID", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("credentialStoreToken", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourcePreferences", org.apache.thrift.protocol.TType.LIST, (short)3);
+  private static final org.apache.thrift.protocol.TField STORAGE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("storagePreferences", org.apache.thrift.protocol.TType.LIST, (short)4);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new GatewayResourceProfileStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GatewayResourceProfileTupleSchemeFactory());
+  }
+
+  public String gatewayID; // required
+  public String credentialStoreToken; // optional
+  public List<ComputeResourcePreference> computeResourcePreferences; // optional
+  public List<StoragePreference> storagePreferences; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    GATEWAY_ID((short)1, "gatewayID"),
+    CREDENTIAL_STORE_TOKEN((short)2, "credentialStoreToken"),
+    COMPUTE_RESOURCE_PREFERENCES((short)3, "computeResourcePreferences"),
+    STORAGE_PREFERENCES((short)4, "storagePreferences");
+
+    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: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 2: // CREDENTIAL_STORE_TOKEN
+          return CREDENTIAL_STORE_TOKEN;
+        case 3: // COMPUTE_RESOURCE_PREFERENCES
+          return COMPUTE_RESOURCE_PREFERENCES;
+        case 4: // STORAGE_PREFERENCES
+          return STORAGE_PREFERENCES;
+        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 _Fields optionals[] = {_Fields.CREDENTIAL_STORE_TOKEN,_Fields.COMPUTE_RESOURCE_PREFERENCES,_Fields.STORAGE_PREFERENCES};
+  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.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.CREDENTIAL_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("credentialStoreToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.COMPUTE_RESOURCE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("computeResourcePreferences", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComputeResourcePreference.class))));
+    tmpMap.put(_Fields.STORAGE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("storagePreferences", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, StoragePreference.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GatewayResourceProfile.class, metaDataMap);
+  }
+
+  public GatewayResourceProfile() {
+  }
+
+  public GatewayResourceProfile(
+    String gatewayID)
+  {
+    this();
+    this.gatewayID = gatewayID;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public GatewayResourceProfile(GatewayResourceProfile other) {
+    if (other.isSetGatewayID()) {
+      this.gatewayID = other.gatewayID;
+    }
+    if (other.isSetCredentialStoreToken()) {
+      this.credentialStoreToken = other.credentialStoreToken;
+    }
+    if (other.isSetComputeResourcePreferences()) {
+      List<ComputeResourcePreference> __this__computeResourcePreferences = new ArrayList<ComputeResourcePreference>(other.computeResourcePreferences.size());
+      for (ComputeResourcePreference other_element : other.computeResourcePreferences) {
+        __this__computeResourcePreferences.add(new ComputeResourcePreference(other_element));
+      }
+      this.computeResourcePreferences = __this__computeResourcePreferences;
+    }
+    if (other.isSetStoragePreferences()) {
+      List<StoragePreference> __this__storagePreferences = new ArrayList<StoragePreference>(other.storagePreferences.size());
+      for (StoragePreference other_element : other.storagePreferences) {
+        __this__storagePreferences.add(new StoragePreference(other_element));
+      }
+      this.storagePreferences = __this__storagePreferences;
+    }
+  }
+
+  public GatewayResourceProfile deepCopy() {
+    return new GatewayResourceProfile(this);
+  }
+
+  @Override
+  public void clear() {
+    this.gatewayID = null;
+    this.credentialStoreToken = null;
+    this.computeResourcePreferences = null;
+    this.storagePreferences = null;
+  }
+
+  public String getGatewayID() {
+    return this.gatewayID;
+  }
+
+  public GatewayResourceProfile setGatewayID(String gatewayID) {
+    this.gatewayID = gatewayID;
+    return this;
+  }
+
+  public void unsetGatewayID() {
+    this.gatewayID = null;
+  }
+
+  /** Returns true if field gatewayID is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayID() {
+    return this.gatewayID != null;
+  }
+
+  public void setGatewayIDIsSet(boolean value) {
+    if (!value) {
+      this.gatewayID = null;
+    }
+  }
+
+  public String getCredentialStoreToken() {
+    return this.credentialStoreToken;
+  }
+
+  public GatewayResourceProfile setCredentialStoreToken(String credentialStoreToken) {
+    this.credentialStoreToken = credentialStoreToken;
+    return this;
+  }
+
+  public void unsetCredentialStoreToken() {
+    this.credentialStoreToken = null;
+  }
+
+  /** Returns true if field credentialStoreToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetCredentialStoreToken() {
+    return this.credentialStoreToken != null;
+  }
+
+  public void setCredentialStoreTokenIsSet(boolean value) {
+    if (!value) {
+      this.credentialStoreToken = null;
+    }
+  }
+
+  public int getComputeResourcePreferencesSize() {
+    return (this.computeResourcePreferences == null) ? 0 : this.computeResourcePreferences.size();
+  }
+
+  public java.util.Iterator<ComputeResourcePreference> getComputeResourcePreferencesIterator() {
+    return (this.computeResourcePreferences == null) ? null : this.computeResourcePreferences.iterator();
+  }
+
+  public void addToComputeResourcePreferences(ComputeResourcePreference elem) {
+    if (this.computeResourcePreferences == null) {
+      this.computeResourcePreferences = new ArrayList<ComputeResourcePreference>();
+    }
+    this.computeResourcePreferences.add(elem);
+  }
+
+  public List<ComputeResourcePreference> getComputeResourcePreferences() {
+    return this.computeResourcePreferences;
+  }
+
+  public GatewayResourceProfile setComputeResourcePreferences(List<ComputeResourcePreference> computeResourcePreferences) {
+    this.computeResourcePreferences = computeResourcePreferences;
+    return this;
+  }
+
+  public void unsetComputeResourcePreferences() {
+    this.computeResourcePreferences = null;
+  }
+
+  /** Returns true if field computeResourcePreferences is set (has been assigned a value) and false otherwise */
+  public boolean isSetComputeResourcePreferences() {
+    return this.computeResourcePreferences != null;
+  }
+
+  public void setComputeResourcePreferencesIsSet(boolean value) {
+    if (!value) {
+      this.computeResourcePreferences = null;
+    }
+  }
+
+  public int getStoragePreferencesSize() {
+    return (this.storagePreferences == null) ? 0 : this.storagePreferences.size();
+  }
+
+  public java.util.Iterator<StoragePreference> getStoragePreferencesIterator() {
+    return (this.storagePreferences == null) ? null : this.storagePreferences.iterator();
+  }
+
+  public void addToStoragePreferences(StoragePreference elem) {
+    if (this.storagePreferences == null) {
+      this.storagePreferences = new ArrayList<StoragePreference>();
+    }
+    this.storagePreferences.add(elem);
+  }
+
+  public List<StoragePreference> getStoragePreferences() {
+    return this.storagePreferences;
+  }
+
+  public GatewayResourceProfile setStoragePreferences(List<StoragePreference> storagePreferences) {
+    this.storagePreferences = storagePreferences;
+    return this;
+  }
+
+  public void unsetStoragePreferences() {
+    this.storagePreferences = null;
+  }
+
+  /** Returns true if field storagePreferences is set (has been assigned a value) and false otherwise */
+  public boolean isSetStoragePreferences() {
+    return this.storagePreferences != null;
+  }
+
+  public void setStoragePreferencesIsSet(boolean value) {
+    if (!value) {
+      this.storagePreferences = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayID();
+      } else {
+        setGatewayID((String)value);
+      }
+      break;
+
+    case CREDENTIAL_STORE_TOKEN:
+      if (value == null) {
+        unsetCredentialStoreToken();
+      } else {
+        setCredentialStoreToken((String)value);
+      }
+      break;
+
+    case COMPUTE_RESOURCE_PREFERENCES:
+      if (value == null) {
+        unsetComputeResourcePreferences();
+      } else {
+        setComputeResourcePreferences((List<ComputeResourcePreference>)value);
+      }
+      break;
+
+    case STORAGE_PREFERENCES:
+      if (value == null) {
+        unsetStoragePreferences();
+      } else {
+        setStoragePreferences((List<StoragePreference>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case GATEWAY_ID:
+      return getGatewayID();
+
+    case CREDENTIAL_STORE_TOKEN:
+      return getCredentialStoreToken();
+
+    case COMPUTE_RESOURCE_PREFERENCES:
+      return getComputeResourcePreferences();
+
+    case STORAGE_PREFERENCES:
+      return getStoragePreferences();
+
+    }
+    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 GATEWAY_ID:
+      return isSetGatewayID();
+    case CREDENTIAL_STORE_TOKEN:
+      return isSetCredentialStoreToken();
+    case COMPUTE_RESOURCE_PREFERENCES:
+      return isSetComputeResourcePreferences();
+    case STORAGE_PREFERENCES:
+      return isSetStoragePreferences();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof GatewayResourceProfile)
+      return this.equals((GatewayResourceProfile)that);
+    return false;
+  }
+
+  public boolean equals(GatewayResourceProfile that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_gatewayID = true && this.isSetGatewayID();
+    boolean that_present_gatewayID = true && that.isSetGatewayID();
+    if (this_present_gatewayID || that_present_gatewayID) {
+      if (!(this_present_gatewayID && that_present_gatewayID))
+        return false;
+      if (!this.gatewayID.equals(that.gatewayID))
+        return false;
+    }
+
+    boolean this_present_credentialStoreToken = true && this.isSetCredentialStoreToken();
+    boolean that_present_credentialStoreToken = true && that.isSetCredentialStoreToken();
+    if (this_present_credentialStoreToken || that_present_credentialStoreToken) {
+      if (!(this_present_credentialStoreToken && that_present_credentialStoreToken))
+        return false;
+      if (!this.credentialStoreToken.equals(that.credentialStoreToken))
+        return false;
+    }
+
+    boolean this_present_computeResourcePreferences = true && this.isSetComputeResourcePreferences();
+    boolean that_present_computeResourcePreferences = true && that.isSetComputeResourcePreferences();
+    if (this_present_computeResourcePreferences || that_present_computeResourcePreferences) {
+      if (!(this_present_computeResourcePreferences && that_present_computeResourcePreferences))
+        return false;
+      if (!this.computeResourcePreferences.equals(that.computeResourcePreferences))
+        return false;
+    }
+
+    boolean this_present_storagePreferences = true && this.isSetStoragePreferences();
+    boolean that_present_storagePreferences = true && that.isSetStoragePreferences();
+    if (this_present_storagePreferences || that_present_storagePreferences) {
+      if (!(this_present_storagePreferences && that_present_storagePreferences))
+        return false;
+      if (!this.storagePreferences.equals(that.storagePreferences))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_gatewayID = true && (isSetGatewayID());
+    list.add(present_gatewayID);
+    if (present_gatewayID)
+      list.add(gatewayID);
+
+    boolean present_credentialStoreToken = true && (isSetCredentialStoreToken());
+    list.add(present_credentialStoreToken);
+    if (present_credentialStoreToken)
+      list.add(credentialStoreToken);
+
+    boolean present_computeResourcePreferences = true && (isSetComputeResourcePreferences());
+    list.add(present_computeResourcePreferences);
+    if (present_computeResourcePreferences)
+      list.add(computeResourcePreferences);
+
+    boolean present_storagePreferences = true && (isSetStoragePreferences());
+    list.add(present_storagePreferences);
+    if (present_storagePreferences)
+      list.add(storagePreferences);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(GatewayResourceProfile other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetGatewayID()).compareTo(other.isSetGatewayID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayID, other.gatewayID);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCredentialStoreToken()).compareTo(other.isSetCredentialStoreToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCredentialStoreToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.credentialStoreToken, other.credentialStoreToken);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetComputeResourcePreferences()).compareTo(other.isSetComputeResourcePreferences());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetComputeResourcePreferences()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourcePreferences, other.computeResourcePreferences);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStoragePreferences()).compareTo(other.isSetStoragePreferences());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStoragePreferences()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storagePreferences, other.storagePreferences);
+      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("GatewayResourceProfile(");
+    boolean first = true;
+
+    sb.append("gatewayID:");
+    if (this.gatewayID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayID);
+    }
+    first = false;
+    if (isSetCredentialStoreToken()) {
+      if (!first) sb.append(", ");
+      sb.append("credentialStoreToken:");
+      if (this.credentialStoreToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.credentialStoreToken);
+      }
+      first = false;
+    }
+    if (isSetComputeResourcePreferences()) {
+      if (!first) sb.append(", ");
+      sb.append("computeResourcePreferences:");
+      if (this.computeResourcePreferences == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.computeResourcePreferences);
+      }
+      first = false;
+    }
+    if (isSetStoragePreferences()) {
+      if (!first) sb.append(", ");
+      sb.append("storagePreferences:");
+      if (this.storagePreferences == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.storagePreferences);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (gatewayID == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayID' was not present! 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 GatewayResourceProfileStandardSchemeFactory implements SchemeFactory {
+    public GatewayResourceProfileStandardScheme getScheme() {
+      return new GatewayResourceProfileStandardScheme();
+    }
+  }
+
+  private static class GatewayResourceProfileStandardScheme extends StandardScheme<GatewayResourceProfile> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, GatewayResourceProfile 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: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayID = iprot.readString();
+              struct.setGatewayIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // CREDENTIAL_STORE_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.credentialStoreToken = iprot.readString();
+              struct.setCredentialStoreTokenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // COMPUTE_RESOURCE_PREFERENCES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.computeResourcePreferences = new ArrayList<ComputeResourcePreference>(_list0.size);
+                ComputeResourcePreference _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new ComputeResourcePreference();
+                  _elem1.read(iprot);
+                  struct.computeResourcePreferences.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setComputeResourcePreferencesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // STORAGE_PREFERENCES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.storagePreferences = new ArrayList<StoragePreference>(_list3.size);
+                StoragePreference _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = new StoragePreference();
+                  _elem4.read(iprot);
+                  struct.storagePreferences.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
+              struct.setStoragePreferencesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, GatewayResourceProfile struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.gatewayID != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.credentialStoreToken != null) {
+        if (struct.isSetCredentialStoreToken()) {
+          oprot.writeFieldBegin(CREDENTIAL_STORE_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.credentialStoreToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.computeResourcePreferences != null) {
+        if (struct.isSetComputeResourcePreferences()) {
+          oprot.writeFieldBegin(COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.computeResourcePreferences.size()));
+            for (ComputeResourcePreference _iter6 : struct.computeResourcePreferences)
+            {
+              _iter6.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.storagePreferences != null) {
+        if (struct.isSetStoragePreferences()) {
+          oprot.writeFieldBegin(STORAGE_PREFERENCES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.storagePreferences.size()));
+            for (StoragePreference _iter7 : struct.storagePreferences)
+            {
+              _iter7.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GatewayResourceProfileTupleSchemeFactory implements SchemeFactory {
+    public GatewayResourceProfileTupleScheme getScheme() {
+      return new GatewayResourceProfileTupleScheme();
+    }
+  }
+
+  private static class GatewayResourceProfileTupleScheme extends TupleScheme<GatewayResourceProfile> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, GatewayResourceProfile struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.gatewayID);
+      BitSet optionals = new BitSet();
+      if (struct.isSetCredentialStoreToken()) {
+        optionals.set(0);
+      }
+      if (struct.isSetComputeResourcePreferences()) {
+        optionals.set(1);
+      }
+      if (struct.isSetStoragePreferences()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetCredentialStoreToken()) {
+        oprot.writeString(struct.credentialStoreToken);
+      }
+      if (struct.isSetComputeResourcePreferences()) {
+        {
+          oprot.writeI32(struct.computeResourcePreferences.size());
+          for (ComputeResourcePreference _iter8 : struct.computeResourcePreferences)
+          {
+            _iter8.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetStoragePreferences()) {
+        {
+          oprot.writeI32(struct.storagePreferences.size());
+          for (StoragePreference _iter9 : struct.storagePreferences)
+          {
+            _iter9.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, GatewayResourceProfile struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.gatewayID = iprot.readString();
+      struct.setGatewayIDIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.credentialStoreToken = iprot.readString();
+        struct.setCredentialStoreTokenIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.computeResourcePreferences = new ArrayList<ComputeResourcePreference>(_list10.size);
+          ComputeResourcePreference _elem11;
+          for (int _i12 = 0; _i12 < _list10.size; ++_i12)
+          {
+            _elem11 = new ComputeResourcePreference();
+            _elem11.read(iprot);
+            struct.computeResourcePreferences.add(_elem11);
+          }
+        }
+        struct.setComputeResourcePreferencesIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.storagePreferences = new ArrayList<StoragePreference>(_list13.size);
+          StoragePreference _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+          {
+            _elem14 = new StoragePreference();
+            _elem14.read(iprot);
+            struct.storagePreferences.add(_elem14);
+          }
+        }
+        struct.setStoragePreferencesIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
new file mode 100644
index 0000000..0514bcb
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
@@ -0,0 +1,733 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.gatewayprofile;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class StoragePreference implements org.apache.thrift.TBase<StoragePreference, StoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<StoragePreference> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StoragePreference");
+
+  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField LOGIN_USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("loginUserName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField FILE_SYSTEM_ROOT_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("fileSystemRootLocation", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceSpecificCredentialStoreToken", 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 StoragePreferenceStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new StoragePreferenceTupleSchemeFactory());
+  }
+
+  public String storageResourceId; // required
+  public String loginUserName; // optional
+  public String fileSystemRootLocation; // optional
+  public String resourceSpecificCredentialStoreToken; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    STORAGE_RESOURCE_ID((short)1, "storageResourceId"),
+    LOGIN_USER_NAME((short)2, "loginUserName"),
+    FILE_SYSTEM_ROOT_LOCATION((short)3, "fileSystemRootLocation"),
+    RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN((short)4, "resourceSpecificCredentialStoreToken");
+
+    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: // STORAGE_RESOURCE_ID
+          return STORAGE_RESOURCE_ID;
+        case 2: // LOGIN_USER_NAME
+          return LOGIN_USER_NAME;
+        case 3: // FILE_SYSTEM_ROOT_LOCATION
+          return FILE_SYSTEM_ROOT_LOCATION;
+        case 4: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+          return RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN;
+        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 _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.FILE_SYSTEM_ROOT_LOCATION,_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN};
+  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.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.LOGIN_USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("loginUserName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_SYSTEM_ROOT_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("fileSystemRootLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("resourceSpecificCredentialStoreToken", 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(StoragePreference.class, metaDataMap);
+  }
+
+  public StoragePreference() {
+  }
+
+  public StoragePreference(
+    String storageResourceId)
+  {
+    this();
+    this.storageResourceId = storageResourceId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public StoragePreference(StoragePreference other) {
+    if (other.isSetStorageResourceId()) {
+      this.storageResourceId = other.storageResourceId;
+    }
+    if (other.isSetLoginUserName()) {
+      this.loginUserName = other.loginUserName;
+    }
+    if (other.isSetFileSystemRootLocation()) {
+      this.fileSystemRootLocation = other.fileSystemRootLocation;
+    }
+    if (other.isSetResourceSpecificCredentialStoreToken()) {
+      this.resourceSpecificCredentialStoreToken = other.resourceSpecificCredentialStoreToken;
+    }
+  }
+
+  public StoragePreference deepCopy() {
+    return new StoragePreference(this);
+  }
+
+  @Override
+  public void clear() {
+    this.storageResourceId = null;
+    this.loginUserName = null;
+    this.fileSystemRootLocation = null;
+    this.resourceSpecificCredentialStoreToken = null;
+  }
+
+  public String getStorageResourceId() {
+    return this.storageResourceId;
+  }
+
+  public StoragePreference setStorageResourceId(String storageResourceId) {
+    this.storageResourceId = storageResourceId;
+    return this;
+  }
+
+  public void unsetStorageResourceId() {
+    this.storageResourceId = null;
+  }
+
+  /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageResourceId() {
+    return this.storageResourceId != null;
+  }
+
+  public void setStorageResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.storageResourceId = null;
+    }
+  }
+
+  public String getLoginUserName() {
+    return this.loginUserName;
+  }
+
+  public StoragePreference setLoginUserName(String loginUserName) {
+    this.loginUserName = loginUserName;
+    return this;
+  }
+
+  public void unsetLoginUserName() {
+    this.loginUserName = null;
+  }
+
+  /** Returns true if field loginUserName is set (has been assigned a value) and false otherwise */
+  public boolean isSetLoginUserName() {
+    return this.loginUserName != null;
+  }
+
+  public void setLoginUserNameIsSet(boolean value) {
+    if (!value) {
+      this.loginUserName = null;
+    }
+  }
+
+  public String getFileSystemRootLocation() {
+    return this.fileSystemRootLocation;
+  }
+
+  public StoragePreference setFileSystemRootLocation(String fileSystemRootLocation) {
+    this.fileSystemRootLocation = fileSystemRootLocation;
+    return this;
+  }
+
+  public void unsetFileSystemRootLocation() {
+    this.fileSystemRootLocation = null;
+  }
+
+  /** Returns true if field fileSystemRootLocation is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileSystemRootLocation() {
+    return this.fileSystemRootLocation != null;
+  }
+
+  public void setFileSystemRootLocationIsSet(boolean value) {
+    if (!value) {
+      this.fileSystemRootLocation = null;
+    }
+  }
+
+  public String getResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken;
+  }
+
+  public StoragePreference setResourceSpecificCredentialStoreToken(String resourceSpecificCredentialStoreToken) {
+    this.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken;
+    return this;
+  }
+
+  public void unsetResourceSpecificCredentialStoreToken() {
+    this.resourceSpecificCredentialStoreToken = null;
+  }
+
+  /** Returns true if field resourceSpecificCredentialStoreToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken != null;
+  }
+
+  public void setResourceSpecificCredentialStoreTokenIsSet(boolean value) {
+    if (!value) {
+      this.resourceSpecificCredentialStoreToken = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STORAGE_RESOURCE_ID:
+      if (value == null) {
+        unsetStorageResourceId();
+      } else {
+        setStorageResourceId((String)value);
+      }
+      break;
+
+    case LOGIN_USER_NAME:
+      if (value == null) {
+        unsetLoginUserName();
+      } else {
+        setLoginUserName((String)value);
+      }
+      break;
+
+    case FILE_SYSTEM_ROOT_LOCATION:
+      if (value == null) {
+        unsetFileSystemRootLocation();
+      } else {
+        setFileSystemRootLocation((String)value);
+      }
+      break;
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      if (value == null) {
+        unsetResourceSpecificCredentialStoreToken();
+      } else {
+        setResourceSpecificCredentialStoreToken((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STORAGE_RESOURCE_ID:
+      return getStorageResourceId();
+
+    case LOGIN_USER_NAME:
+      return getLoginUserName();
+
+    case FILE_SYSTEM_ROOT_LOCATION:
+      return getFileSystemRootLocation();
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return getResourceSpecificCredentialStoreToken();
+
+    }
+    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 STORAGE_RESOURCE_ID:
+      return isSetStorageResourceId();
+    case LOGIN_USER_NAME:
+      return isSetLoginUserName();
+    case FILE_SYSTEM_ROOT_LOCATION:
+      return isSetFileSystemRootLocation();
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return isSetResourceSpecificCredentialStoreToken();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof StoragePreference)
+      return this.equals((StoragePreference)that);
+    return false;
+  }
+
+  public boolean equals(StoragePreference that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_storageResourceId = true && this.isSetStorageResourceId();
+    boolean that_present_storageResourceId = true && that.isSetStorageResourceId();
+    if (this_present_storageResourceId || that_present_storageResourceId) {
+      if (!(this_present_storageResourceId && that_present_storageResourceId))
+        return false;
+      if (!this.storageResourceId.equals(that.storageResourceId))
+        return false;
+    }
+
+    boolean this_present_loginUserName = true && this.isSetLoginUserName();
+    boolean that_present_loginUserName = true && that.isSetLoginUserName();
+    if (this_present_loginUserName || that_present_loginUserName) {
+      if (!(this_present_loginUserName && that_present_loginUserName))
+        return false;
+      if (!this.loginUserName.equals(that.loginUserName))
+        return false;
+    }
+
+    boolean this_present_fileSystemRootLocation = true && this.isSetFileSystemRootLocation();
+    boolean that_present_fileSystemRootLocation = true && that.isSetFileSystemRootLocation();
+    if (this_present_fileSystemRootLocation || that_present_fileSystemRootLocation) {
+      if (!(this_present_fileSystemRootLocation && that_present_fileSystemRootLocation))
+        return false;
+      if (!this.fileSystemRootLocation.equals(that.fileSystemRootLocation))
+        return false;
+    }
+
+    boolean this_present_resourceSpecificCredentialStoreToken = true && this.isSetResourceSpecificCredentialStoreToken();
+    boolean that_present_resourceSpecificCredentialStoreToken = true && that.isSetResourceSpecificCredentialStoreToken();
+    if (this_present_resourceSpecificCredentialStoreToken || that_present_resourceSpecificCredentialStoreToken) {
+      if (!(this_present_resourceSpecificCredentialStoreToken && that_present_resourceSpecificCredentialStoreToken))
+        return false;
+      if (!this.resourceSpecificCredentialStoreToken.equals(that.resourceSpecificCredentialStoreToken))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_storageResourceId = true && (isSetStorageResourceId());
+    list.add(present_storageResourceId);
+    if (present_storageResourceId)
+      list.add(storageResourceId);
+
+    boolean present_loginUserName = true && (isSetLoginUserName());
+    list.add(present_loginUserName);
+    if (present_loginUserName)
+      list.add(loginUserName);
+
+    boolean present_fileSystemRootLocation = true && (isSetFileSystemRootLocation());
+    list.add(present_fileSystemRootLocation);
+    if (present_fileSystemRootLocation)
+      list.add(fileSystemRootLocation);
+
+    boolean present_resourceSpecificCredentialStoreToken = true && (isSetResourceSpecificCredentialStoreToken());
+    list.add(present_resourceSpecificCredentialStoreToken);
+    if (present_resourceSpecificCredentialStoreToken)
+      list.add(resourceSpecificCredentialStoreToken);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(StoragePreference other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLoginUserName()).compareTo(other.isSetLoginUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLoginUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.loginUserName, other.loginUserName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileSystemRootLocation()).compareTo(other.isSetFileSystemRootLocation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileSystemRootLocation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileSystemRootLocation, other.fileSystemRootLocation);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceSpecificCredentialStoreToken()).compareTo(other.isSetResourceSpecificCredentialStoreToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceSpecificCredentialStoreToken, other.resourceSpecificCredentialStoreToken);
+      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("StoragePreference(");
+    boolean first = true;
+
+    sb.append("storageResourceId:");
+    if (this.storageResourceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.storageResourceId);
+    }
+    first = false;
+    if (isSetLoginUserName()) {
+      if (!first) sb.append(", ");
+      sb.append("loginUserName:");
+      if (this.loginUserName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.loginUserName);
+      }
+      first = false;
+    }
+    if (isSetFileSystemRootLocation()) {
+      if (!first) sb.append(", ");
+      sb.append("fileSystemRootLocation:");
+      if (this.fileSystemRootLocation == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileSystemRootLocation);
+      }
+      first = false;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceSpecificCredentialStoreToken:");
+      if (this.resourceSpecificCredentialStoreToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceSpecificCredentialStoreToken);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (storageResourceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'storageResourceId' was not present! 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 StoragePreferenceStandardSchemeFactory implements SchemeFactory {
+    public StoragePreferenceStandardScheme getScheme() {
+      return new StoragePreferenceStandardScheme();
+    }
+  }
+
+  private static class StoragePreferenceStandardScheme extends StandardScheme<StoragePreference> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, StoragePreference 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: // STORAGE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageResourceId = iprot.readString();
+              struct.setStorageResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // LOGIN_USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.loginUserName = iprot.readString();
+              struct.setLoginUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // FILE_SYSTEM_ROOT_LOCATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.fileSystemRootLocation = iprot.readString();
+              struct.setFileSystemRootLocationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceSpecificCredentialStoreToken = iprot.readString();
+              struct.setResourceSpecificCredentialStoreTokenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, StoragePreference struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.storageResourceId != null) {
+        oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
+        oprot.writeString(struct.storageResourceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.loginUserName != null) {
+        if (struct.isSetLoginUserName()) {
+          oprot.writeFieldBegin(LOGIN_USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.loginUserName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.fileSystemRootLocation != null) {
+        if (struct.isSetFileSystemRootLocation()) {
+          oprot.writeFieldBegin(FILE_SYSTEM_ROOT_LOCATION_FIELD_DESC);
+          oprot.writeString(struct.fileSystemRootLocation);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceSpecificCredentialStoreToken != null) {
+        if (struct.isSetResourceSpecificCredentialStoreToken()) {
+          oprot.writeFieldBegin(RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class StoragePreferenceTupleSchemeFactory implements SchemeFactory {
+    public StoragePreferenceTupleScheme getScheme() {
+      return new StoragePreferenceTupleScheme();
+    }
+  }
+
+  private static class StoragePreferenceTupleScheme extends TupleScheme<StoragePreference> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, StoragePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.storageResourceId);
+      BitSet optionals = new BitSet();
+      if (struct.isSetLoginUserName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetFileSystemRootLocation()) {
+        optionals.set(1);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetLoginUserName()) {
+        oprot.writeString(struct.loginUserName);
+      }
+      if (struct.isSetFileSystemRootLocation()) {
+        oprot.writeString(struct.fileSystemRootLocation);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, StoragePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.storageResourceId = iprot.readString();
+      struct.setStorageResourceIdIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.loginUserName = iprot.readString();
+        struct.setLoginUserNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.fileSystemRootLocation = iprot.readString();
+        struct.setFileSystemRootLocationIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.resourceSpecificCredentialStoreToken = iprot.readString();
+        struct.setResourceSpecificCredentialStoreTokenIsSet(true);
+      }
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ValidationResults.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
new file mode 100644
index 0000000..1cfab8e
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
@@ -0,0 +1,562 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.commons;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
+
+  private static final org.apache.thrift.protocol.TField VALIDATION_STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("validationState", org.apache.thrift.protocol.TType.BOOL, (short)1);
+  private static final org.apache.thrift.protocol.TField VALIDATION_RESULT_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("validationResultList", org.apache.thrift.protocol.TType.LIST, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ValidationResultsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ValidationResultsTupleSchemeFactory());
+  }
+
+  public boolean validationState; // required
+  public List<ValidatorResult> validationResultList; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    VALIDATION_STATE((short)1, "validationState"),
+    VALIDATION_RESULT_LIST((short)2, "validationResultList");
+
+    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: // VALIDATION_STATE
+          return VALIDATION_STATE;
+        case 2: // VALIDATION_RESULT_LIST
+          return VALIDATION_RESULT_LIST;
+        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 __VALIDATIONSTATE_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  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.VALIDATION_STATE, new org.apache.thrift.meta_data.FieldMetaData("validationState", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.VALIDATION_RESULT_LIST, new org.apache.thrift.meta_data.FieldMetaData("validationResultList", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ValidatorResult.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ValidationResults.class, metaDataMap);
+  }
+
+  public ValidationResults() {
+  }
+
+  public ValidationResults(
+    boolean validationState,
+    List<ValidatorResult> validationResultList)
+  {
+    this();
+    this.validationState = validationState;
+    setValidationStateIsSet(true);
+    this.validationResultList = validationResultList;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ValidationResults(ValidationResults other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.validationState = other.validationState;
+    if (other.isSetValidationResultList()) {
+      List<ValidatorResult> __this__validationResultList = new ArrayList<ValidatorResult>(other.validationResultList.size());
+      for (ValidatorResult other_element : other.validationResultList) {
+        __this__validationResultList.add(new ValidatorResult(other_element));
+      }
+      this.validationResultList = __this__validationResultList;
+    }
+  }
+
+  public ValidationResults deepCopy() {
+    return new ValidationResults(this);
+  }
+
+  @Override
+  public void clear() {
+    setValidationStateIsSet(false);
+    this.validationState = false;
+    this.validationResultList = null;
+  }
+
+  public boolean isValidationState() {
+    return this.validationState;
+  }
+
+  public ValidationResults setValidationState(boolean validationState) {
+    this.validationState = validationState;
+    setValidationStateIsSet(true);
+    return this;
+  }
+
+  public void unsetValidationState() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __VALIDATIONSTATE_ISSET_ID);
+  }
+
+  /** Returns true if field validationState is set (has been assigned a value) and false otherwise */
+  public boolean isSetValidationState() {
+    return EncodingUtils.testBit(__isset_bitfield, __VALIDATIONSTATE_ISSET_ID);
+  }
+
+  public void setValidationStateIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __VALIDATIONSTATE_ISSET_ID, value);
+  }
+
+  public int getValidationResultListSize() {
+    return (this.validationResultList == null) ? 0 : this.validationResultList.size();
+  }
+
+  public java.util.Iterator<ValidatorResult> getValidationResultListIterator() {
+    return (this.validationResultList == null) ? null : this.validationResultList.iterator();
+  }
+
+  public void addToValidationResultList(ValidatorResult elem) {
+    if (this.validationResultList == null) {
+      this.validationResultList = new ArrayList<ValidatorResult>();
+    }
+    this.validationResultList.add(elem);
+  }
+
+  public List<ValidatorResult> getValidationResultList() {
+    return this.validationResultList;
+  }
+
+  public ValidationResults setValidationResultList(List<ValidatorResult> validationResultList) {
+    this.validationResultList = validationResultList;
+    return this;
+  }
+
+  public void unsetValidationResultList() {
+    this.validationResultList = null;
+  }
+
+  /** Returns true if field validationResultList is set (has been assigned a value) and false otherwise */
+  public boolean isSetValidationResultList() {
+    return this.validationResultList != null;
+  }
+
+  public void setValidationResultListIsSet(boolean value) {
+    if (!value) {
+      this.validationResultList = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case VALIDATION_STATE:
+      if (value == null) {
+        unsetValidationState();
+      } else {
+        setValidationState((Boolean)value);
+      }
+      break;
+
+    case VALIDATION_RESULT_LIST:
+      if (value == null) {
+        unsetValidationResultList();
+      } else {
+        setValidationResultList((List<ValidatorResult>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case VALIDATION_STATE:
+      return Boolean.valueOf(isValidationState());
+
+    case VALIDATION_RESULT_LIST:
+      return getValidationResultList();
+
+    }
+    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 VALIDATION_STATE:
+      return isSetValidationState();
+    case VALIDATION_RESULT_LIST:
+      return isSetValidationResultList();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ValidationResults)
+      return this.equals((ValidationResults)that);
+    return false;
+  }
+
+  public boolean equals(ValidationResults that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_validationState = true;
+    boolean that_present_validationState = true;
+    if (this_present_validationState || that_present_validationState) {
+      if (!(this_present_validationState && that_present_validationState))
+        return false;
+      if (this.validationState != that.validationState)
+        return false;
+    }
+
+    boolean this_present_validationResultList = true && this.isSetValidationResultList();
+    boolean that_present_validationResultList = true && that.isSetValidationResultList();
+    if (this_present_validationResultList || that_present_validationResultList) {
+      if (!(this_present_validationResultList && that_present_validationResultList))
+        return false;
+      if (!this.validationResultList.equals(that.validationResultList))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_validationState = true;
+    list.add(present_validationState);
+    if (present_validationState)
+      list.add(validationState);
+
+    boolean present_validationResultList = true && (isSetValidationResultList());
+    list.add(present_validationResultList);
+    if (present_validationResultList)
+      list.add(validationResultList);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ValidationResults other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetValidationState()).compareTo(other.isSetValidationState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValidationState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validationState, other.validationState);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetValidationResultList()).compareTo(other.isSetValidationResultList());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValidationResultList()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validationResultList, other.validationResultList);
+      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("ValidationResults(");
+    boolean first = true;
+
+    sb.append("validationState:");
+    sb.append(this.validationState);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("validationResultList:");
+    if (this.validationResultList == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.validationResultList);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // alas, we cannot check 'validationState' because it's a primitive and you chose the non-beans generator.
+    if (validationResultList == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'validationResultList' was not present! 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 ValidationResultsStandardSchemeFactory implements SchemeFactory {
+    public ValidationResultsStandardScheme getScheme() {
+      return new ValidationResultsStandardScheme();
+    }
+  }
+
+  private static class ValidationResultsStandardScheme extends StandardScheme<ValidationResults> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ValidationResults 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: // VALIDATION_STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.validationState = iprot.readBool();
+              struct.setValidationStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // VALIDATION_RESULT_LIST
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list8 = iprot.readListBegin();
+                struct.validationResultList = new ArrayList<ValidatorResult>(_list8.size);
+                ValidatorResult _elem9;
+                for (int _i10 = 0; _i10 < _list8.size; ++_i10)
+                {
+                  _elem9 = new ValidatorResult();
+                  _elem9.read(iprot);
+                  struct.validationResultList.add(_elem9);
+                }
+                iprot.readListEnd();
+              }
+              struct.setValidationResultListIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetValidationState()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'validationState' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ValidationResults struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(VALIDATION_STATE_FIELD_DESC);
+      oprot.writeBool(struct.validationState);
+      oprot.writeFieldEnd();
+      if (struct.validationResultList != null) {
+        oprot.writeFieldBegin(VALIDATION_RESULT_LIST_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.validationResultList.size()));
+          for (ValidatorResult _iter11 : struct.validationResultList)
+          {
+            _iter11.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ValidationResultsTupleSchemeFactory implements SchemeFactory {
+    public ValidationResultsTupleScheme getScheme() {
+      return new ValidationResultsTupleScheme();
+    }
+  }
+
+  private static class ValidationResultsTupleScheme extends TupleScheme<ValidationResults> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ValidationResults struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeBool(struct.validationState);
+      {
+        oprot.writeI32(struct.validationResultList.size());
+        for (ValidatorResult _iter12 : struct.validationResultList)
+        {
+          _iter12.write(oprot);
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ValidationResults struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.validationState = iprot.readBool();
+      struct.setValidationStateIsSet(true);
+      {
+        org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+        struct.validationResultList = new ArrayList<ValidatorResult>(_list13.size);
+        ValidatorResult _elem14;
+        for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+        {
+          _elem14 = new ValidatorResult();
+          _elem14.read(iprot);
+          struct.validationResultList.add(_elem14);
+        }
+      }
+      struct.setValidationResultListIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
new file mode 100644
index 0000000..c8b1615
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
@@ -0,0 +1,525 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.commons;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * This data structure can be used to store the validation results
+ * captured during validation step and during the launchExperiment
+ * operation it can be easilly checked to see the errors occured
+ * during the experiment launch operation
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
+
+  private static final org.apache.thrift.protocol.TField RESULT_FIELD_DESC = new org.apache.thrift.protocol.TField("result", org.apache.thrift.protocol.TType.BOOL, (short)1);
+  private static final org.apache.thrift.protocol.TField ERROR_DETAILS_FIELD_DESC = new org.apache.thrift.protocol.TField("errorDetails", org.apache.thrift.protocol.TType.STRING, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ValidatorResultStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ValidatorResultTupleSchemeFactory());
+  }
+
+  public boolean result; // required
+  public String errorDetails; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    RESULT((short)1, "result"),
+    ERROR_DETAILS((short)2, "errorDetails");
+
+    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: // RESULT
+          return RESULT;
+        case 2: // ERROR_DETAILS
+          return ERROR_DETAILS;
+        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 __RESULT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.ERROR_DETAILS};
+  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.RESULT, new org.apache.thrift.meta_data.FieldMetaData("result", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.ERROR_DETAILS, new org.apache.thrift.meta_data.FieldMetaData("errorDetails", 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(ValidatorResult.class, metaDataMap);
+  }
+
+  public ValidatorResult() {
+  }
+
+  public ValidatorResult(
+    boolean result)
+  {
+    this();
+    this.result = result;
+    setResultIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ValidatorResult(ValidatorResult other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.result = other.result;
+    if (other.isSetErrorDetails()) {
+      this.errorDetails = other.errorDetails;
+    }
+  }
+
+  public ValidatorResult deepCopy() {
+    return new ValidatorResult(this);
+  }
+
+  @Override
+  public void clear() {
+    setResultIsSet(false);
+    this.result = false;
+    this.errorDetails = null;
+  }
+
+  public boolean isResult() {
+    return this.result;
+  }
+
+  public ValidatorResult setResult(boolean result) {
+    this.result = result;
+    setResultIsSet(true);
+    return this;
+  }
+
+  public void unsetResult() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RESULT_ISSET_ID);
+  }
+
+  /** Returns true if field result is set (has been assigned a value) and false otherwise */
+  public boolean isSetResult() {
+    return EncodingUtils.testBit(__isset_bitfield, __RESULT_ISSET_ID);
+  }
+
+  public void setResultIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RESULT_ISSET_ID, value);
+  }
+
+  public String getErrorDetails() {
+    return this.errorDetails;
+  }
+
+  public ValidatorResult setErrorDetails(String errorDetails) {
+    this.errorDetails = errorDetails;
+    return this;
+  }
+
+  public void unsetErrorDetails() {
+    this.errorDetails = null;
+  }
+
+  /** Returns true if field errorDetails is set (has been assigned a value) and false otherwise */
+  public boolean isSetErrorDetails() {
+    return this.errorDetails != null;
+  }
+
+  public void setErrorDetailsIsSet(boolean value) {
+    if (!value) {
+      this.errorDetails = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case RESULT:
+      if (value == null) {
+        unsetResult();
+      } else {
+        setResult((Boolean)value);
+      }
+      break;
+
+    case ERROR_DETAILS:
+      if (value == null) {
+        unsetErrorDetails();
+      } else {
+        setErrorDetails((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case RESULT:
+      return Boolean.valueOf(isResult());
+
+    case ERROR_DETAILS:
+      return getErrorDetails();
+
+    }
+    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 RESULT:
+      return isSetResult();
+    case ERROR_DETAILS:
+      return isSetErrorDetails();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ValidatorResult)
+      return this.equals((ValidatorResult)that);
+    return false;
+  }
+
+  public boolean equals(ValidatorResult that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_result = true;
+    boolean that_present_result = true;
+    if (this_present_result || that_present_result) {
+      if (!(this_present_result && that_present_result))
+        return false;
+      if (this.result != that.result)
+        return false;
+    }
+
+    boolean this_present_errorDetails = true && this.isSetErrorDetails();
+    boolean that_present_errorDetails = true && that.isSetErrorDetails();
+    if (this_present_errorDetails || that_present_errorDetails) {
+      if (!(this_present_errorDetails && that_present_errorDetails))
+        return false;
+      if (!this.errorDetails.equals(that.errorDetails))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_result = true;
+    list.add(present_result);
+    if (present_result)
+      list.add(result);
+
+    boolean present_errorDetails = true && (isSetErrorDetails());
+    list.add(present_errorDetails);
+    if (present_errorDetails)
+      list.add(errorDetails);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ValidatorResult other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetResult()).compareTo(other.isSetResult());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResult()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.result, other.result);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetErrorDetails()).compareTo(other.isSetErrorDetails());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetErrorDetails()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errorDetails, other.errorDetails);
+      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("ValidatorResult(");
+    boolean first = true;
+
+    sb.append("result:");
+    sb.append(this.result);
+    first = false;
+    if (isSetErrorDetails()) {
+      if (!first) sb.append(", ");
+      sb.append("errorDetails:");
+      if (this.errorDetails == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.errorDetails);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // alas, we cannot check 'result' because it's a primitive and you chose the non-beans generator.
+    // 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 ValidatorResultStandardSchemeFactory implements SchemeFactory {
+    public ValidatorResultStandardScheme getScheme() {
+      return new ValidatorResultStandardScheme();
+    }
+  }
+
+  private static class ValidatorResultStandardScheme extends StandardScheme<ValidatorResult> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ValidatorResult 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: // RESULT
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.result = iprot.readBool();
+              struct.setResultIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // ERROR_DETAILS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.errorDetails = iprot.readString();
+              struct.setErrorDetailsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetResult()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'result' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ValidatorResult struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(RESULT_FIELD_DESC);
+      oprot.writeBool(struct.result);
+      oprot.writeFieldEnd();
+      if (struct.errorDetails != null) {
+        if (struct.isSetErrorDetails()) {
+          oprot.writeFieldBegin(ERROR_DETAILS_FIELD_DESC);
+          oprot.writeString(struct.errorDetails);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ValidatorResultTupleSchemeFactory implements SchemeFactory {
+    public ValidatorResultTupleScheme getScheme() {
+      return new ValidatorResultTupleScheme();
+    }
+  }
+
+  private static class ValidatorResultTupleScheme extends TupleScheme<ValidatorResult> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ValidatorResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeBool(struct.result);
+      BitSet optionals = new BitSet();
+      if (struct.isSetErrorDetails()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetErrorDetails()) {
+        oprot.writeString(struct.errorDetails);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ValidatorResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.result = iprot.readBool();
+      struct.setResultIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.errorDetails = iprot.readString();
+        struct.setErrorDetailsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/airavata_commonsConstants.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/airavata_commonsConstants.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/airavata_commonsConstants.java
new file mode 100644
index 0000000..c6b1a85
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/commons/airavata_commonsConstants.java
@@ -0,0 +1,58 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.commons;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+public class airavata_commonsConstants {
+
+  public static final String DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS";
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DMType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DMType.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DMType.java
new file mode 100644
index 0000000..d4dc712
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DMType.java
@@ -0,0 +1,62 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.movement;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum DMType implements org.apache.thrift.TEnum {
+  COMPUTE_RESOURCE(0),
+  STORAGE_RESOURCE(1);
+
+  private final int value;
+
+  private DMType(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 DMType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return COMPUTE_RESOURCE;
+      case 1:
+        return STORAGE_RESOURCE;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
new file mode 100644
index 0000000..1fa0678
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
@@ -0,0 +1,637 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.movement;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Data Movement Interfaces
+ * 
+ * dataMovementInterfaceId: The Data Movement Interface has to be previously registered and referenced here.
+ * 
+ * priorityOrder:
+ *  For resources with multiple interfaces, the priority order should be selected.
+ *   Lower the numerical number, higher the priority
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class DataMovementInterface implements org.apache.thrift.TBase<DataMovementInterface, DataMovementInterface._Fields>, java.io.Serializable, Cloneable, Comparable<DataMovementInterface> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataMovementInterface");
+
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField PRIORITY_ORDER_FIELD_DESC = new org.apache.thrift.protocol.TField("priorityOrder", org.apache.thrift.protocol.TType.I32, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new DataMovementInterfaceStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new DataMovementInterfaceTupleSchemeFactory());
+  }
+
+  public String dataMovementInterfaceId; // required
+  /**
+   * 
+   * @see DataMovementProtocol
+   */
+  public DataMovementProtocol dataMovementProtocol; // required
+  public int priorityOrder; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    DATA_MOVEMENT_INTERFACE_ID((short)1, "dataMovementInterfaceId"),
+    /**
+     * 
+     * @see DataMovementProtocol
+     */
+    DATA_MOVEMENT_PROTOCOL((short)2, "dataMovementProtocol"),
+    PRIORITY_ORDER((short)3, "priorityOrder");
+
+    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: // DATA_MOVEMENT_INTERFACE_ID
+          return DATA_MOVEMENT_INTERFACE_ID;
+        case 2: // DATA_MOVEMENT_PROTOCOL
+          return DATA_MOVEMENT_PROTOCOL;
+        case 3: // PRIORITY_ORDER
+          return PRIORITY_ORDER;
+        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 __PRIORITYORDER_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  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.DATA_MOVEMENT_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovementInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DATA_MOVEMENT_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("dataMovementProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DataMovementProtocol.class)));
+    tmpMap.put(_Fields.PRIORITY_ORDER, new org.apache.thrift.meta_data.FieldMetaData("priorityOrder", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataMovementInterface.class, metaDataMap);
+  }
+
+  public DataMovementInterface() {
+    this.priorityOrder = 0;
+
+  }
+
+  public DataMovementInterface(
+    String dataMovementInterfaceId,
+    DataMovementProtocol dataMovementProtocol,
+    int priorityOrder)
+  {
+    this();
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+    this.dataMovementProtocol = dataMovementProtocol;
+    this.priorityOrder = priorityOrder;
+    setPriorityOrderIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public DataMovementInterface(DataMovementInterface other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetDataMovementInterfaceId()) {
+      this.dataMovementInterfaceId = other.dataMovementInterfaceId;
+    }
+    if (other.isSetDataMovementProtocol()) {
+      this.dataMovementProtocol = other.dataMovementProtocol;
+    }
+    this.priorityOrder = other.priorityOrder;
+  }
+
+  public DataMovementInterface deepCopy() {
+    return new DataMovementInterface(this);
+  }
+
+  @Override
+  public void clear() {
+    this.dataMovementInterfaceId = null;
+    this.dataMovementProtocol = null;
+    this.priorityOrder = 0;
+
+  }
+
+  public String getDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId;
+  }
+
+  public DataMovementInterface setDataMovementInterfaceId(String dataMovementInterfaceId) {
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+    return this;
+  }
+
+  public void unsetDataMovementInterfaceId() {
+    this.dataMovementInterfaceId = null;
+  }
+
+  /** Returns true if field dataMovementInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId != null;
+  }
+
+  public void setDataMovementInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see DataMovementProtocol
+   */
+  public DataMovementProtocol getDataMovementProtocol() {
+    return this.dataMovementProtocol;
+  }
+
+  /**
+   * 
+   * @see DataMovementProtocol
+   */
+  public DataMovementInterface setDataMovementProtocol(DataMovementProtocol dataMovementProtocol) {
+    this.dataMovementProtocol = dataMovementProtocol;
+    return this;
+  }
+
+  public void unsetDataMovementProtocol() {
+    this.dataMovementProtocol = null;
+  }
+
+  /** Returns true if field dataMovementProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementProtocol() {
+    return this.dataMovementProtocol != null;
+  }
+
+  public void setDataMovementProtocolIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementProtocol = null;
+    }
+  }
+
+  public int getPriorityOrder() {
+    return this.priorityOrder;
+  }
+
+  public DataMovementInterface setPriorityOrder(int priorityOrder) {
+    this.priorityOrder = priorityOrder;
+    setPriorityOrderIsSet(true);
+    return this;
+  }
+
+  public void unsetPriorityOrder() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PRIORITYORDER_ISSET_ID);
+  }
+
+  /** Returns true if field priorityOrder is set (has been assigned a value) and false otherwise */
+  public boolean isSetPriorityOrder() {
+    return EncodingUtils.testBit(__isset_bitfield, __PRIORITYORDER_ISSET_ID);
+  }
+
+  public void setPriorityOrderIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PRIORITYORDER_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      if (value == null) {
+        unsetDataMovementInterfaceId();
+      } else {
+        setDataMovementInterfaceId((String)value);
+      }
+      break;
+
+    case DATA_MOVEMENT_PROTOCOL:
+      if (value == null) {
+        unsetDataMovementProtocol();
+      } else {
+        setDataMovementProtocol((DataMovementProtocol)value);
+      }
+      break;
+
+    case PRIORITY_ORDER:
+      if (value == null) {
+        unsetPriorityOrder();
+      } else {
+        setPriorityOrder((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      return getDataMovementInterfaceId();
+
+    case DATA_MOVEMENT_PROTOCOL:
+      return getDataMovementProtocol();
+
+    case PRIORITY_ORDER:
+      return Integer.valueOf(getPriorityOrder());
+
+    }
+    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 DATA_MOVEMENT_INTERFACE_ID:
+      return isSetDataMovementInterfaceId();
+    case DATA_MOVEMENT_PROTOCOL:
+      return isSetDataMovementProtocol();
+    case PRIORITY_ORDER:
+      return isSetPriorityOrder();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof DataMovementInterface)
+      return this.equals((DataMovementInterface)that);
+    return false;
+  }
+
+  public boolean equals(DataMovementInterface that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_dataMovementInterfaceId = true && this.isSetDataMovementInterfaceId();
+    boolean that_present_dataMovementInterfaceId = true && that.isSetDataMovementInterfaceId();
+    if (this_present_dataMovementInterfaceId || that_present_dataMovementInterfaceId) {
+      if (!(this_present_dataMovementInterfaceId && that_present_dataMovementInterfaceId))
+        return false;
+      if (!this.dataMovementInterfaceId.equals(that.dataMovementInterfaceId))
+        return false;
+    }
+
+    boolean this_present_dataMovementProtocol = true && this.isSetDataMovementProtocol();
+    boolean that_present_dataMovementProtocol = true && that.isSetDataMovementProtocol();
+    if (this_present_dataMovementProtocol || that_present_dataMovementProtocol) {
+      if (!(this_present_dataMovementProtocol && that_present_dataMovementProtocol))
+        return false;
+      if (!this.dataMovementProtocol.equals(that.dataMovementProtocol))
+        return false;
+    }
+
+    boolean this_present_priorityOrder = true;
+    boolean that_present_priorityOrder = true;
+    if (this_present_priorityOrder || that_present_priorityOrder) {
+      if (!(this_present_priorityOrder && that_present_priorityOrder))
+        return false;
+      if (this.priorityOrder != that.priorityOrder)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_dataMovementInterfaceId = true && (isSetDataMovementInterfaceId());
+    list.add(present_dataMovementInterfaceId);
+    if (present_dataMovementInterfaceId)
+      list.add(dataMovementInterfaceId);
+
+    boolean present_dataMovementProtocol = true && (isSetDataMovementProtocol());
+    list.add(present_dataMovementProtocol);
+    if (present_dataMovementProtocol)
+      list.add(dataMovementProtocol.getValue());
+
+    boolean present_priorityOrder = true;
+    list.add(present_priorityOrder);
+    if (present_priorityOrder)
+      list.add(priorityOrder);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(DataMovementInterface other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetDataMovementInterfaceId()).compareTo(other.isSetDataMovementInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementInterfaceId, other.dataMovementInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataMovementProtocol()).compareTo(other.isSetDataMovementProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementProtocol, other.dataMovementProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPriorityOrder()).compareTo(other.isSetPriorityOrder());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPriorityOrder()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.priorityOrder, other.priorityOrder);
+      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("DataMovementInterface(");
+    boolean first = true;
+
+    sb.append("dataMovementInterfaceId:");
+    if (this.dataMovementInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovementInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("dataMovementProtocol:");
+    if (this.dataMovementProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovementProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("priorityOrder:");
+    sb.append(this.priorityOrder);
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (dataMovementInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementInterfaceId' was not present! Struct: " + toString());
+    }
+    if (dataMovementProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementProtocol' was not present! Struct: " + toString());
+    }
+    // alas, we cannot check 'priorityOrder' because it's a primitive and you chose the non-beans generator.
+    // 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 DataMovementInterfaceStandardSchemeFactory implements SchemeFactory {
+    public DataMovementInterfaceStandardScheme getScheme() {
+      return new DataMovementInterfaceStandardScheme();
+    }
+  }
+
+  private static class DataMovementInterfaceStandardScheme extends StandardScheme<DataMovementInterface> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, DataMovementInterface 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: // DATA_MOVEMENT_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataMovementInterfaceId = iprot.readString();
+              struct.setDataMovementInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // DATA_MOVEMENT_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.dataMovementProtocol = org.apache.airavata.model.data.movement.DataMovementProtocol.findByValue(iprot.readI32());
+              struct.setDataMovementProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // PRIORITY_ORDER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.priorityOrder = iprot.readI32();
+              struct.setPriorityOrderIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetPriorityOrder()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'priorityOrder' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, DataMovementInterface struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.dataMovementInterfaceId != null) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.dataMovementInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.dataMovementProtocol != null) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.dataMovementProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(PRIORITY_ORDER_FIELD_DESC);
+      oprot.writeI32(struct.priorityOrder);
+      oprot.writeFieldEnd();
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class DataMovementInterfaceTupleSchemeFactory implements SchemeFactory {
+    public DataMovementInterfaceTupleScheme getScheme() {
+      return new DataMovementInterfaceTupleScheme();
+    }
+  }
+
+  private static class DataMovementInterfaceTupleScheme extends TupleScheme<DataMovementInterface> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, DataMovementInterface struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.dataMovementInterfaceId);
+      oprot.writeI32(struct.dataMovementProtocol.getValue());
+      oprot.writeI32(struct.priorityOrder);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, DataMovementInterface struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.dataMovementInterfaceId = iprot.readString();
+      struct.setDataMovementInterfaceIdIsSet(true);
+      struct.dataMovementProtocol = org.apache.airavata.model.data.movement.DataMovementProtocol.findByValue(iprot.readI32());
+      struct.setDataMovementProtocolIsSet(true);
+      struct.priorityOrder = iprot.readI32();
+      struct.setPriorityOrderIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DataMovementProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DataMovementProtocol.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DataMovementProtocol.java
new file mode 100644
index 0000000..0a12438
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/DataMovementProtocol.java
@@ -0,0 +1,87 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.movement;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of data movement supported by Airavata
+ * 
+ * SCP:
+ *  Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.
+ * 
+ * SFTP:
+ *  The Simple Linux Utility for Resource Management is a open source workload manager.
+ * 
+ * GridFTP:
+ *  Globus File Transfer Protocol
+ * 
+ * UNICORE_STORAGE_SERVICE:
+ *  Storage Service Provided by Unicore
+ * 
+ */
+public enum DataMovementProtocol implements org.apache.thrift.TEnum {
+  LOCAL(0),
+  SCP(1),
+  SFTP(2),
+  GridFTP(3),
+  UNICORE_STORAGE_SERVICE(4);
+
+  private final int value;
+
+  private DataMovementProtocol(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 DataMovementProtocol findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return LOCAL;
+      case 1:
+        return SCP;
+      case 2:
+        return SFTP;
+      case 3:
+        return GridFTP;
+      case 4:
+        return UNICORE_STORAGE_SERVICE;
+      default:
+        return null;
+    }
+  }
+}


[04/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileTransferServiceImpl.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileTransferServiceImpl.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileTransferServiceImpl.java
deleted file mode 100644
index b5ab8fb..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/FileTransferServiceImpl.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import org.apache.airavata.credential.store.credential.impl.ssh.SSHCredential;
-import org.apache.airavata.file.manager.core.db.dao.FileTransferRequestDao;
-import org.apache.airavata.file.manager.core.remote.client.RemoteStorageClient;
-import org.apache.airavata.file.manager.core.remote.client.http.HTTPStorageClient;
-import org.apache.airavata.file.manager.core.remote.client.scp.SCPStorageClient;
-import org.apache.airavata.file.manager.core.remote.client.sftp.SFTPStorageClient;
-import org.apache.airavata.file.manager.cpi.FileManagerException;
-import org.apache.airavata.file.manager.cpi.FileTransferService;
-import org.apache.airavata.model.file.transfer.*;
-import org.apache.commons.io.IOUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.util.List;
-import java.util.UUID;
-
-public class FileTransferServiceImpl implements FileTransferService {
-
-    private final static Logger logger = LoggerFactory.getLogger(FileTransferServiceImpl.class);
-
-    private FileTransferRequestDao fileTransferRequestDao;
-
-    public FileTransferServiceImpl() throws IOException {
-        this.fileTransferRequestDao = new FileTransferRequestDao();
-    }
-
-    /**
-     * Method to upload the give bytes to the destination storage system
-     *
-     * @param gatewayId
-     * @param username
-     * @param fileData
-     * @param destHostName
-     * @param destLoginName
-     * @param destPort
-     * @param destProtocol
-     * @param destinationPath
-     * @param destHostCredToken
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public String uploadFile(String gatewayId, String username, byte[] fileData, String destHostName, String destLoginName, int destPort,
-                             StorageResourceProtocol destProtocol,
-                             String destinationPath, String destHostCredToken) throws FileManagerException {
-        long transferTime = System.currentTimeMillis();
-        if(destProtocol == StorageResourceProtocol.SCP || destProtocol == StorageResourceProtocol.SFTP) {
-            Object credential = getCredential(destHostCredToken);
-            SSHCredential sshCredential;
-            if (credential instanceof SSHCredential) {
-                sshCredential = (SSHCredential) credential;
-                File srcFile = null;
-                FileWriter fileWriter = null;
-                FileTransferRequestModel fileTransferRequestModel = null;
-                try {
-                    String srcFilePath = System.getProperty("java.io.tmpdir")+File.separator+ UUID.randomUUID().toString();
-                    srcFile = new File(srcFilePath);
-                    fileWriter = new FileWriter(srcFile);
-                    fileWriter.write(new String(fileData));
-                    fileWriter.close();
-                    RemoteStorageClient remoteStorageClient;
-                    if(destProtocol == StorageResourceProtocol.SCP)
-                        remoteStorageClient = new SCPStorageClient(destHostName, destPort, destLoginName,
-                            sshCredential.getPrivateKey(),
-                            sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
-                    else
-                        remoteStorageClient = new SFTPStorageClient(destHostName, destPort, destLoginName,
-                                sshCredential.getPrivateKey(),
-                                sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
-
-                    fileTransferRequestModel = new FileTransferRequestModel();
-                    fileTransferRequestModel.setGatewayId(gatewayId);
-                    fileTransferRequestModel.setUsername(username);
-                    fileTransferRequestModel.setSrcHostname(InetAddress.getLocalHost().getHostName());
-                    fileTransferRequestModel.setSrcProtocol(StorageResourceProtocol.LOCAL);
-                    fileTransferRequestModel.setDestHostname(destHostName);
-                    fileTransferRequestModel.setDestLoginName(destLoginName);
-                    fileTransferRequestModel.setDestPort(destPort);
-                    fileTransferRequestModel.setDestProtocol(destProtocol);
-                    fileTransferRequestModel.setDestFilePath(destinationPath);
-                    fileTransferRequestModel.setDestHostCredToken(destHostCredToken);
-                    fileTransferRequestModel.setFileTransferMode(FileTransferMode.SYNC);
-                    remoteStorageClient.writeFile(srcFile, destinationPath);
-                    transferTime = System.currentTimeMillis() - transferTime;
-                    fileTransferRequestModel.setTransferTime(transferTime);
-                    fileTransferRequestModel.setTransferStatus(FileTransferStatus.COMPLETED);
-                    fileTransferRequestModel.setCreatedTime(System.currentTimeMillis());
-                    fileTransferRequestModel.setLastModifiedType(fileTransferRequestModel.getCreatedTime());
-                    fileTransferRequestModel.setFileSize(srcFile.length());
-                    String transferId = fileTransferRequestDao.createFileTransferRequest(fileTransferRequestModel);
-                    return transferId;
-                } catch (Exception e) {
-                    logger.error(e.getMessage(), e);
-                    if(fileTransferRequestModel != null) {
-                        fileTransferRequestModel.setTransferStatus(FileTransferStatus.FAILED);
-                        try {
-                            fileTransferRequestDao.createFileTransferRequest(fileTransferRequestModel);
-                        } catch (JsonProcessingException e1) {
-                            logger.error(e.getMessage(), e);
-                            throw new FileManagerException(e);
-                        }
-                    }
-                    throw new FileManagerException(e.getMessage());
-                } finally {
-                    if(srcFile != null)
-                        srcFile.delete();
-                    if(fileWriter != null)
-                        try {
-                            fileWriter.close();
-                        } catch (IOException e) {
-                            logger.error(e.getMessage(), e);
-                            throw new FileManagerException(e);
-                        }
-                }
-            } else {
-                throw new FileManagerException("Only SSHCredential type is supported");
-            }
-        }else{
-            throw new FileManagerException(destProtocol.toString() + " protocol is not supported for this method");
-        }
-    }
-
-    /**
-     * Transfer file between two storage resources synchronously. Returns the file transfer request id
-     *
-     * @param gatewayId
-     * @param username
-     * @param srcHostname
-     * @param srcLoginName
-     * @param srcPort
-     * @param srcProtocol
-     * @param srcPath
-     * @param srcHostCredToken
-     * @param destHostname
-     * @param destLoginName
-     * @param destPort
-     * @param destProtocol
-     * @param destinationPath
-     * @param destHostCredToken
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public String transferFile(String gatewayId, String username, String srcHostname, String srcLoginName, int srcPort, StorageResourceProtocol srcProtocol,
-                               String srcPath, String srcHostCredToken, String destHostname, String destLoginName, int destPort,
-                               StorageResourceProtocol destProtocol, String destinationPath, String destHostCredToken)
-            throws FileManagerException {
-        long transferTime = System.currentTimeMillis();
-        File srcFile = null;
-        FileTransferRequestModel fileTransferRequestModel = null;
-        try{
-            fileTransferRequestModel = new FileTransferRequestModel();
-            fileTransferRequestModel.setGatewayId(gatewayId);
-            fileTransferRequestModel.setUsername(username);
-            fileTransferRequestModel.setSrcHostname(srcHostname);
-            fileTransferRequestModel.setSrcPort(srcPort);
-            fileTransferRequestModel.setSrcLoginName(srcLoginName);
-            fileTransferRequestModel.setSrcFilePath(srcPath);
-            fileTransferRequestModel.setSrcProtocol(srcProtocol);
-            fileTransferRequestModel.setSrcHostCredToken(srcHostCredToken);
-            fileTransferRequestModel.setDestHostname(destHostname);
-            fileTransferRequestModel.setDestPort(destPort);
-            fileTransferRequestModel.setDestLoginName(destLoginName);
-            fileTransferRequestModel.setDestFilePath(destinationPath);
-            fileTransferRequestModel.setDestProtocol(destProtocol);
-            fileTransferRequestModel.setDestHostCredToken(destHostCredToken);
-            fileTransferRequestModel.setCreatedTime(System.currentTimeMillis());
-            fileTransferRequestModel.setLastModifiedType(fileTransferRequestModel.getCreatedTime());
-            fileTransferRequestModel.setFileTransferMode(FileTransferMode.SYNC);
-
-            if(srcProtocol == StorageResourceProtocol.HTTP || srcProtocol == StorageResourceProtocol.HTTPS ||
-                    srcProtocol == StorageResourceProtocol.SCP || srcProtocol == StorageResourceProtocol.SFTP){
-                RemoteStorageClient srcClient = null;
-                if(srcProtocol == StorageResourceProtocol.HTTP){
-                    srcClient = new HTTPStorageClient(HTTPStorageClient.Protocol.HTTP, srcHostname, srcPort);
-                }else if(srcProtocol == StorageResourceProtocol.HTTPS){
-                    srcClient = new HTTPStorageClient(HTTPStorageClient.Protocol.HTTPS, srcHostname, srcPort);
-                }else if(srcProtocol == StorageResourceProtocol.SCP){
-                    Object credential = getCredential(srcHostCredToken);
-                    if(credential instanceof SSHCredential){
-                        SSHCredential sshCredential = (SSHCredential) credential;
-                        srcClient = new SCPStorageClient(srcHostname, srcPort, srcLoginName, sshCredential.getPrivateKey(),
-                                sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
-                    }else{
-                        throw new FileManagerException("Only support SSHCredentials for SCP host");
-                    }
-                }else{
-                    Object credential = getCredential(srcHostCredToken);
-                    if(credential instanceof SSHCredential){
-                        SSHCredential sshCredential = (SSHCredential) credential;
-                        srcClient = new SFTPStorageClient(srcHostname, srcPort, srcLoginName, sshCredential.getPrivateKey(),
-                                sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
-                    }else{
-                        throw new FileManagerException("Only support SSHCredentials for SFTP host");
-                    }
-                }
-                fileTransferRequestModel.setTransferStatus(FileTransferStatus.RUNNING);
-                srcFile = srcClient.readFile(srcPath);
-            }else{
-                throw new FileManagerException("Unsupported src protocol " + srcProtocol);
-            }
-
-            if(destProtocol == StorageResourceProtocol.SCP || destProtocol == StorageResourceProtocol.SFTP){
-                RemoteStorageClient destClient = null;
-                if(destProtocol == StorageResourceProtocol.SCP){
-                    Object credential = getCredential(srcHostCredToken);
-                    if(credential instanceof SSHCredential){
-                        SSHCredential sshCredential = (SSHCredential) credential;
-                        destClient = new SCPStorageClient(srcHostname, srcPort, srcLoginName, sshCredential.getPrivateKey(),
-                                sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
-                    }else{
-                        throw new FileManagerException("Only support SSHCredentials for SCP host");
-                    }
-                }else{
-                    Object credential = getCredential(srcHostCredToken);
-                    if(credential instanceof SSHCredential){
-                        SSHCredential sshCredential = (SSHCredential) credential;
-                        destClient = new SFTPStorageClient(srcHostname, srcPort, srcLoginName, sshCredential.getPrivateKey(),
-                                sshCredential.getPublicKey(), sshCredential.getPassphrase().getBytes());
-                    }else{
-                        throw new FileManagerException("Only support SSHCredentials for SFTP host");
-                    }
-                }
-                destClient.writeFile(srcFile, destinationPath);
-                transferTime = System.currentTimeMillis() - transferTime;
-                fileTransferRequestModel.setTransferTime(transferTime);
-                fileTransferRequestModel.setFileSize(srcFile.length());
-                fileTransferRequestModel.setTransferStatus(FileTransferStatus.COMPLETED);
-                String transferId = fileTransferRequestDao.createFileTransferRequest(fileTransferRequestModel);
-                return transferId;
-            }else{
-                throw new FileManagerException("Unsupported src protocol " + srcProtocol);
-            }
-        }catch (Exception e){
-            logger.error(e.getMessage(), e);
-            if(fileTransferRequestModel != null) {
-                fileTransferRequestModel.setTransferStatus(FileTransferStatus.FAILED);
-                try {
-                    fileTransferRequestDao.createFileTransferRequest(fileTransferRequestModel);
-                } catch (JsonProcessingException ex) {
-                    logger.error(ex.getMessage(), ex);
-                    throw new FileManagerException(ex);
-                }
-            }
-            throw new FileManagerException(e);
-        }finally {
-            if(srcFile != null)
-                srcFile.delete();
-        }
-    }
-
-    /**
-     * Transfer file between two storage resources asynchronously. Returns the file transfer request id
-     *
-     * @param gatewayId
-     * @param username
-     * @param srcHostname
-     * @param srcLoginName
-     * @param srcPort
-     * @param srcProtocol
-     * @param srcPath
-     * @param srcHostCredToken
-     * @param destHostname
-     * @param destLoginName
-     * @param destPort
-     * @param destProtocol
-     * @param destinationPath
-     * @param destHostCredToken
-     * @param callbackEmails
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public String transferFileAsync(String gatewayId, String username, String srcHostname, String srcLoginName, int srcPort, StorageResourceProtocol srcProtocol,
-                                    String srcPath, String srcHostCredToken, String destHostname, String destLoginName,
-                                    int destPort, StorageResourceProtocol destProtocol, String destinationPath,
-                                    String destHostCredToken, String[] callbackEmails) throws FileManagerException {
-        return null;
-    }
-
-    /**
-     * Get a directory listing of the specified source directory
-     *
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param path
-     * @param hostCredential
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public List<LSEntryModel> getDirectoryListing(String hostname, String loginName, int port, StorageResourceProtocol protocol,
-                                              String path, String hostCredential) throws FileManagerException {
-        return null;
-    }
-
-    /**
-     * Move file from one place to another inside the same storage resource
-     *
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param sourcePath
-     * @param destinationPath
-     * @throws FileManagerException
-     */
-    @Override
-    public void moveFile(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
-                         String sourcePath, String destinationPath) throws FileManagerException {
-
-    }
-
-    /**
-     * Rename a file
-     *
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param sourcePath
-     * @param newName
-     * @throws FileManagerException
-     */
-    @Override
-    public void renameFile(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
-                           String sourcePath, String newName) throws FileManagerException {
-
-    }
-
-    /**
-     * Create new directory
-     *
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param dirPath
-     * @throws FileManagerException
-     */
-    @Override
-    public void mkdir(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
-                      String dirPath) throws FileManagerException {
-
-    }
-
-    /**
-     * Delete File in storage resource
-     *
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param filePath
-     * @throws FileManagerException
-     */
-    @Override
-    public void deleteFile(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
-                           String filePath) throws FileManagerException {
-
-    }
-
-    /**
-     * Check whether the specified file exists
-     *
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param filePath
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public boolean isExists(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
-                            String filePath) throws FileManagerException {
-        return false;
-    }
-
-    /**
-     * Check whether the path points to a directory
-     *
-     * @param hostname
-     * @param loginName
-     * @param port
-     * @param protocol
-     * @param hostCredential
-     * @param filePath
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public boolean isDirectory(String hostname, String loginName, int port, StorageResourceProtocol protocol, String hostCredential,
-                               String filePath) throws FileManagerException {
-        return false;
-    }
-
-    /**
-     * Method to retrieve file transfer status giving transfer id
-     *
-     * @param transferId
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public FileTransferRequestModel getFileTransferRequestStatus(String transferId) throws FileManagerException {
-        try{
-            return fileTransferRequestDao.getFileTransferRequest(transferId);
-        }catch (Exception ex){
-            logger.error(ex.getMessage(), ex);
-            throw new FileManagerException(ex);
-        }
-    }
-
-
-    //TODO API Call to Credential Store
-    private SSHCredential getCredential(String credentialStoreToken) throws FileManagerException{
-        try{
-            SSHCredential sshCredential = new SSHCredential();
-            File privateKey = new File("/Users/supun/.ssh/id_rsa");
-            byte[] privateKeyBytes = IOUtils.toByteArray(new FileInputStream(privateKey));
-            File publicKey = new File("/Users/supun/.ssh/id_rsa.pub");
-            byte[] publicKeyBytes = IOUtils.toByteArray(new FileInputStream(publicKey));
-            String passPhrase = "cecilia@1990";
-            sshCredential.setPrivateKey(privateKeyBytes);
-            sshCredential.setPublicKey(publicKeyBytes);
-            sshCredential.setPassphrase(passPhrase);
-            return sshCredential;
-        }catch (Exception ex){
-            logger.error(ex.getMessage(), ex);
-            throw new FileManagerException(ex);
-        }
-    }
-
-    public static void main(String[] args) throws IOException, FileManagerException {
-        FileTransferServiceImpl fileTransferService = new FileTransferServiceImpl();
-        String sourceFile = "fsgsdgsdgsdgsdg";
-        String transferId = fileTransferService.uploadFile("default", "supun", sourceFile.getBytes(), "gw75.iu.xsede.org",
-                "pga", 22, StorageResourceProtocol.SCP, "/var/www/portals/test.file", null);
-        FileTransferRequestModel fileTransferRequestModel = fileTransferService.fileTransferRequestDao.getFileTransferRequest(transferId);
-        System.out.println("file transfer id:" + fileTransferRequestModel.getTransferId());
-
-        transferId = fileTransferService.transferFile("default", "supun", "gw75.iu.xsede.org", "pga", 22, StorageResourceProtocol.SCP,
-                "/var/www/portals/test.file", null, "gw75.iu.xsede.org", "pga", 22, StorageResourceProtocol.SCP,
-                "/var/www/portals/test2.file", null);
-        fileTransferRequestModel = fileTransferService.fileTransferRequestDao.getFileTransferRequest(transferId);
-        System.out.println("file transfer id:" + fileTransferRequestModel.getTransferId());
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/MetadataCatalogService.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/MetadataCatalogService.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/MetadataCatalogService.java
deleted file mode 100644
index 5c09de5..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/MetadataCatalogService.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core;
-
-import org.apache.airavata.file.manager.cpi.FileManagerException;
-import org.apache.airavata.model.file.metadata.MetadataModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class MetadataCatalogService implements org.apache.airavata.file.manager.cpi.MetadataCatalogService{
-    private final static Logger logger = LoggerFactory.getLogger(MetadataCatalogService.class);
-
-    /**
-     * Create new metadata model
-     *
-     * @param metadataModel
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public String createMetadata(MetadataModel metadataModel) throws FileManagerException {
-        return null;
-    }
-
-    /**
-     * Update existing metadata model
-     *
-     * @param metadataModel
-     * @throws FileManagerException
-     */
-    @Override
-    public void updateMetadata(MetadataModel metadataModel) throws FileManagerException {
-
-    }
-
-    /**
-     * Delete existing metadata model
-     *
-     * @param metadataId
-     * @throws FileManagerException
-     */
-    @Override
-    public void deleteMetadata(String metadataId) throws FileManagerException {
-
-    }
-
-    /**
-     * Retrieve metadata model
-     *
-     * @param metadataId
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public MetadataModel getMetadata(String metadataId) throws FileManagerException {
-        return null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/MetadataCatalogServiceImpl.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/MetadataCatalogServiceImpl.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/MetadataCatalogServiceImpl.java
deleted file mode 100644
index b2a3dda..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/MetadataCatalogServiceImpl.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core;
-
-import org.apache.airavata.file.manager.core.db.dao.MetadataDao;
-import org.apache.airavata.file.manager.cpi.FileManagerException;
-import org.apache.airavata.model.file.metadata.MetadataModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-public class MetadataCatalogServiceImpl extends MetadataCatalogService {
-    private final static Logger logger = LoggerFactory.getLogger(MetadataCatalogServiceImpl.class);
-
-    private MetadataDao metadataDao;
-
-    public MetadataCatalogServiceImpl() throws IOException {
-        this.metadataDao = new MetadataDao();
-    }
-
-    /**
-     * Create new metadata model
-     *
-     * @param metadataModel
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public String createMetadata(MetadataModel metadataModel) throws FileManagerException {
-        try{
-            return metadataDao.createMetadata(metadataModel);
-        }catch (Exception e){
-            logger.error(e.getMessage(), e);
-            throw new FileManagerException(e);
-        }
-    }
-
-    /**
-     * Update exisiting metadata model
-     *
-     * @param metadataModel
-     * @throws FileManagerException
-     */
-    @Override
-    public void updateMetadata(MetadataModel metadataModel) throws FileManagerException {
-        try{
-            metadataDao.updateMetadata(metadataModel);
-        }catch (Exception e){
-            logger.error(e.getMessage(), e);
-            throw new FileManagerException(e);
-        }
-    }
-
-    /**
-     * Delete existing metadata model
-     *
-     * @param metadataId
-     * @throws FileManagerException
-     */
-    @Override
-    public void deleteMetadata(String metadataId) throws FileManagerException {
-        try{
-            metadataDao.deleteMetadata(metadataId);
-        }catch (Exception e){
-            logger.error(e.getMessage(), e);
-            throw new FileManagerException(e);
-        }
-    }
-
-    /**
-     * Retrieve metadata model
-     *
-     * @param metadataId
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public MetadataModel getMetadata(String metadataId) throws FileManagerException {
-        try{
-            return metadataDao.getMetadata(metadataId);
-        }catch (Exception e){
-            logger.error(e.getMessage(), e);
-            throw new FileManagerException(e);
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/ReplicaCatalogServiceImpl.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/ReplicaCatalogServiceImpl.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/ReplicaCatalogServiceImpl.java
deleted file mode 100644
index 119e0ae..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/ReplicaCatalogServiceImpl.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core;
-
-import org.apache.airavata.file.manager.core.db.dao.FileCollectionDao;
-import org.apache.airavata.file.manager.core.db.dao.FileDao;
-import org.apache.airavata.file.manager.cpi.FileManagerException;
-import org.apache.airavata.file.manager.cpi.ReplicaCatalogService;
-import org.apache.airavata.model.file.replica.FileCollectionModel;
-import org.apache.airavata.model.file.replica.FileModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-public class ReplicaCatalogServiceImpl implements ReplicaCatalogService {
-    private final static Logger logger = LoggerFactory.getLogger(ReplicaCatalogServiceImpl.class);
-
-    private FileDao fileDao;
-    private FileCollectionDao fileCollectionDao;
-
-    public ReplicaCatalogServiceImpl() throws IOException {
-        this.fileDao = new FileDao();
-        this.fileCollectionDao = new FileCollectionDao();
-    }
-
-    /**
-     * Creates a new file entry in the replica catalog
-     *
-     * @param fileModel
-     * @return
-     */
-    @Override
-    public String registerFileDetails(FileModel fileModel) throws FileManagerException {
-        try{
-            return fileDao.createFile(fileModel);
-        }catch (Exception ex){
-            logger.error(ex.getMessage(), ex);
-            throw new FileManagerException(ex);
-        }
-    }
-
-    /**
-     * Updates an existing file information
-     *
-     * @param fileModel
-     */
-    @Override
-    public void updateFileDetails(FileModel fileModel) throws FileManagerException {
-        try{
-            fileDao.updateFile(fileModel);
-        }catch (Exception ex){
-            logger.error(ex.getMessage(), ex);
-            throw new FileManagerException(ex);
-        }
-    }
-
-    /**
-     * Deletes the specified file details entry
-     *
-     * @param fileId
-     */
-    @Override
-    public void deleteFileDetails(String fileId) throws FileManagerException {
-        try{
-            fileDao.deleteFile(fileId);
-        }catch (Exception ex){
-            logger.error(ex.getMessage(), ex);
-            throw new FileManagerException(ex);
-        }
-    }
-
-    /**
-     * Retrieves file details for the specified file id
-     *
-     * @param fileId
-     * @return
-     */
-    @Override
-    public FileModel getFileDetails(String fileId) throws FileManagerException {
-        try{
-            return fileDao.getFile(fileId);
-        }catch (Exception ex){
-            logger.error(ex.getMessage(), ex);
-            throw new FileManagerException(ex);
-        }
-    }
-
-    /**
-     * Create new file collection entry
-     *
-     * @param fileCollectionModel
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public String registerFileCollection(FileCollectionModel fileCollectionModel) throws FileManagerException {
-        try{
-            return fileCollectionDao.createFileCollection(fileCollectionModel);
-        }catch (Exception ex){
-            logger.error(ex.getMessage(), ex);
-            throw new FileManagerException(ex);
-        }
-    }
-
-    /**
-     * Update existing file collection
-     *
-     * @param fileCollectionModel
-     * @throws FileManagerException
-     */
-    @Override
-    public void updateFileCollection(FileCollectionModel fileCollectionModel) throws FileManagerException {
-        try{
-            fileCollectionDao.updateFileCollection(fileCollectionModel);
-        }catch (Exception ex){
-            logger.error(ex.getMessage(), ex);
-            throw new FileManagerException(ex);
-        }
-    }
-
-    /**
-     * Delete exisiting file collection
-     *
-     * @param collectionId
-     * @throws FileManagerException
-     */
-    @Override
-    public void deleteFileCollection(String collectionId) throws FileManagerException {
-        try{
-            fileCollectionDao.deleteFileCollection(collectionId);
-        }catch (Exception ex){
-            logger.error(ex.getMessage(), ex);
-            throw new FileManagerException(ex);
-        }
-    }
-
-    /**
-     * Retrieve file collection specifying the collection id
-     *
-     * @param collectionId
-     * @return
-     * @throws FileManagerException
-     */
-    @Override
-    public FileCollectionModel getFileCollection(String collectionId) throws FileManagerException {
-        try{
-            return fileCollectionDao.getFileCollection(collectionId);
-        }catch (Exception ex){
-            logger.error(ex.getMessage(), ex);
-            throw new FileManagerException(ex);
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/AbstractThriftDeserializer.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/AbstractThriftDeserializer.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/AbstractThriftDeserializer.java
deleted file mode 100644
index a50e0ea..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/AbstractThriftDeserializer.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.*;
-import com.fasterxml.jackson.databind.node.JsonNodeType;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.fasterxml.jackson.databind.type.TypeFactory;
-import com.google.common.base.CaseFormat;
-import org.apache.thrift.TBase;
-import org.apache.thrift.TException;
-import org.apache.thrift.TFieldIdEnum;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.lang.reflect.ParameterizedType;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * This abstract class represents a generic de-serializer for converting JSON to Thrift-based entities.
- *
- * @param <E> An implementation of the {@link org.apache.thrift.TFieldIdEnum} interface.
- * @param <T> An implementation of the {@link org.apache.thrift.TBase} interface.
- */
-public abstract class AbstractThriftDeserializer<E extends TFieldIdEnum, T extends TBase<T, E>> extends JsonDeserializer<T> {
-
-    private static Logger log = LoggerFactory.getLogger(AbstractThriftDeserializer.class);
-
-    @Override
-    public T deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException {
-        final T instance = newInstance();
-        final ObjectMapper mapper = (ObjectMapper)jp.getCodec();
-        final ObjectNode rootNode = (ObjectNode)mapper.readTree(jp);
-        final Iterator<Map.Entry<String, JsonNode>> iterator = rootNode.fields();
-
-        while(iterator.hasNext()) {
-            final Map.Entry<String, JsonNode> currentField = iterator.next();
-            try {
-                /*
-                 * If the current node is not a null value, process it.  Otherwise,
-                 * skip it.  Jackson will treat the null as a 0 for primitive
-                 * number types, which in turn will make Thrift think the field
-                 * has been set. Also we ignore the MongoDB specific _id field
-                 */
-                if(currentField.getValue().getNodeType() != JsonNodeType.NULL) {
-                    final E field = getField(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_UNDERSCORE, currentField.getKey()));
-                    final JsonParser parser = currentField.getValue().traverse();
-                    parser.setCodec(mapper);
-                    final Object value = mapper.readValue(parser, generateValueType(instance, field));
-                    if(value != null) {
-                        log.debug(String.format("Field %s produced value %s of type %s.",
-                                currentField.getKey(), value, value.getClass().getName()));
-                        instance.setFieldValue(field, value);
-                    } else {
-                        log.debug("Field {} contains a null value.  Skipping...", currentField.getKey());
-                    }
-                } else {
-                    log.debug("Field {} contains a null value.  Skipping...", currentField.getKey());
-                }
-            } catch (final NoSuchFieldException | IllegalArgumentException e) {
-                log.error("Unable to de-serialize field '{}'.", currentField.getKey(), e);
-                ctxt.mappingException(e.getMessage());
-            }
-        }
-
-        try {
-            // Validate that the instance contains all required fields.
-            validate(instance);
-        } catch (final TException e) {
-            log.error(String.format("Unable to deserialize JSON '%s' to type '%s'.",
-                    jp.getValueAsString(), instance.getClass().getName(), e));
-            ctxt.mappingException(e.getMessage());
-        }
-
-        return instance;
-    }
-
-    /**
-     * Returns the {@code <E>} enumerated value that represents the target
-     * field in the Thrift entity referenced in the JSON document.
-     * @param fieldName The name of the Thrift entity target field.
-     * @return The {@code <E>} enumerated value that represents the target
-     *   field in the Thrift entity referenced in the JSON document.
-     */
-    protected abstract E getField(String fieldName);
-
-    /**
-     * Creates a new instance of the Thrift entity class represented by this deserializer.
-     * @return A new instance of the Thrift entity class represented by this deserializer.
-     */
-    protected abstract T newInstance();
-
-    /**
-     * Validates that the Thrift entity instance contains all required fields after deserialization.
-     * @param instance A Thrift entity instance.
-     * @throws org.apache.thrift.TException if unable to validate the instance.
-     */
-    protected abstract void validate(T instance) throws TException;
-
-    /**
-     * Generates a {@link JavaType} that matches the target Thrift field represented by the provided
-     * {@code <E>} enumerated value.  If the field's type includes generics, the generics will
-     * be added to the generated {@link JavaType} to support proper conversion.
-     * @param thriftInstance The Thrift-generated class instance that will be converted to/from JSON.
-     * @param field A {@code <E>} enumerated value that represents a field in a Thrift-based entity.
-     * @return The {@link JavaType} representation of the type associated with the field.
-     * @throws NoSuchFieldException if unable to determine the field's type.
-     * @throws SecurityException if unable to determine the field's type.
-     */
-    protected JavaType generateValueType(final T thriftInstance, final E field) throws NoSuchFieldException, SecurityException {
-        final TypeFactory typeFactory = TypeFactory.defaultInstance();
-
-        final Field declaredField = thriftInstance.getClass().getDeclaredField(field.getFieldName());
-        if(declaredField.getType().equals(declaredField.getGenericType())) {
-            log.debug("Generating JavaType for type '{}'.", declaredField.getType());
-            return typeFactory.constructType(declaredField.getType());
-        } else {
-            final ParameterizedType type = (ParameterizedType)declaredField.getGenericType();
-            final Class<?>[] parameterizedTypes = new Class<?>[type.getActualTypeArguments().length];
-            for(int i=0; i<type.getActualTypeArguments().length; i++) {
-                parameterizedTypes[i] = (Class<?>)type.getActualTypeArguments()[i];
-            }
-            log.debug("Generating JavaType for type '{}' with generics '{}'", declaredField.getType(), parameterizedTypes);
-            return typeFactory.constructParametricType(declaredField.getType(), parameterizedTypes);
-        }
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/AbstractThriftSerializer.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/AbstractThriftSerializer.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/AbstractThriftSerializer.java
deleted file mode 100644
index f8be22a..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/AbstractThriftSerializer.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion;
-
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.google.common.base.CaseFormat;
-import org.apache.thrift.TBase;
-import org.apache.thrift.TFieldIdEnum;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.Collection;
-
-/**
- * This abstract class represents a generic serializer for converting Thrift-based entities
- * to JSON.
- *
- * @param <E> An implementation of the {@link org.apache.thrift.TFieldIdEnum} interface.
- * @param <T> An implementation of the {@link org.apache.thrift.TBase} interface.
- */
-public abstract class AbstractThriftSerializer<E extends TFieldIdEnum, T extends TBase<T, E>>
-        extends JsonSerializer<T> {
-
-    private static final Logger log = LoggerFactory.getLogger(AbstractThriftSerializer.class);
-
-    @Override
-    public Class<T> handledType() {
-        return getThriftClass();
-    }
-
-    @Override
-    public void serialize(final T value, final JsonGenerator jgen, final SerializerProvider provider)
-            throws IOException, JsonProcessingException {
-        jgen.writeStartObject();
-        for(final E field : getFieldValues()) {
-            if(value.isSet(field)) {
-                final Object fieldValue = value.getFieldValue(field);
-                if(fieldValue != null) {
-                    log.debug("Adding field {} to the JSON string...",
-                            CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName())
-                    );
-
-                    jgen.writeFieldName(CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName()));
-                    if(fieldValue instanceof Short) {
-                        jgen.writeNumber((Short)fieldValue);
-                    } else if(fieldValue instanceof Integer) {
-                        jgen.writeNumber((Integer)fieldValue);
-                    } else if(fieldValue instanceof Long) {
-                        jgen.writeNumber((Long)fieldValue);
-                    } else if(fieldValue instanceof Double) {
-                        jgen.writeNumber((Double)fieldValue);
-                    } else if(fieldValue instanceof Float) {
-                        jgen.writeNumber((Float)fieldValue);
-                    } else if(fieldValue instanceof Boolean) {
-                        jgen.writeBoolean((Boolean)fieldValue);
-                    } else if(fieldValue instanceof String) {
-                        jgen.writeString(fieldValue.toString());
-                    } else if(fieldValue instanceof Collection) {
-                        log.debug("Array opened for field {}.",
-                                CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName())
-                        );
-                        jgen.writeStartArray();
-                        for(final Object arrayObject : (Collection<?>)fieldValue) {
-                            jgen.writeObject(arrayObject);
-                        }
-                        jgen.writeEndArray();
-                        log.debug("Array closed for field {}.",
-                                CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName())
-                        );
-                    } else {
-                        jgen.writeObject(fieldValue);
-                    }
-                } else {
-                    log.debug("Skipping converting field {} to JSON:  value is null!",
-                            CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName())
-                    );
-                }
-            } else {
-                log.debug("Skipping converting field {} to JSON:  field has not been set!",
-                        CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,field.getFieldName())
-                );
-            }
-        }
-        jgen.writeEndObject();
-    }
-
-    /**
-     * Returns an array of {@code <E>} enumerated values that represent the fields present in the
-     * Thrift class associated with this serializer.
-     * @return The array of {@code <E>} enumerated values that represent the fields present in the
-     *   Thrift class.
-     */
-    protected abstract E[] getFieldValues();
-
-    /**
-     * Returns the {@code <T>} implementation class associated with this serializer.
-     * @return The {@code <T>} implementation class
-     */
-    protected abstract Class<T> getThriftClass();
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/ModelConversionHelper.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/ModelConversionHelper.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/ModelConversionHelper.java
deleted file mode 100644
index 9aac5af..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/ModelConversionHelper.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.module.SimpleModule;
-import org.apache.airavata.file.manager.core.db.conversion.metadata.MetadataDeserializer;
-import org.apache.airavata.file.manager.core.db.conversion.metadata.MetadataSerializer;
-import org.apache.airavata.file.manager.core.db.conversion.transfer.FileTransferRequestDeserializer;
-import org.apache.airavata.file.manager.core.db.conversion.transfer.FileTransferRequestSerializer;
-import org.apache.airavata.file.manager.core.db.conversion.replica.FileCollectionDeserializer;
-import org.apache.airavata.file.manager.core.db.conversion.replica.FileCollectionSerializer;
-import org.apache.airavata.file.manager.core.db.conversion.replica.FileDeserializer;
-import org.apache.airavata.file.manager.core.db.conversion.replica.FileSerializer;
-import org.apache.airavata.model.file.metadata.MetadataModel;
-import org.apache.airavata.model.file.transfer.FileTransferRequestModel;
-import org.apache.airavata.model.file.replica.FileCollectionModel;
-import org.apache.airavata.model.file.replica.FileModel;
-import org.apache.thrift.TBase;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-
-/**
- * This is utility class for model conversion of thrift to/from json
- */
-public class ModelConversionHelper {
-    private final static Logger logger = LoggerFactory.getLogger(ModelConversionHelper.class);
-
-    private ObjectMapper objectMapper;
-
-    public ModelConversionHelper(){
-        init();
-    }
-
-    /**
-     * Private method to register the custom serializers and deserializers
-     */
-    private void init(){
-        this.objectMapper = new ObjectMapper();
-        SimpleModule module = new SimpleModule("FileManager",
-                new Version(1,0,0,null,null,null));
-
-        module.addSerializer(FileTransferRequestModel.class, new FileTransferRequestSerializer());
-        module.addDeserializer(FileTransferRequestModel.class, new FileTransferRequestDeserializer());
-
-        module.addSerializer(FileModel.class, new FileSerializer());
-        module.addDeserializer(FileModel.class, new FileDeserializer());
-
-        module.addSerializer(FileCollectionModel.class, new FileCollectionSerializer());
-        module.addDeserializer(FileCollectionModel.class, new FileCollectionDeserializer());
-
-        module.addSerializer(MetadataModel.class, new MetadataSerializer());
-        module.addDeserializer(MetadataModel.class, new MetadataDeserializer());
-
-        objectMapper.registerModule(module);
-    }
-
-    /**
-     * Method to serialize a thrift object to json
-     * @param object
-     * @return
-     * @throws JsonProcessingException
-     */
-    public String serializeObject(TBase object) throws JsonProcessingException {
-        String json = this.objectMapper.writeValueAsString(object);
-        return json;
-    }
-
-    /**
-     * Method to deserialize a json to the thrift object
-     * @param clz
-     * @param json
-     * @return
-     * @throws IOException
-     */
-    public TBase deserializeObject(Class<?> clz, String json) throws IOException {
-        return (TBase)this.objectMapper.readValue(json, clz);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/metadata/MetadataDeserializer.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/metadata/MetadataDeserializer.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/metadata/MetadataDeserializer.java
deleted file mode 100644
index 8323957..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/metadata/MetadataDeserializer.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion.metadata;
-
-import org.apache.airavata.file.manager.core.db.conversion.AbstractThriftDeserializer;
-import org.apache.airavata.model.file.metadata.MetadataModel;
-import org.apache.airavata.model.file.transfer.FileTransferRequestModel;
-import org.apache.thrift.TException;
-
-public class MetadataDeserializer extends
-        AbstractThriftDeserializer<MetadataModel._Fields, MetadataModel> {
-
-    @Override
-    protected MetadataModel._Fields getField(final String fieldName) {
-        return MetadataModel._Fields.valueOf(fieldName);
-    }
-
-    @Override
-    protected MetadataModel newInstance() {
-        return new MetadataModel();
-    }
-
-    @Override
-    protected void validate(final MetadataModel instance) throws TException {
-        instance.validate();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/metadata/MetadataSerializer.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/metadata/MetadataSerializer.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/metadata/MetadataSerializer.java
deleted file mode 100644
index d527290..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/metadata/MetadataSerializer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion.metadata;
-
-import org.apache.airavata.file.manager.core.db.conversion.AbstractThriftSerializer;
-import org.apache.airavata.model.file.metadata.MetadataModel;
-import org.apache.airavata.model.file.transfer.FileTransferRequestModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class MetadataSerializer extends
-        AbstractThriftSerializer<MetadataModel._Fields, MetadataModel> {
-    private final static Logger logger = LoggerFactory.getLogger(MetadataSerializer.class);
-
-    @Override
-    protected MetadataModel._Fields[] getFieldValues() {
-        return MetadataModel._Fields.values();
-    }
-
-    @Override
-    protected Class<MetadataModel> getThriftClass() {
-        return null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileCollectionDeserializer.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileCollectionDeserializer.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileCollectionDeserializer.java
deleted file mode 100644
index 2953c70..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileCollectionDeserializer.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion.replica;
-
-import org.apache.airavata.file.manager.core.db.conversion.AbstractThriftDeserializer;
-import org.apache.airavata.model.file.replica.FileCollectionModel;
-import org.apache.thrift.TException;
-
-public class FileCollectionDeserializer extends
-        AbstractThriftDeserializer<FileCollectionModel._Fields, FileCollectionModel> {
-
-    @Override
-    protected FileCollectionModel._Fields getField(final String fieldName) {
-        return FileCollectionModel._Fields.valueOf(fieldName);
-    }
-
-    @Override
-    protected FileCollectionModel newInstance() {
-        return new FileCollectionModel();
-    }
-
-    @Override
-    protected void validate(final FileCollectionModel instance) throws TException {
-        instance.validate();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileCollectionSerializer.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileCollectionSerializer.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileCollectionSerializer.java
deleted file mode 100644
index a57363c..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileCollectionSerializer.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion.replica;
-
-import org.apache.airavata.file.manager.core.db.conversion.AbstractThriftSerializer;
-import org.apache.airavata.model.file.replica.FileCollectionModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class FileCollectionSerializer extends
-        AbstractThriftSerializer<FileCollectionModel._Fields, FileCollectionModel> {
-    private final static Logger logger = LoggerFactory.getLogger(FileCollectionSerializer.class);
-
-    @Override
-    protected FileCollectionModel._Fields[] getFieldValues() {
-        return FileCollectionModel._Fields.values();
-    }
-
-    @Override
-    protected Class<FileCollectionModel> getThriftClass() {
-        return null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileDeserializer.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileDeserializer.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileDeserializer.java
deleted file mode 100644
index ba43ca1..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileDeserializer.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion.replica;
-
-import org.apache.airavata.file.manager.core.db.conversion.AbstractThriftDeserializer;
-import org.apache.airavata.model.file.replica.FileModel;
-import org.apache.thrift.TException;
-
-public class FileDeserializer extends
-        AbstractThriftDeserializer<FileModel._Fields, FileModel> {
-
-    @Override
-    protected FileModel._Fields getField(final String fieldName) {
-        return FileModel._Fields.valueOf(fieldName);
-    }
-
-    @Override
-    protected FileModel newInstance() {
-        return new FileModel();
-    }
-
-    @Override
-    protected void validate(final FileModel instance) throws TException {
-        instance.validate();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileSerializer.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileSerializer.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileSerializer.java
deleted file mode 100644
index eeb5c01..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/replica/FileSerializer.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion.replica;
-
-import org.apache.airavata.file.manager.core.db.conversion.AbstractThriftSerializer;
-import org.apache.airavata.model.file.replica.FileModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class FileSerializer extends
-        AbstractThriftSerializer<FileModel._Fields, FileModel> {
-    private final static Logger logger = LoggerFactory.getLogger(FileSerializer.class);
-
-    @Override
-    protected FileModel._Fields[] getFieldValues() {
-        return FileModel._Fields.values();
-    }
-
-    @Override
-    protected Class<FileModel> getThriftClass() {
-        return null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/transfer/FileTransferRequestDeserializer.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/transfer/FileTransferRequestDeserializer.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/transfer/FileTransferRequestDeserializer.java
deleted file mode 100644
index 93d200c..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/transfer/FileTransferRequestDeserializer.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion.transfer;
-
-import org.apache.airavata.file.manager.core.db.conversion.AbstractThriftDeserializer;
-import org.apache.airavata.model.file.transfer.FileTransferRequestModel;
-import org.apache.thrift.TException;
-
-public class FileTransferRequestDeserializer extends
-        AbstractThriftDeserializer<FileTransferRequestModel._Fields, FileTransferRequestModel> {
-
-    @Override
-    protected FileTransferRequestModel._Fields getField(final String fieldName) {
-        return FileTransferRequestModel._Fields.valueOf(fieldName);
-    }
-
-    @Override
-    protected FileTransferRequestModel newInstance() {
-        return new FileTransferRequestModel();
-    }
-
-    @Override
-    protected void validate(final FileTransferRequestModel instance) throws TException {
-        instance.validate();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/transfer/FileTransferRequestSerializer.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/transfer/FileTransferRequestSerializer.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/transfer/FileTransferRequestSerializer.java
deleted file mode 100644
index 4e4dc70..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/conversion/transfer/FileTransferRequestSerializer.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.conversion.transfer;
-
-import org.apache.airavata.file.manager.core.db.conversion.AbstractThriftSerializer;
-import org.apache.airavata.model.file.transfer.FileTransferRequestModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class FileTransferRequestSerializer extends
-        AbstractThriftSerializer<FileTransferRequestModel._Fields, FileTransferRequestModel> {
-    private final static Logger logger = LoggerFactory.getLogger(FileTransferRequestSerializer.class);
-
-    @Override
-    protected FileTransferRequestModel._Fields[] getFieldValues() {
-        return FileTransferRequestModel._Fields.values();
-    }
-
-    @Override
-    protected Class<FileTransferRequestModel> getThriftClass() {
-        return null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileCollectionDao.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileCollectionDao.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileCollectionDao.java
deleted file mode 100644
index c9d29d6..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileCollectionDao.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.dao;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.mongodb.*;
-import com.mongodb.util.JSON;
-import org.apache.airavata.file.manager.core.db.conversion.ModelConversionHelper;
-import org.apache.airavata.file.manager.core.db.utils.MongoUtils;
-import org.apache.airavata.file.manager.cpi.FileManagerConstants;
-import org.apache.airavata.model.file.replica.FileCollectionModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.UUID;
-
-public class FileCollectionDao {
-    private final static Logger logger = LoggerFactory.getLogger(FileCollectionDao.class);
-
-    private static final String FILE_COLLECTION_COLLECTION_NAME = "collection-models";
-    private DBCollection collection;
-    private ModelConversionHelper modelConversionHelper;
-
-    private static final String COLLECTION_ID = "collection_id";
-
-    public FileCollectionDao() throws IOException {
-        collection = MongoUtils.getFileManagerRegistry().getCollection(FILE_COLLECTION_COLLECTION_NAME);
-        modelConversionHelper = new ModelConversionHelper();
-        collection.dropIndexes();
-        initIndexes();
-    }
-
-    /**
-     * If indexes are already defined this will simply ignore them
-     */
-    private void initIndexes() {
-        collection.createIndex(new BasicDBObject(COLLECTION_ID, 1), new BasicDBObject("unique", true));
-    }
-
-    public String createFileCollection(FileCollectionModel fileCollectionModel) throws JsonProcessingException {
-        fileCollectionModel.setCollectionId(FileManagerConstants.AIRAVATA_COLLECTION_ID_PREFIX + UUID.randomUUID().toString());
-        WriteResult result = collection.insert((DBObject) JSON.parse(
-                modelConversionHelper.serializeObject(fileCollectionModel)));
-        logger.debug("No of inserted results " + result.getN());
-        return fileCollectionModel.getCollectionId();
-    }
-
-    public void updateFileCollection(FileCollectionModel fileCollectionModel) throws JsonProcessingException {
-        DBObject query = BasicDBObjectBuilder.start().add(
-                COLLECTION_ID, fileCollectionModel.getCollectionId()).get();
-        WriteResult result = collection.update(query, (DBObject) JSON.parse(
-                modelConversionHelper.serializeObject(fileCollectionModel)));
-        logger.debug("No of updated results " + result.getN());
-    }
-
-    public void deleteFileCollection(String collectionId){
-        DBObject query = BasicDBObjectBuilder.start().add(
-                COLLECTION_ID,collectionId).get();
-        WriteResult result = collection.remove(query);
-        logger.debug("No of removed file model requests " + result.getN());
-    }
-
-    public FileCollectionModel getFileCollection(String collectionId) throws IOException {
-
-        DBObject criteria = new BasicDBObject(COLLECTION_ID, collectionId);
-        DBObject doc = collection.findOne(criteria);
-        if (doc != null) {
-            String json = doc.toString();
-            return (FileCollectionModel) modelConversionHelper.deserializeObject(
-                    FileCollectionModel.class, json);
-        }
-        return null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileDao.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileDao.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileDao.java
deleted file mode 100644
index ac6a1df..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileDao.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.dao;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.mongodb.*;
-import com.mongodb.util.JSON;
-import org.apache.airavata.file.manager.core.db.conversion.ModelConversionHelper;
-import org.apache.airavata.file.manager.core.db.utils.MongoUtils;
-import org.apache.airavata.file.manager.cpi.FileManagerConstants;
-import org.apache.airavata.model.file.replica.FileModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.UUID;
-
-public class FileDao {
-    private final static Logger logger = LoggerFactory.getLogger(FileDao.class);
-
-    private static final String FILE_MODELS_COLLECTION_NAME = "file-models";
-    private DBCollection collection;
-    private ModelConversionHelper modelConversionHelper;
-
-    private static final String FILE_ID = "file_id";
-
-    public FileDao() throws IOException {
-        collection = MongoUtils.getFileManagerRegistry().getCollection(FILE_MODELS_COLLECTION_NAME);
-        modelConversionHelper = new ModelConversionHelper();
-        collection.dropIndexes();
-        initIndexes();
-    }
-
-    /**
-     * If indexes are already defined this will simply ignore them
-     */
-    private void initIndexes() {
-        collection.createIndex(new BasicDBObject(FILE_ID, 1), new BasicDBObject("unique", true));
-    }
-
-    public String createFile(FileModel fileModel) throws JsonProcessingException {
-        fileModel.setFileId(FileManagerConstants.AIRAVATA_FILE_ID_PREFIX + UUID.randomUUID().toString());
-        WriteResult result = collection.insert((DBObject) JSON.parse(
-                modelConversionHelper.serializeObject(fileModel)));
-        logger.debug("No of inserted results " + result.getN());
-        return fileModel.getFileId();
-    }
-
-    public void updateFile(FileModel fileModel) throws JsonProcessingException {
-        DBObject query = BasicDBObjectBuilder.start().add(
-                FILE_ID, fileModel.getFileId()).get();
-        WriteResult result = collection.update(query, (DBObject) JSON.parse(
-                modelConversionHelper.serializeObject(fileModel)));
-        logger.debug("No of updated results " + result.getN());
-    }
-
-    public void deleteFile(String fileId){
-        DBObject query = BasicDBObjectBuilder.start().add(
-                FILE_ID,fileId).get();
-        WriteResult result = collection.remove(query);
-        logger.debug("No of removed file model requests " + result.getN());
-    }
-
-    public FileModel getFile(String fileId) throws IOException {
-
-        DBObject criteria = new BasicDBObject(FILE_ID, fileId);
-        DBObject doc = collection.findOne(criteria);
-        if (doc != null) {
-            String json = doc.toString();
-            return (FileModel) modelConversionHelper.deserializeObject(
-                    FileModel.class, json);
-        }
-        return null;
-    }
-}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
new file mode 100644
index 0000000..a50b11a
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
@@ -0,0 +1,545 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * This exception is thrown by Airavata Services when a call fails as a result of
+ * a problem in the service that could not be changed through client's action.
+ * 
+ * airavataErrorType:  The message type indicating the error that occurred.
+ *   must be one of the values of AiravataErrorType.
+ * 
+ * message:  This may contain additional information about the error
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class AiravataSystemException extends TException implements org.apache.thrift.TBase<AiravataSystemException, AiravataSystemException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataSystemException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataSystemException");
+
+  private static final org.apache.thrift.protocol.TField AIRAVATA_ERROR_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataErrorType", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message", org.apache.thrift.protocol.TType.STRING, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new AiravataSystemExceptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new AiravataSystemExceptionTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see AiravataErrorType
+   */
+  public AiravataErrorType airavataErrorType; // required
+  public String message; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see AiravataErrorType
+     */
+    AIRAVATA_ERROR_TYPE((short)1, "airavataErrorType"),
+    MESSAGE((short)2, "message");
+
+    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_ERROR_TYPE
+          return AIRAVATA_ERROR_TYPE;
+        case 2: // MESSAGE
+          return MESSAGE;
+        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 _Fields optionals[] = {_Fields.MESSAGE};
+  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_ERROR_TYPE, new org.apache.thrift.meta_data.FieldMetaData("airavataErrorType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, AiravataErrorType.class)));
+    tmpMap.put(_Fields.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message", 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(AiravataSystemException.class, metaDataMap);
+  }
+
+  public AiravataSystemException() {
+  }
+
+  public AiravataSystemException(
+    AiravataErrorType airavataErrorType)
+  {
+    this();
+    this.airavataErrorType = airavataErrorType;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public AiravataSystemException(AiravataSystemException other) {
+    if (other.isSetAiravataErrorType()) {
+      this.airavataErrorType = other.airavataErrorType;
+    }
+    if (other.isSetMessage()) {
+      this.message = other.message;
+    }
+  }
+
+  public AiravataSystemException deepCopy() {
+    return new AiravataSystemException(this);
+  }
+
+  @Override
+  public void clear() {
+    this.airavataErrorType = null;
+    this.message = null;
+  }
+
+  /**
+   * 
+   * @see AiravataErrorType
+   */
+  public AiravataErrorType getAiravataErrorType() {
+    return this.airavataErrorType;
+  }
+
+  /**
+   * 
+   * @see AiravataErrorType
+   */
+  public AiravataSystemException setAiravataErrorType(AiravataErrorType airavataErrorType) {
+    this.airavataErrorType = airavataErrorType;
+    return this;
+  }
+
+  public void unsetAiravataErrorType() {
+    this.airavataErrorType = null;
+  }
+
+  /** Returns true if field airavataErrorType is set (has been assigned a value) and false otherwise */
+  public boolean isSetAiravataErrorType() {
+    return this.airavataErrorType != null;
+  }
+
+  public void setAiravataErrorTypeIsSet(boolean value) {
+    if (!value) {
+      this.airavataErrorType = null;
+    }
+  }
+
+  public String getMessage() {
+    return this.message;
+  }
+
+  public AiravataSystemException setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  public void unsetMessage() {
+    this.message = null;
+  }
+
+  /** Returns true if field message is set (has been assigned a value) and false otherwise */
+  public boolean isSetMessage() {
+    return this.message != null;
+  }
+
+  public void setMessageIsSet(boolean value) {
+    if (!value) {
+      this.message = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case AIRAVATA_ERROR_TYPE:
+      if (value == null) {
+        unsetAiravataErrorType();
+      } else {
+        setAiravataErrorType((AiravataErrorType)value);
+      }
+      break;
+
+    case MESSAGE:
+      if (value == null) {
+        unsetMessage();
+      } else {
+        setMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case AIRAVATA_ERROR_TYPE:
+      return getAiravataErrorType();
+
+    case MESSAGE:
+      return getMessage();
+
+    }
+    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_ERROR_TYPE:
+      return isSetAiravataErrorType();
+    case MESSAGE:
+      return isSetMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof AiravataSystemException)
+      return this.equals((AiravataSystemException)that);
+    return false;
+  }
+
+  public boolean equals(AiravataSystemException that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_airavataErrorType = true && this.isSetAiravataErrorType();
+    boolean that_present_airavataErrorType = true && that.isSetAiravataErrorType();
+    if (this_present_airavataErrorType || that_present_airavataErrorType) {
+      if (!(this_present_airavataErrorType && that_present_airavataErrorType))
+        return false;
+      if (!this.airavataErrorType.equals(that.airavataErrorType))
+        return false;
+    }
+
+    boolean this_present_message = true && this.isSetMessage();
+    boolean that_present_message = true && that.isSetMessage();
+    if (this_present_message || that_present_message) {
+      if (!(this_present_message && that_present_message))
+        return false;
+      if (!this.message.equals(that.message))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_airavataErrorType = true && (isSetAiravataErrorType());
+    list.add(present_airavataErrorType);
+    if (present_airavataErrorType)
+      list.add(airavataErrorType.getValue());
+
+    boolean present_message = true && (isSetMessage());
+    list.add(present_message);
+    if (present_message)
+      list.add(message);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(AiravataSystemException other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetAiravataErrorType()).compareTo(other.isSetAiravataErrorType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAiravataErrorType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataErrorType, other.airavataErrorType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMessage()).compareTo(other.isSetMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.message, other.message);
+      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("AiravataSystemException(");
+    boolean first = true;
+
+    sb.append("airavataErrorType:");
+    if (this.airavataErrorType == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.airavataErrorType);
+    }
+    first = false;
+    if (isSetMessage()) {
+      if (!first) sb.append(", ");
+      sb.append("message:");
+      if (this.message == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.message);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (airavataErrorType == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataErrorType' was not present! 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 AiravataSystemExceptionStandardSchemeFactory implements SchemeFactory {
+    public AiravataSystemExceptionStandardScheme getScheme() {
+      return new AiravataSystemExceptionStandardScheme();
+    }
+  }
+
+  private static class AiravataSystemExceptionStandardScheme extends StandardScheme<AiravataSystemException> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, AiravataSystemException 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_ERROR_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.airavataErrorType = org.apache.airavata.model.error.AiravataErrorType.findByValue(iprot.readI32());
+              struct.setAiravataErrorTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.message = iprot.readString();
+              struct.setMessageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, AiravataSystemException struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.airavataErrorType != null) {
+        oprot.writeFieldBegin(AIRAVATA_ERROR_TYPE_FIELD_DESC);
+        oprot.writeI32(struct.airavataErrorType.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.message != null) {
+        if (struct.isSetMessage()) {
+          oprot.writeFieldBegin(MESSAGE_FIELD_DESC);
+          oprot.writeString(struct.message);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class AiravataSystemExceptionTupleSchemeFactory implements SchemeFactory {
+    public AiravataSystemExceptionTupleScheme getScheme() {
+      return new AiravataSystemExceptionTupleScheme();
+    }
+  }
+
+  private static class AiravataSystemExceptionTupleScheme extends TupleScheme<AiravataSystemException> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, AiravataSystemException struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.airavataErrorType.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetMessage()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetMessage()) {
+        oprot.writeString(struct.message);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, AiravataSystemException struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.airavataErrorType = org.apache.airavata.model.error.AiravataErrorType.findByValue(iprot.readI32());
+      struct.setAiravataErrorTypeIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.message = iprot.readString();
+        struct.setMessageIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AuthenticationException.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
new file mode 100644
index 0000000..bd55644
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
@@ -0,0 +1,413 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * This exception is thrown for invalid authentication requests.
+ * 
+ *  message: contains the cause of the authorization failure.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class AuthenticationException extends TException implements org.apache.thrift.TBase<AuthenticationException, AuthenticationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthenticationException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthenticationException");
+
+  private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new AuthenticationExceptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new AuthenticationExceptionTupleSchemeFactory());
+  }
+
+  public String message; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    MESSAGE((short)1, "message");
+
+    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: // MESSAGE
+          return MESSAGE;
+        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
+  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.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(AuthenticationException.class, metaDataMap);
+  }
+
+  public AuthenticationException() {
+  }
+
+  public AuthenticationException(
+    String message)
+  {
+    this();
+    this.message = message;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public AuthenticationException(AuthenticationException other) {
+    if (other.isSetMessage()) {
+      this.message = other.message;
+    }
+  }
+
+  public AuthenticationException deepCopy() {
+    return new AuthenticationException(this);
+  }
+
+  @Override
+  public void clear() {
+    this.message = null;
+  }
+
+  public String getMessage() {
+    return this.message;
+  }
+
+  public AuthenticationException setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  public void unsetMessage() {
+    this.message = null;
+  }
+
+  /** Returns true if field message is set (has been assigned a value) and false otherwise */
+  public boolean isSetMessage() {
+    return this.message != null;
+  }
+
+  public void setMessageIsSet(boolean value) {
+    if (!value) {
+      this.message = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case MESSAGE:
+      if (value == null) {
+        unsetMessage();
+      } else {
+        setMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case MESSAGE:
+      return getMessage();
+
+    }
+    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 MESSAGE:
+      return isSetMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof AuthenticationException)
+      return this.equals((AuthenticationException)that);
+    return false;
+  }
+
+  public boolean equals(AuthenticationException that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_message = true && this.isSetMessage();
+    boolean that_present_message = true && that.isSetMessage();
+    if (this_present_message || that_present_message) {
+      if (!(this_present_message && that_present_message))
+        return false;
+      if (!this.message.equals(that.message))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_message = true && (isSetMessage());
+    list.add(present_message);
+    if (present_message)
+      list.add(message);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(AuthenticationException other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetMessage()).compareTo(other.isSetMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.message, other.message);
+      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("AuthenticationException(");
+    boolean first = true;
+
+    sb.append("message:");
+    if (this.message == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.message);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (message == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'message' was not present! 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 AuthenticationExceptionStandardSchemeFactory implements SchemeFactory {
+    public AuthenticationExceptionStandardScheme getScheme() {
+      return new AuthenticationExceptionStandardScheme();
+    }
+  }
+
+  private static class AuthenticationExceptionStandardScheme extends StandardScheme<AuthenticationException> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, AuthenticationException 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: // MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.message = iprot.readString();
+              struct.setMessageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, AuthenticationException struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.message != null) {
+        oprot.writeFieldBegin(MESSAGE_FIELD_DESC);
+        oprot.writeString(struct.message);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class AuthenticationExceptionTupleSchemeFactory implements SchemeFactory {
+    public AuthenticationExceptionTupleScheme getScheme() {
+      return new AuthenticationExceptionTupleScheme();
+    }
+  }
+
+  private static class AuthenticationExceptionTupleScheme extends TupleScheme<AuthenticationException> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, AuthenticationException struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.message);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, AuthenticationException struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.message = iprot.readString();
+      struct.setMessageIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AuthorizationException.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
new file mode 100644
index 0000000..14e6a8b
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
@@ -0,0 +1,413 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * This exception is thrown for invalid authorization requests such user does not have acces to an aplication or resource.
+ * 
+ *  message: contains the authorization failure message
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class AuthorizationException extends TException implements org.apache.thrift.TBase<AuthorizationException, AuthorizationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthorizationException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthorizationException");
+
+  private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new AuthorizationExceptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new AuthorizationExceptionTupleSchemeFactory());
+  }
+
+  public String message; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    MESSAGE((short)1, "message");
+
+    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: // MESSAGE
+          return MESSAGE;
+        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
+  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.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(AuthorizationException.class, metaDataMap);
+  }
+
+  public AuthorizationException() {
+  }
+
+  public AuthorizationException(
+    String message)
+  {
+    this();
+    this.message = message;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public AuthorizationException(AuthorizationException other) {
+    if (other.isSetMessage()) {
+      this.message = other.message;
+    }
+  }
+
+  public AuthorizationException deepCopy() {
+    return new AuthorizationException(this);
+  }
+
+  @Override
+  public void clear() {
+    this.message = null;
+  }
+
+  public String getMessage() {
+    return this.message;
+  }
+
+  public AuthorizationException setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  public void unsetMessage() {
+    this.message = null;
+  }
+
+  /** Returns true if field message is set (has been assigned a value) and false otherwise */
+  public boolean isSetMessage() {
+    return this.message != null;
+  }
+
+  public void setMessageIsSet(boolean value) {
+    if (!value) {
+      this.message = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case MESSAGE:
+      if (value == null) {
+        unsetMessage();
+      } else {
+        setMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case MESSAGE:
+      return getMessage();
+
+    }
+    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 MESSAGE:
+      return isSetMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof AuthorizationException)
+      return this.equals((AuthorizationException)that);
+    return false;
+  }
+
+  public boolean equals(AuthorizationException that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_message = true && this.isSetMessage();
+    boolean that_present_message = true && that.isSetMessage();
+    if (this_present_message || that_present_message) {
+      if (!(this_present_message && that_present_message))
+        return false;
+      if (!this.message.equals(that.message))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_message = true && (isSetMessage());
+    list.add(present_message);
+    if (present_message)
+      list.add(message);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(AuthorizationException other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetMessage()).compareTo(other.isSetMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.message, other.message);
+      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("AuthorizationException(");
+    boolean first = true;
+
+    sb.append("message:");
+    if (this.message == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.message);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (message == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'message' was not present! 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 AuthorizationExceptionStandardSchemeFactory implements SchemeFactory {
+    public AuthorizationExceptionStandardScheme getScheme() {
+      return new AuthorizationExceptionStandardScheme();
+    }
+  }
+
+  private static class AuthorizationExceptionStandardScheme extends StandardScheme<AuthorizationException> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, AuthorizationException 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: // MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.message = iprot.readString();
+              struct.setMessageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, AuthorizationException struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.message != null) {
+        oprot.writeFieldBegin(MESSAGE_FIELD_DESC);
+        oprot.writeString(struct.message);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class AuthorizationExceptionTupleSchemeFactory implements SchemeFactory {
+    public AuthorizationExceptionTupleScheme getScheme() {
+      return new AuthorizationExceptionTupleScheme();
+    }
+  }
+
+  private static class AuthorizationExceptionTupleScheme extends TupleScheme<AuthorizationException> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, AuthorizationException struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.message);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, AuthorizationException struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.message = iprot.readString();
+      struct.setMessageIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
new file mode 100644
index 0000000..f8d2c00
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
@@ -0,0 +1,415 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * This exception is thrown when a client asks to perform an operation on an experiment that does not exist.
+ * 
+ * identifier:  A description of the experiment that was not found on the server.
+ * 
+ * key:  The value passed from the client in the identifier, which was not found.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ExperimentNotFoundException extends TException implements org.apache.thrift.TBase<ExperimentNotFoundException, ExperimentNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentNotFoundException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentNotFoundException");
+
+  private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ExperimentNotFoundExceptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ExperimentNotFoundExceptionTupleSchemeFactory());
+  }
+
+  public String message; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    MESSAGE((short)1, "message");
+
+    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: // MESSAGE
+          return MESSAGE;
+        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
+  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.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExperimentNotFoundException.class, metaDataMap);
+  }
+
+  public ExperimentNotFoundException() {
+  }
+
+  public ExperimentNotFoundException(
+    String message)
+  {
+    this();
+    this.message = message;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ExperimentNotFoundException(ExperimentNotFoundException other) {
+    if (other.isSetMessage()) {
+      this.message = other.message;
+    }
+  }
+
+  public ExperimentNotFoundException deepCopy() {
+    return new ExperimentNotFoundException(this);
+  }
+
+  @Override
+  public void clear() {
+    this.message = null;
+  }
+
+  public String getMessage() {
+    return this.message;
+  }
+
+  public ExperimentNotFoundException setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  public void unsetMessage() {
+    this.message = null;
+  }
+
+  /** Returns true if field message is set (has been assigned a value) and false otherwise */
+  public boolean isSetMessage() {
+    return this.message != null;
+  }
+
+  public void setMessageIsSet(boolean value) {
+    if (!value) {
+      this.message = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case MESSAGE:
+      if (value == null) {
+        unsetMessage();
+      } else {
+        setMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case MESSAGE:
+      return getMessage();
+
+    }
+    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 MESSAGE:
+      return isSetMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ExperimentNotFoundException)
+      return this.equals((ExperimentNotFoundException)that);
+    return false;
+  }
+
+  public boolean equals(ExperimentNotFoundException that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_message = true && this.isSetMessage();
+    boolean that_present_message = true && that.isSetMessage();
+    if (this_present_message || that_present_message) {
+      if (!(this_present_message && that_present_message))
+        return false;
+      if (!this.message.equals(that.message))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_message = true && (isSetMessage());
+    list.add(present_message);
+    if (present_message)
+      list.add(message);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ExperimentNotFoundException other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetMessage()).compareTo(other.isSetMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.message, other.message);
+      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("ExperimentNotFoundException(");
+    boolean first = true;
+
+    sb.append("message:");
+    if (this.message == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.message);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (message == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'message' was not present! 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 ExperimentNotFoundExceptionStandardSchemeFactory implements SchemeFactory {
+    public ExperimentNotFoundExceptionStandardScheme getScheme() {
+      return new ExperimentNotFoundExceptionStandardScheme();
+    }
+  }
+
+  private static class ExperimentNotFoundExceptionStandardScheme extends StandardScheme<ExperimentNotFoundException> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ExperimentNotFoundException 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: // MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.message = iprot.readString();
+              struct.setMessageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ExperimentNotFoundException struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.message != null) {
+        oprot.writeFieldBegin(MESSAGE_FIELD_DESC);
+        oprot.writeString(struct.message);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ExperimentNotFoundExceptionTupleSchemeFactory implements SchemeFactory {
+    public ExperimentNotFoundExceptionTupleScheme getScheme() {
+      return new ExperimentNotFoundExceptionTupleScheme();
+    }
+  }
+
+  private static class ExperimentNotFoundExceptionTupleScheme extends TupleScheme<ExperimentNotFoundException> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ExperimentNotFoundException struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.message);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ExperimentNotFoundException struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.message = iprot.readString();
+      struct.setMessageIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
new file mode 100644
index 0000000..ed591fb
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
@@ -0,0 +1,414 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * This exception is thrown for invalid requests that occur from any reasons like required input parameters are missing,
+ *  or a parameter is malformed.
+ * 
+ *  message: contains the associated error message.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class InvalidRequestException extends TException implements org.apache.thrift.TBase<InvalidRequestException, InvalidRequestException._Fields>, java.io.Serializable, Cloneable, Comparable<InvalidRequestException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidRequestException");
+
+  private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new InvalidRequestExceptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new InvalidRequestExceptionTupleSchemeFactory());
+  }
+
+  public String message; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    MESSAGE((short)1, "message");
+
+    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: // MESSAGE
+          return MESSAGE;
+        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
+  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.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InvalidRequestException.class, metaDataMap);
+  }
+
+  public InvalidRequestException() {
+  }
+
+  public InvalidRequestException(
+    String message)
+  {
+    this();
+    this.message = message;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public InvalidRequestException(InvalidRequestException other) {
+    if (other.isSetMessage()) {
+      this.message = other.message;
+    }
+  }
+
+  public InvalidRequestException deepCopy() {
+    return new InvalidRequestException(this);
+  }
+
+  @Override
+  public void clear() {
+    this.message = null;
+  }
+
+  public String getMessage() {
+    return this.message;
+  }
+
+  public InvalidRequestException setMessage(String message) {
+    this.message = message;
+    return this;
+  }
+
+  public void unsetMessage() {
+    this.message = null;
+  }
+
+  /** Returns true if field message is set (has been assigned a value) and false otherwise */
+  public boolean isSetMessage() {
+    return this.message != null;
+  }
+
+  public void setMessageIsSet(boolean value) {
+    if (!value) {
+      this.message = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case MESSAGE:
+      if (value == null) {
+        unsetMessage();
+      } else {
+        setMessage((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case MESSAGE:
+      return getMessage();
+
+    }
+    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 MESSAGE:
+      return isSetMessage();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof InvalidRequestException)
+      return this.equals((InvalidRequestException)that);
+    return false;
+  }
+
+  public boolean equals(InvalidRequestException that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_message = true && this.isSetMessage();
+    boolean that_present_message = true && that.isSetMessage();
+    if (this_present_message || that_present_message) {
+      if (!(this_present_message && that_present_message))
+        return false;
+      if (!this.message.equals(that.message))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_message = true && (isSetMessage());
+    list.add(present_message);
+    if (present_message)
+      list.add(message);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(InvalidRequestException other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetMessage()).compareTo(other.isSetMessage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMessage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.message, other.message);
+      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("InvalidRequestException(");
+    boolean first = true;
+
+    sb.append("message:");
+    if (this.message == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.message);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (message == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'message' was not present! 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 InvalidRequestExceptionStandardSchemeFactory implements SchemeFactory {
+    public InvalidRequestExceptionStandardScheme getScheme() {
+      return new InvalidRequestExceptionStandardScheme();
+    }
+  }
+
+  private static class InvalidRequestExceptionStandardScheme extends StandardScheme<InvalidRequestException> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, InvalidRequestException 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: // MESSAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.message = iprot.readString();
+              struct.setMessageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, InvalidRequestException struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.message != null) {
+        oprot.writeFieldBegin(MESSAGE_FIELD_DESC);
+        oprot.writeString(struct.message);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class InvalidRequestExceptionTupleSchemeFactory implements SchemeFactory {
+    public InvalidRequestExceptionTupleScheme getScheme() {
+      return new InvalidRequestExceptionTupleScheme();
+    }
+  }
+
+  private static class InvalidRequestExceptionTupleScheme extends TupleScheme<InvalidRequestException> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, InvalidRequestException struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.message);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, InvalidRequestException struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.message = iprot.readString();
+      struct.setMessageIsSet(true);
+    }
+  }
+
+}
+


[11/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileModel.java
deleted file mode 100644
index bd1d357..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileModel.java
+++ /dev/null
@@ -1,1879 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.replica;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
-public class FileModel implements org.apache.thrift.TBase<FileModel, FileModel._Fields>, java.io.Serializable, Cloneable, Comparable<FileModel> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("FileModel");
-
-  private static final org.apache.thrift.protocol.TField FILE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("fileId", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("username", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField SHARED_USERS_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedUsers", org.apache.thrift.protocol.TType.LIST, (short)4);
-  private static final org.apache.thrift.protocol.TField SHARED_PUBLIC_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedPublic", org.apache.thrift.protocol.TType.BOOL, (short)5);
-  private static final org.apache.thrift.protocol.TField FILE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("fileName", org.apache.thrift.protocol.TType.STRING, (short)6);
-  private static final org.apache.thrift.protocol.TField FILE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("fileDescription", org.apache.thrift.protocol.TType.STRING, (short)7);
-  private static final org.apache.thrift.protocol.TField SHA256_CHECKSUM_FIELD_DESC = new org.apache.thrift.protocol.TField("sha256Checksum", org.apache.thrift.protocol.TType.STRING, (short)8);
-  private static final org.apache.thrift.protocol.TField FILE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("fileType", org.apache.thrift.protocol.TType.I32, (short)9);
-  private static final org.apache.thrift.protocol.TField FILE_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("fileSize", org.apache.thrift.protocol.TType.I32, (short)10);
-  private static final org.apache.thrift.protocol.TField DATA_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("dataType", org.apache.thrift.protocol.TType.STRING, (short)11);
-  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)12);
-  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedTime", org.apache.thrift.protocol.TType.I64, (short)13);
-  private static final org.apache.thrift.protocol.TField FILE_REPLICAS_FIELD_DESC = new org.apache.thrift.protocol.TField("fileReplicas", org.apache.thrift.protocol.TType.LIST, (short)14);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new FileModelStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new FileModelTupleSchemeFactory());
-  }
-
-  private String fileId; // optional
-  private String gatewayId; // optional
-  private String username; // optional
-  private List<String> sharedUsers; // optional
-  private boolean sharedPublic; // optional
-  private String fileName; // optional
-  private String fileDescription; // optional
-  private String sha256Checksum; // optional
-  private FileModelType fileType; // optional
-  private int fileSize; // optional
-  private String dataType; // optional
-  private long creationTime; // optional
-  private long lastModifiedTime; // optional
-  private List<FileReplicaModel> fileReplicas; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    FILE_ID((short)1, "fileId"),
-    GATEWAY_ID((short)2, "gatewayId"),
-    USERNAME((short)3, "username"),
-    SHARED_USERS((short)4, "sharedUsers"),
-    SHARED_PUBLIC((short)5, "sharedPublic"),
-    FILE_NAME((short)6, "fileName"),
-    FILE_DESCRIPTION((short)7, "fileDescription"),
-    SHA256_CHECKSUM((short)8, "sha256Checksum"),
-    /**
-     * 
-     * @see FileModelType
-     */
-    FILE_TYPE((short)9, "fileType"),
-    FILE_SIZE((short)10, "fileSize"),
-    DATA_TYPE((short)11, "dataType"),
-    CREATION_TIME((short)12, "creationTime"),
-    LAST_MODIFIED_TIME((short)13, "lastModifiedTime"),
-    FILE_REPLICAS((short)14, "fileReplicas");
-
-    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: // FILE_ID
-          return FILE_ID;
-        case 2: // GATEWAY_ID
-          return GATEWAY_ID;
-        case 3: // USERNAME
-          return USERNAME;
-        case 4: // SHARED_USERS
-          return SHARED_USERS;
-        case 5: // SHARED_PUBLIC
-          return SHARED_PUBLIC;
-        case 6: // FILE_NAME
-          return FILE_NAME;
-        case 7: // FILE_DESCRIPTION
-          return FILE_DESCRIPTION;
-        case 8: // SHA256_CHECKSUM
-          return SHA256_CHECKSUM;
-        case 9: // FILE_TYPE
-          return FILE_TYPE;
-        case 10: // FILE_SIZE
-          return FILE_SIZE;
-        case 11: // DATA_TYPE
-          return DATA_TYPE;
-        case 12: // CREATION_TIME
-          return CREATION_TIME;
-        case 13: // LAST_MODIFIED_TIME
-          return LAST_MODIFIED_TIME;
-        case 14: // FILE_REPLICAS
-          return FILE_REPLICAS;
-        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 __SHAREDPUBLIC_ISSET_ID = 0;
-  private static final int __FILESIZE_ISSET_ID = 1;
-  private static final int __CREATIONTIME_ISSET_ID = 2;
-  private static final int __LASTMODIFIEDTIME_ISSET_ID = 3;
-  private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.FILE_ID,_Fields.GATEWAY_ID,_Fields.USERNAME,_Fields.SHARED_USERS,_Fields.SHARED_PUBLIC,_Fields.FILE_NAME,_Fields.FILE_DESCRIPTION,_Fields.SHA256_CHECKSUM,_Fields.FILE_TYPE,_Fields.FILE_SIZE,_Fields.DATA_TYPE,_Fields.CREATION_TIME,_Fields.LAST_MODIFIED_TIME,_Fields.FILE_REPLICAS};
-  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.FILE_ID, new org.apache.thrift.meta_data.FieldMetaData("fileId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.USERNAME, new org.apache.thrift.meta_data.FieldMetaData("username", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SHARED_USERS, new org.apache.thrift.meta_data.FieldMetaData("sharedUsers", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.SHARED_PUBLIC, new org.apache.thrift.meta_data.FieldMetaData("sharedPublic", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
-    tmpMap.put(_Fields.FILE_NAME, new org.apache.thrift.meta_data.FieldMetaData("fileName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.FILE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("fileDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.SHA256_CHECKSUM, new org.apache.thrift.meta_data.FieldMetaData("sha256Checksum", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.FILE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("fileType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, FileModelType.class)));
-    tmpMap.put(_Fields.FILE_SIZE, new org.apache.thrift.meta_data.FieldMetaData("fileSize", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
-    tmpMap.put(_Fields.DATA_TYPE, new org.apache.thrift.meta_data.FieldMetaData("dataType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.LAST_MODIFIED_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.FILE_REPLICAS, new org.apache.thrift.meta_data.FieldMetaData("fileReplicas", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT            , "FileReplicaModel"))));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(FileModel.class, metaDataMap);
-  }
-
-  public FileModel() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public FileModel(FileModel other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetFileId()) {
-      this.fileId = other.fileId;
-    }
-    if (other.isSetGatewayId()) {
-      this.gatewayId = other.gatewayId;
-    }
-    if (other.isSetUsername()) {
-      this.username = other.username;
-    }
-    if (other.isSetSharedUsers()) {
-      List<String> __this__sharedUsers = new ArrayList<String>(other.sharedUsers);
-      this.sharedUsers = __this__sharedUsers;
-    }
-    this.sharedPublic = other.sharedPublic;
-    if (other.isSetFileName()) {
-      this.fileName = other.fileName;
-    }
-    if (other.isSetFileDescription()) {
-      this.fileDescription = other.fileDescription;
-    }
-    if (other.isSetSha256Checksum()) {
-      this.sha256Checksum = other.sha256Checksum;
-    }
-    if (other.isSetFileType()) {
-      this.fileType = other.fileType;
-    }
-    this.fileSize = other.fileSize;
-    if (other.isSetDataType()) {
-      this.dataType = other.dataType;
-    }
-    this.creationTime = other.creationTime;
-    this.lastModifiedTime = other.lastModifiedTime;
-    if (other.isSetFileReplicas()) {
-      List<FileReplicaModel> __this__fileReplicas = new ArrayList<FileReplicaModel>(other.fileReplicas.size());
-      for (FileReplicaModel other_element : other.fileReplicas) {
-        __this__fileReplicas.add(other_element);
-      }
-      this.fileReplicas = __this__fileReplicas;
-    }
-  }
-
-  public FileModel deepCopy() {
-    return new FileModel(this);
-  }
-
-  @Override
-  public void clear() {
-    this.fileId = null;
-    this.gatewayId = null;
-    this.username = null;
-    this.sharedUsers = null;
-    setSharedPublicIsSet(false);
-    this.sharedPublic = false;
-    this.fileName = null;
-    this.fileDescription = null;
-    this.sha256Checksum = null;
-    this.fileType = null;
-    setFileSizeIsSet(false);
-    this.fileSize = 0;
-    this.dataType = null;
-    setCreationTimeIsSet(false);
-    this.creationTime = 0;
-    setLastModifiedTimeIsSet(false);
-    this.lastModifiedTime = 0;
-    this.fileReplicas = null;
-  }
-
-  public String getFileId() {
-    return this.fileId;
-  }
-
-  public void setFileId(String fileId) {
-    this.fileId = fileId;
-  }
-
-  public void unsetFileId() {
-    this.fileId = null;
-  }
-
-  /** Returns true if field fileId is set (has been assigned a value) and false otherwise */
-  public boolean isSetFileId() {
-    return this.fileId != null;
-  }
-
-  public void setFileIdIsSet(boolean value) {
-    if (!value) {
-      this.fileId = null;
-    }
-  }
-
-  public String getGatewayId() {
-    return this.gatewayId;
-  }
-
-  public void setGatewayId(String gatewayId) {
-    this.gatewayId = gatewayId;
-  }
-
-  public void unsetGatewayId() {
-    this.gatewayId = null;
-  }
-
-  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
-  public boolean isSetGatewayId() {
-    return this.gatewayId != null;
-  }
-
-  public void setGatewayIdIsSet(boolean value) {
-    if (!value) {
-      this.gatewayId = null;
-    }
-  }
-
-  public String getUsername() {
-    return this.username;
-  }
-
-  public void setUsername(String username) {
-    this.username = username;
-  }
-
-  public void unsetUsername() {
-    this.username = null;
-  }
-
-  /** Returns true if field username is set (has been assigned a value) and false otherwise */
-  public boolean isSetUsername() {
-    return this.username != null;
-  }
-
-  public void setUsernameIsSet(boolean value) {
-    if (!value) {
-      this.username = null;
-    }
-  }
-
-  public int getSharedUsersSize() {
-    return (this.sharedUsers == null) ? 0 : this.sharedUsers.size();
-  }
-
-  public java.util.Iterator<String> getSharedUsersIterator() {
-    return (this.sharedUsers == null) ? null : this.sharedUsers.iterator();
-  }
-
-  public void addToSharedUsers(String elem) {
-    if (this.sharedUsers == null) {
-      this.sharedUsers = new ArrayList<String>();
-    }
-    this.sharedUsers.add(elem);
-  }
-
-  public List<String> getSharedUsers() {
-    return this.sharedUsers;
-  }
-
-  public void setSharedUsers(List<String> sharedUsers) {
-    this.sharedUsers = sharedUsers;
-  }
-
-  public void unsetSharedUsers() {
-    this.sharedUsers = null;
-  }
-
-  /** Returns true if field sharedUsers is set (has been assigned a value) and false otherwise */
-  public boolean isSetSharedUsers() {
-    return this.sharedUsers != null;
-  }
-
-  public void setSharedUsersIsSet(boolean value) {
-    if (!value) {
-      this.sharedUsers = null;
-    }
-  }
-
-  public boolean isSharedPublic() {
-    return this.sharedPublic;
-  }
-
-  public void setSharedPublic(boolean sharedPublic) {
-    this.sharedPublic = sharedPublic;
-    setSharedPublicIsSet(true);
-  }
-
-  public void unsetSharedPublic() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
-  }
-
-  /** Returns true if field sharedPublic is set (has been assigned a value) and false otherwise */
-  public boolean isSetSharedPublic() {
-    return EncodingUtils.testBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID);
-  }
-
-  public void setSharedPublicIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SHAREDPUBLIC_ISSET_ID, value);
-  }
-
-  public String getFileName() {
-    return this.fileName;
-  }
-
-  public void setFileName(String fileName) {
-    this.fileName = fileName;
-  }
-
-  public void unsetFileName() {
-    this.fileName = null;
-  }
-
-  /** Returns true if field fileName is set (has been assigned a value) and false otherwise */
-  public boolean isSetFileName() {
-    return this.fileName != null;
-  }
-
-  public void setFileNameIsSet(boolean value) {
-    if (!value) {
-      this.fileName = null;
-    }
-  }
-
-  public String getFileDescription() {
-    return this.fileDescription;
-  }
-
-  public void setFileDescription(String fileDescription) {
-    this.fileDescription = fileDescription;
-  }
-
-  public void unsetFileDescription() {
-    this.fileDescription = null;
-  }
-
-  /** Returns true if field fileDescription is set (has been assigned a value) and false otherwise */
-  public boolean isSetFileDescription() {
-    return this.fileDescription != null;
-  }
-
-  public void setFileDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.fileDescription = null;
-    }
-  }
-
-  public String getSha256Checksum() {
-    return this.sha256Checksum;
-  }
-
-  public void setSha256Checksum(String sha256Checksum) {
-    this.sha256Checksum = sha256Checksum;
-  }
-
-  public void unsetSha256Checksum() {
-    this.sha256Checksum = null;
-  }
-
-  /** Returns true if field sha256Checksum is set (has been assigned a value) and false otherwise */
-  public boolean isSetSha256Checksum() {
-    return this.sha256Checksum != null;
-  }
-
-  public void setSha256ChecksumIsSet(boolean value) {
-    if (!value) {
-      this.sha256Checksum = null;
-    }
-  }
-
-  /**
-   * 
-   * @see FileModelType
-   */
-  public FileModelType getFileType() {
-    return this.fileType;
-  }
-
-  /**
-   * 
-   * @see FileModelType
-   */
-  public void setFileType(FileModelType fileType) {
-    this.fileType = fileType;
-  }
-
-  public void unsetFileType() {
-    this.fileType = null;
-  }
-
-  /** Returns true if field fileType is set (has been assigned a value) and false otherwise */
-  public boolean isSetFileType() {
-    return this.fileType != null;
-  }
-
-  public void setFileTypeIsSet(boolean value) {
-    if (!value) {
-      this.fileType = null;
-    }
-  }
-
-  public int getFileSize() {
-    return this.fileSize;
-  }
-
-  public void setFileSize(int fileSize) {
-    this.fileSize = fileSize;
-    setFileSizeIsSet(true);
-  }
-
-  public void unsetFileSize() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __FILESIZE_ISSET_ID);
-  }
-
-  /** Returns true if field fileSize is set (has been assigned a value) and false otherwise */
-  public boolean isSetFileSize() {
-    return EncodingUtils.testBit(__isset_bitfield, __FILESIZE_ISSET_ID);
-  }
-
-  public void setFileSizeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __FILESIZE_ISSET_ID, value);
-  }
-
-  public String getDataType() {
-    return this.dataType;
-  }
-
-  public void setDataType(String dataType) {
-    this.dataType = dataType;
-  }
-
-  public void unsetDataType() {
-    this.dataType = null;
-  }
-
-  /** Returns true if field dataType is set (has been assigned a value) and false otherwise */
-  public boolean isSetDataType() {
-    return this.dataType != null;
-  }
-
-  public void setDataTypeIsSet(boolean value) {
-    if (!value) {
-      this.dataType = 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 long getLastModifiedTime() {
-    return this.lastModifiedTime;
-  }
-
-  public void setLastModifiedTime(long lastModifiedTime) {
-    this.lastModifiedTime = lastModifiedTime;
-    setLastModifiedTimeIsSet(true);
-  }
-
-  public void unsetLastModifiedTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
-  }
-
-  /** Returns true if field lastModifiedTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetLastModifiedTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
-  }
-
-  public void setLastModifiedTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID, value);
-  }
-
-  public int getFileReplicasSize() {
-    return (this.fileReplicas == null) ? 0 : this.fileReplicas.size();
-  }
-
-  public java.util.Iterator<FileReplicaModel> getFileReplicasIterator() {
-    return (this.fileReplicas == null) ? null : this.fileReplicas.iterator();
-  }
-
-  public void addToFileReplicas(FileReplicaModel elem) {
-    if (this.fileReplicas == null) {
-      this.fileReplicas = new ArrayList<FileReplicaModel>();
-    }
-    this.fileReplicas.add(elem);
-  }
-
-  public List<FileReplicaModel> getFileReplicas() {
-    return this.fileReplicas;
-  }
-
-  public void setFileReplicas(List<FileReplicaModel> fileReplicas) {
-    this.fileReplicas = fileReplicas;
-  }
-
-  public void unsetFileReplicas() {
-    this.fileReplicas = null;
-  }
-
-  /** Returns true if field fileReplicas is set (has been assigned a value) and false otherwise */
-  public boolean isSetFileReplicas() {
-    return this.fileReplicas != null;
-  }
-
-  public void setFileReplicasIsSet(boolean value) {
-    if (!value) {
-      this.fileReplicas = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case FILE_ID:
-      if (value == null) {
-        unsetFileId();
-      } else {
-        setFileId((String)value);
-      }
-      break;
-
-    case GATEWAY_ID:
-      if (value == null) {
-        unsetGatewayId();
-      } else {
-        setGatewayId((String)value);
-      }
-      break;
-
-    case USERNAME:
-      if (value == null) {
-        unsetUsername();
-      } else {
-        setUsername((String)value);
-      }
-      break;
-
-    case SHARED_USERS:
-      if (value == null) {
-        unsetSharedUsers();
-      } else {
-        setSharedUsers((List<String>)value);
-      }
-      break;
-
-    case SHARED_PUBLIC:
-      if (value == null) {
-        unsetSharedPublic();
-      } else {
-        setSharedPublic((Boolean)value);
-      }
-      break;
-
-    case FILE_NAME:
-      if (value == null) {
-        unsetFileName();
-      } else {
-        setFileName((String)value);
-      }
-      break;
-
-    case FILE_DESCRIPTION:
-      if (value == null) {
-        unsetFileDescription();
-      } else {
-        setFileDescription((String)value);
-      }
-      break;
-
-    case SHA256_CHECKSUM:
-      if (value == null) {
-        unsetSha256Checksum();
-      } else {
-        setSha256Checksum((String)value);
-      }
-      break;
-
-    case FILE_TYPE:
-      if (value == null) {
-        unsetFileType();
-      } else {
-        setFileType((FileModelType)value);
-      }
-      break;
-
-    case FILE_SIZE:
-      if (value == null) {
-        unsetFileSize();
-      } else {
-        setFileSize((Integer)value);
-      }
-      break;
-
-    case DATA_TYPE:
-      if (value == null) {
-        unsetDataType();
-      } else {
-        setDataType((String)value);
-      }
-      break;
-
-    case CREATION_TIME:
-      if (value == null) {
-        unsetCreationTime();
-      } else {
-        setCreationTime((Long)value);
-      }
-      break;
-
-    case LAST_MODIFIED_TIME:
-      if (value == null) {
-        unsetLastModifiedTime();
-      } else {
-        setLastModifiedTime((Long)value);
-      }
-      break;
-
-    case FILE_REPLICAS:
-      if (value == null) {
-        unsetFileReplicas();
-      } else {
-        setFileReplicas((List<FileReplicaModel>)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case FILE_ID:
-      return getFileId();
-
-    case GATEWAY_ID:
-      return getGatewayId();
-
-    case USERNAME:
-      return getUsername();
-
-    case SHARED_USERS:
-      return getSharedUsers();
-
-    case SHARED_PUBLIC:
-      return isSharedPublic();
-
-    case FILE_NAME:
-      return getFileName();
-
-    case FILE_DESCRIPTION:
-      return getFileDescription();
-
-    case SHA256_CHECKSUM:
-      return getSha256Checksum();
-
-    case FILE_TYPE:
-      return getFileType();
-
-    case FILE_SIZE:
-      return getFileSize();
-
-    case DATA_TYPE:
-      return getDataType();
-
-    case CREATION_TIME:
-      return getCreationTime();
-
-    case LAST_MODIFIED_TIME:
-      return getLastModifiedTime();
-
-    case FILE_REPLICAS:
-      return getFileReplicas();
-
-    }
-    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 FILE_ID:
-      return isSetFileId();
-    case GATEWAY_ID:
-      return isSetGatewayId();
-    case USERNAME:
-      return isSetUsername();
-    case SHARED_USERS:
-      return isSetSharedUsers();
-    case SHARED_PUBLIC:
-      return isSetSharedPublic();
-    case FILE_NAME:
-      return isSetFileName();
-    case FILE_DESCRIPTION:
-      return isSetFileDescription();
-    case SHA256_CHECKSUM:
-      return isSetSha256Checksum();
-    case FILE_TYPE:
-      return isSetFileType();
-    case FILE_SIZE:
-      return isSetFileSize();
-    case DATA_TYPE:
-      return isSetDataType();
-    case CREATION_TIME:
-      return isSetCreationTime();
-    case LAST_MODIFIED_TIME:
-      return isSetLastModifiedTime();
-    case FILE_REPLICAS:
-      return isSetFileReplicas();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof FileModel)
-      return this.equals((FileModel)that);
-    return false;
-  }
-
-  public boolean equals(FileModel that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_fileId = true && this.isSetFileId();
-    boolean that_present_fileId = true && that.isSetFileId();
-    if (this_present_fileId || that_present_fileId) {
-      if (!(this_present_fileId && that_present_fileId))
-        return false;
-      if (!this.fileId.equals(that.fileId))
-        return false;
-    }
-
-    boolean this_present_gatewayId = true && this.isSetGatewayId();
-    boolean that_present_gatewayId = true && that.isSetGatewayId();
-    if (this_present_gatewayId || that_present_gatewayId) {
-      if (!(this_present_gatewayId && that_present_gatewayId))
-        return false;
-      if (!this.gatewayId.equals(that.gatewayId))
-        return false;
-    }
-
-    boolean this_present_username = true && this.isSetUsername();
-    boolean that_present_username = true && that.isSetUsername();
-    if (this_present_username || that_present_username) {
-      if (!(this_present_username && that_present_username))
-        return false;
-      if (!this.username.equals(that.username))
-        return false;
-    }
-
-    boolean this_present_sharedUsers = true && this.isSetSharedUsers();
-    boolean that_present_sharedUsers = true && that.isSetSharedUsers();
-    if (this_present_sharedUsers || that_present_sharedUsers) {
-      if (!(this_present_sharedUsers && that_present_sharedUsers))
-        return false;
-      if (!this.sharedUsers.equals(that.sharedUsers))
-        return false;
-    }
-
-    boolean this_present_sharedPublic = true && this.isSetSharedPublic();
-    boolean that_present_sharedPublic = true && that.isSetSharedPublic();
-    if (this_present_sharedPublic || that_present_sharedPublic) {
-      if (!(this_present_sharedPublic && that_present_sharedPublic))
-        return false;
-      if (this.sharedPublic != that.sharedPublic)
-        return false;
-    }
-
-    boolean this_present_fileName = true && this.isSetFileName();
-    boolean that_present_fileName = true && that.isSetFileName();
-    if (this_present_fileName || that_present_fileName) {
-      if (!(this_present_fileName && that_present_fileName))
-        return false;
-      if (!this.fileName.equals(that.fileName))
-        return false;
-    }
-
-    boolean this_present_fileDescription = true && this.isSetFileDescription();
-    boolean that_present_fileDescription = true && that.isSetFileDescription();
-    if (this_present_fileDescription || that_present_fileDescription) {
-      if (!(this_present_fileDescription && that_present_fileDescription))
-        return false;
-      if (!this.fileDescription.equals(that.fileDescription))
-        return false;
-    }
-
-    boolean this_present_sha256Checksum = true && this.isSetSha256Checksum();
-    boolean that_present_sha256Checksum = true && that.isSetSha256Checksum();
-    if (this_present_sha256Checksum || that_present_sha256Checksum) {
-      if (!(this_present_sha256Checksum && that_present_sha256Checksum))
-        return false;
-      if (!this.sha256Checksum.equals(that.sha256Checksum))
-        return false;
-    }
-
-    boolean this_present_fileType = true && this.isSetFileType();
-    boolean that_present_fileType = true && that.isSetFileType();
-    if (this_present_fileType || that_present_fileType) {
-      if (!(this_present_fileType && that_present_fileType))
-        return false;
-      if (!this.fileType.equals(that.fileType))
-        return false;
-    }
-
-    boolean this_present_fileSize = true && this.isSetFileSize();
-    boolean that_present_fileSize = true && that.isSetFileSize();
-    if (this_present_fileSize || that_present_fileSize) {
-      if (!(this_present_fileSize && that_present_fileSize))
-        return false;
-      if (this.fileSize != that.fileSize)
-        return false;
-    }
-
-    boolean this_present_dataType = true && this.isSetDataType();
-    boolean that_present_dataType = true && that.isSetDataType();
-    if (this_present_dataType || that_present_dataType) {
-      if (!(this_present_dataType && that_present_dataType))
-        return false;
-      if (!this.dataType.equals(that.dataType))
-        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_lastModifiedTime = true && this.isSetLastModifiedTime();
-    boolean that_present_lastModifiedTime = true && that.isSetLastModifiedTime();
-    if (this_present_lastModifiedTime || that_present_lastModifiedTime) {
-      if (!(this_present_lastModifiedTime && that_present_lastModifiedTime))
-        return false;
-      if (this.lastModifiedTime != that.lastModifiedTime)
-        return false;
-    }
-
-    boolean this_present_fileReplicas = true && this.isSetFileReplicas();
-    boolean that_present_fileReplicas = true && that.isSetFileReplicas();
-    if (this_present_fileReplicas || that_present_fileReplicas) {
-      if (!(this_present_fileReplicas && that_present_fileReplicas))
-        return false;
-      if (!this.fileReplicas.equals(that.fileReplicas))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    List<Object> list = new ArrayList<Object>();
-
-    boolean present_fileId = true && (isSetFileId());
-    list.add(present_fileId);
-    if (present_fileId)
-      list.add(fileId);
-
-    boolean present_gatewayId = true && (isSetGatewayId());
-    list.add(present_gatewayId);
-    if (present_gatewayId)
-      list.add(gatewayId);
-
-    boolean present_username = true && (isSetUsername());
-    list.add(present_username);
-    if (present_username)
-      list.add(username);
-
-    boolean present_sharedUsers = true && (isSetSharedUsers());
-    list.add(present_sharedUsers);
-    if (present_sharedUsers)
-      list.add(sharedUsers);
-
-    boolean present_sharedPublic = true && (isSetSharedPublic());
-    list.add(present_sharedPublic);
-    if (present_sharedPublic)
-      list.add(sharedPublic);
-
-    boolean present_fileName = true && (isSetFileName());
-    list.add(present_fileName);
-    if (present_fileName)
-      list.add(fileName);
-
-    boolean present_fileDescription = true && (isSetFileDescription());
-    list.add(present_fileDescription);
-    if (present_fileDescription)
-      list.add(fileDescription);
-
-    boolean present_sha256Checksum = true && (isSetSha256Checksum());
-    list.add(present_sha256Checksum);
-    if (present_sha256Checksum)
-      list.add(sha256Checksum);
-
-    boolean present_fileType = true && (isSetFileType());
-    list.add(present_fileType);
-    if (present_fileType)
-      list.add(fileType.getValue());
-
-    boolean present_fileSize = true && (isSetFileSize());
-    list.add(present_fileSize);
-    if (present_fileSize)
-      list.add(fileSize);
-
-    boolean present_dataType = true && (isSetDataType());
-    list.add(present_dataType);
-    if (present_dataType)
-      list.add(dataType);
-
-    boolean present_creationTime = true && (isSetCreationTime());
-    list.add(present_creationTime);
-    if (present_creationTime)
-      list.add(creationTime);
-
-    boolean present_lastModifiedTime = true && (isSetLastModifiedTime());
-    list.add(present_lastModifiedTime);
-    if (present_lastModifiedTime)
-      list.add(lastModifiedTime);
-
-    boolean present_fileReplicas = true && (isSetFileReplicas());
-    list.add(present_fileReplicas);
-    if (present_fileReplicas)
-      list.add(fileReplicas);
-
-    return list.hashCode();
-  }
-
-  @Override
-  public int compareTo(FileModel other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetFileId()).compareTo(other.isSetFileId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFileId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileId, other.fileId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetGatewayId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetUsername()).compareTo(other.isSetUsername());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetUsername()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.username, other.username);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSharedUsers()).compareTo(other.isSetSharedUsers());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSharedUsers()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedUsers, other.sharedUsers);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSharedPublic()).compareTo(other.isSetSharedPublic());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSharedPublic()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedPublic, other.sharedPublic);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetFileName()).compareTo(other.isSetFileName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFileName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileName, other.fileName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetFileDescription()).compareTo(other.isSetFileDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFileDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileDescription, other.fileDescription);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetSha256Checksum()).compareTo(other.isSetSha256Checksum());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetSha256Checksum()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sha256Checksum, other.sha256Checksum);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetFileType()).compareTo(other.isSetFileType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFileType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileType, other.fileType);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetFileSize()).compareTo(other.isSetFileSize());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFileSize()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileSize, other.fileSize);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDataType()).compareTo(other.isSetDataType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDataType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataType, other.dataType);
-      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(isSetLastModifiedTime()).compareTo(other.isSetLastModifiedTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetLastModifiedTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedTime, other.lastModifiedTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetFileReplicas()).compareTo(other.isSetFileReplicas());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFileReplicas()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileReplicas, other.fileReplicas);
-      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("FileModel(");
-    boolean first = true;
-
-    if (isSetFileId()) {
-      sb.append("fileId:");
-      if (this.fileId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.fileId);
-      }
-      first = false;
-    }
-    if (isSetGatewayId()) {
-      if (!first) sb.append(", ");
-      sb.append("gatewayId:");
-      if (this.gatewayId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.gatewayId);
-      }
-      first = false;
-    }
-    if (isSetUsername()) {
-      if (!first) sb.append(", ");
-      sb.append("username:");
-      if (this.username == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.username);
-      }
-      first = false;
-    }
-    if (isSetSharedUsers()) {
-      if (!first) sb.append(", ");
-      sb.append("sharedUsers:");
-      if (this.sharedUsers == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.sharedUsers);
-      }
-      first = false;
-    }
-    if (isSetSharedPublic()) {
-      if (!first) sb.append(", ");
-      sb.append("sharedPublic:");
-      sb.append(this.sharedPublic);
-      first = false;
-    }
-    if (isSetFileName()) {
-      if (!first) sb.append(", ");
-      sb.append("fileName:");
-      if (this.fileName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.fileName);
-      }
-      first = false;
-    }
-    if (isSetFileDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("fileDescription:");
-      if (this.fileDescription == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.fileDescription);
-      }
-      first = false;
-    }
-    if (isSetSha256Checksum()) {
-      if (!first) sb.append(", ");
-      sb.append("sha256Checksum:");
-      if (this.sha256Checksum == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.sha256Checksum);
-      }
-      first = false;
-    }
-    if (isSetFileType()) {
-      if (!first) sb.append(", ");
-      sb.append("fileType:");
-      if (this.fileType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.fileType);
-      }
-      first = false;
-    }
-    if (isSetFileSize()) {
-      if (!first) sb.append(", ");
-      sb.append("fileSize:");
-      sb.append(this.fileSize);
-      first = false;
-    }
-    if (isSetDataType()) {
-      if (!first) sb.append(", ");
-      sb.append("dataType:");
-      if (this.dataType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.dataType);
-      }
-      first = false;
-    }
-    if (isSetCreationTime()) {
-      if (!first) sb.append(", ");
-      sb.append("creationTime:");
-      sb.append(this.creationTime);
-      first = false;
-    }
-    if (isSetLastModifiedTime()) {
-      if (!first) sb.append(", ");
-      sb.append("lastModifiedTime:");
-      sb.append(this.lastModifiedTime);
-      first = false;
-    }
-    if (isSetFileReplicas()) {
-      if (!first) sb.append(", ");
-      sb.append("fileReplicas:");
-      if (this.fileReplicas == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.fileReplicas);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // 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 FileModelStandardSchemeFactory implements SchemeFactory {
-    public FileModelStandardScheme getScheme() {
-      return new FileModelStandardScheme();
-    }
-  }
-
-  private static class FileModelStandardScheme extends StandardScheme<FileModel> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, FileModel 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: // FILE_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.fileId = iprot.readString();
-              struct.setFileIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // GATEWAY_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.gatewayId = iprot.readString();
-              struct.setGatewayIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // USERNAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.username = iprot.readString();
-              struct.setUsernameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // SHARED_USERS
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list16 = iprot.readListBegin();
-                struct.sharedUsers = new ArrayList<String>(_list16.size);
-                String _elem17;
-                for (int _i18 = 0; _i18 < _list16.size; ++_i18)
-                {
-                  _elem17 = iprot.readString();
-                  struct.sharedUsers.add(_elem17);
-                }
-                iprot.readListEnd();
-              }
-              struct.setSharedUsersIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // SHARED_PUBLIC
-            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
-              struct.sharedPublic = iprot.readBool();
-              struct.setSharedPublicIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // FILE_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.fileName = iprot.readString();
-              struct.setFileNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 7: // FILE_DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.fileDescription = iprot.readString();
-              struct.setFileDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // SHA256_CHECKSUM
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.sha256Checksum = iprot.readString();
-              struct.setSha256ChecksumIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 9: // FILE_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.fileType = org.apache.airavata.model.file.replica.FileModelType.findByValue(iprot.readI32());
-              struct.setFileTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 10: // FILE_SIZE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.fileSize = iprot.readI32();
-              struct.setFileSizeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 11: // DATA_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.dataType = iprot.readString();
-              struct.setDataTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 12: // 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 13: // LAST_MODIFIED_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.lastModifiedTime = iprot.readI64();
-              struct.setLastModifiedTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 14: // FILE_REPLICAS
-            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-              {
-                org.apache.thrift.protocol.TList _list19 = iprot.readListBegin();
-                struct.fileReplicas = new ArrayList<FileReplicaModel>(_list19.size);
-                FileReplicaModel _elem20;
-                for (int _i21 = 0; _i21 < _list19.size; ++_i21)
-                {
-                  _elem20 = new FileReplicaModel();
-                  _elem20.read(iprot);
-                  struct.fileReplicas.add(_elem20);
-                }
-                iprot.readListEnd();
-              }
-              struct.setFileReplicasIsSet(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, FileModel struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.fileId != null) {
-        if (struct.isSetFileId()) {
-          oprot.writeFieldBegin(FILE_ID_FIELD_DESC);
-          oprot.writeString(struct.fileId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.gatewayId != null) {
-        if (struct.isSetGatewayId()) {
-          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
-          oprot.writeString(struct.gatewayId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.username != null) {
-        if (struct.isSetUsername()) {
-          oprot.writeFieldBegin(USERNAME_FIELD_DESC);
-          oprot.writeString(struct.username);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.sharedUsers != null) {
-        if (struct.isSetSharedUsers()) {
-          oprot.writeFieldBegin(SHARED_USERS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.sharedUsers.size()));
-            for (String _iter22 : struct.sharedUsers)
-            {
-              oprot.writeString(_iter22);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetSharedPublic()) {
-        oprot.writeFieldBegin(SHARED_PUBLIC_FIELD_DESC);
-        oprot.writeBool(struct.sharedPublic);
-        oprot.writeFieldEnd();
-      }
-      if (struct.fileName != null) {
-        if (struct.isSetFileName()) {
-          oprot.writeFieldBegin(FILE_NAME_FIELD_DESC);
-          oprot.writeString(struct.fileName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.fileDescription != null) {
-        if (struct.isSetFileDescription()) {
-          oprot.writeFieldBegin(FILE_DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.fileDescription);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.sha256Checksum != null) {
-        if (struct.isSetSha256Checksum()) {
-          oprot.writeFieldBegin(SHA256_CHECKSUM_FIELD_DESC);
-          oprot.writeString(struct.sha256Checksum);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.fileType != null) {
-        if (struct.isSetFileType()) {
-          oprot.writeFieldBegin(FILE_TYPE_FIELD_DESC);
-          oprot.writeI32(struct.fileType.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetFileSize()) {
-        oprot.writeFieldBegin(FILE_SIZE_FIELD_DESC);
-        oprot.writeI32(struct.fileSize);
-        oprot.writeFieldEnd();
-      }
-      if (struct.dataType != null) {
-        if (struct.isSetDataType()) {
-          oprot.writeFieldBegin(DATA_TYPE_FIELD_DESC);
-          oprot.writeString(struct.dataType);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetCreationTime()) {
-        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
-        oprot.writeI64(struct.creationTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetLastModifiedTime()) {
-        oprot.writeFieldBegin(LAST_MODIFIED_TIME_FIELD_DESC);
-        oprot.writeI64(struct.lastModifiedTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.fileReplicas != null) {
-        if (struct.isSetFileReplicas()) {
-          oprot.writeFieldBegin(FILE_REPLICAS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.fileReplicas.size()));
-            for (FileReplicaModel _iter23 : struct.fileReplicas)
-            {
-              _iter23.write(oprot);
-            }
-            oprot.writeListEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class FileModelTupleSchemeFactory implements SchemeFactory {
-    public FileModelTupleScheme getScheme() {
-      return new FileModelTupleScheme();
-    }
-  }
-
-  private static class FileModelTupleScheme extends TupleScheme<FileModel> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, FileModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      BitSet optionals = new BitSet();
-      if (struct.isSetFileId()) {
-        optionals.set(0);
-      }
-      if (struct.isSetGatewayId()) {
-        optionals.set(1);
-      }
-      if (struct.isSetUsername()) {
-        optionals.set(2);
-      }
-      if (struct.isSetSharedUsers()) {
-        optionals.set(3);
-      }
-      if (struct.isSetSharedPublic()) {
-        optionals.set(4);
-      }
-      if (struct.isSetFileName()) {
-        optionals.set(5);
-      }
-      if (struct.isSetFileDescription()) {
-        optionals.set(6);
-      }
-      if (struct.isSetSha256Checksum()) {
-        optionals.set(7);
-      }
-      if (struct.isSetFileType()) {
-        optionals.set(8);
-      }
-      if (struct.isSetFileSize()) {
-        optionals.set(9);
-      }
-      if (struct.isSetDataType()) {
-        optionals.set(10);
-      }
-      if (struct.isSetCreationTime()) {
-        optionals.set(11);
-      }
-      if (struct.isSetLastModifiedTime()) {
-        optionals.set(12);
-      }
-      if (struct.isSetFileReplicas()) {
-        optionals.set(13);
-      }
-      oprot.writeBitSet(optionals, 14);
-      if (struct.isSetFileId()) {
-        oprot.writeString(struct.fileId);
-      }
-      if (struct.isSetGatewayId()) {
-        oprot.writeString(struct.gatewayId);
-      }
-      if (struct.isSetUsername()) {
-        oprot.writeString(struct.username);
-      }
-      if (struct.isSetSharedUsers()) {
-        {
-          oprot.writeI32(struct.sharedUsers.size());
-          for (String _iter24 : struct.sharedUsers)
-          {
-            oprot.writeString(_iter24);
-          }
-        }
-      }
-      if (struct.isSetSharedPublic()) {
-        oprot.writeBool(struct.sharedPublic);
-      }
-      if (struct.isSetFileName()) {
-        oprot.writeString(struct.fileName);
-      }
-      if (struct.isSetFileDescription()) {
-        oprot.writeString(struct.fileDescription);
-      }
-      if (struct.isSetSha256Checksum()) {
-        oprot.writeString(struct.sha256Checksum);
-      }
-      if (struct.isSetFileType()) {
-        oprot.writeI32(struct.fileType.getValue());
-      }
-      if (struct.isSetFileSize()) {
-        oprot.writeI32(struct.fileSize);
-      }
-      if (struct.isSetDataType()) {
-        oprot.writeString(struct.dataType);
-      }
-      if (struct.isSetCreationTime()) {
-        oprot.writeI64(struct.creationTime);
-      }
-      if (struct.isSetLastModifiedTime()) {
-        oprot.writeI64(struct.lastModifiedTime);
-      }
-      if (struct.isSetFileReplicas()) {
-        {
-          oprot.writeI32(struct.fileReplicas.size());
-          for (FileReplicaModel _iter25 : struct.fileReplicas)
-          {
-            _iter25.write(oprot);
-          }
-        }
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, FileModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(14);
-      if (incoming.get(0)) {
-        struct.fileId = iprot.readString();
-        struct.setFileIdIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.gatewayId = iprot.readString();
-        struct.setGatewayIdIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.username = iprot.readString();
-        struct.setUsernameIsSet(true);
-      }
-      if (incoming.get(3)) {
-        {
-          org.apache.thrift.protocol.TList _list26 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.sharedUsers = new ArrayList<String>(_list26.size);
-          String _elem27;
-          for (int _i28 = 0; _i28 < _list26.size; ++_i28)
-          {
-            _elem27 = iprot.readString();
-            struct.sharedUsers.add(_elem27);
-          }
-        }
-        struct.setSharedUsersIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.sharedPublic = iprot.readBool();
-        struct.setSharedPublicIsSet(true);
-      }
-      if (incoming.get(5)) {
-        struct.fileName = iprot.readString();
-        struct.setFileNameIsSet(true);
-      }
-      if (incoming.get(6)) {
-        struct.fileDescription = iprot.readString();
-        struct.setFileDescriptionIsSet(true);
-      }
-      if (incoming.get(7)) {
-        struct.sha256Checksum = iprot.readString();
-        struct.setSha256ChecksumIsSet(true);
-      }
-      if (incoming.get(8)) {
-        struct.fileType = org.apache.airavata.model.file.replica.FileModelType.findByValue(iprot.readI32());
-        struct.setFileTypeIsSet(true);
-      }
-      if (incoming.get(9)) {
-        struct.fileSize = iprot.readI32();
-        struct.setFileSizeIsSet(true);
-      }
-      if (incoming.get(10)) {
-        struct.dataType = iprot.readString();
-        struct.setDataTypeIsSet(true);
-      }
-      if (incoming.get(11)) {
-        struct.creationTime = iprot.readI64();
-        struct.setCreationTimeIsSet(true);
-      }
-      if (incoming.get(12)) {
-        struct.lastModifiedTime = iprot.readI64();
-        struct.setLastModifiedTimeIsSet(true);
-      }
-      if (incoming.get(13)) {
-        {
-          org.apache.thrift.protocol.TList _list29 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.fileReplicas = new ArrayList<FileReplicaModel>(_list29.size);
-          FileReplicaModel _elem30;
-          for (int _i31 = 0; _i31 < _list29.size; ++_i31)
-          {
-            _elem30 = new FileReplicaModel();
-            _elem30.read(iprot);
-            struct.fileReplicas.add(_elem30);
-          }
-        }
-        struct.setFileReplicasIsSet(true);
-      }
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileModelType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileModelType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileModelType.java
deleted file mode 100644
index 7fc2e66..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileModelType.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.replica;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum FileModelType implements org.apache.thrift.TEnum {
-  FILE(0),
-  DIRECTORY(1);
-
-  private final int value;
-
-  private FileModelType(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 FileModelType findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return FILE;
-      case 1:
-        return DIRECTORY;
-      default:
-        return null;
-    }
-  }
-}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
new file mode 100644
index 0000000..f27ed1b
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
@@ -0,0 +1,687 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.movement;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Data Movement through GridFTP
+ * 
+ * alternativeSCPHostName:
+ *  If the login to scp is different than the hostname itself, specify it here
+ * 
+ * sshPort:
+ *  If a non-default port needs to used, specify it.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class GridFTPDataMovement implements org.apache.thrift.TBase<GridFTPDataMovement, GridFTPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<GridFTPDataMovement> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GridFTPDataMovement");
+
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField GRID_FTPEND_POINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("gridFTPEndPoints", org.apache.thrift.protocol.TType.LIST, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new GridFTPDataMovementStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GridFTPDataMovementTupleSchemeFactory());
+  }
+
+  public String dataMovementInterfaceId; // required
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SecurityProtocol securityProtocol; // required
+  public List<String> gridFTPEndPoints; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    DATA_MOVEMENT_INTERFACE_ID((short)1, "dataMovementInterfaceId"),
+    /**
+     * 
+     * @see SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    GRID_FTPEND_POINTS((short)3, "gridFTPEndPoints");
+
+    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: // DATA_MOVEMENT_INTERFACE_ID
+          return DATA_MOVEMENT_INTERFACE_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // GRID_FTPEND_POINTS
+          return GRID_FTPEND_POINTS;
+        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
+  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.DATA_MOVEMENT_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovementInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
+    tmpMap.put(_Fields.GRID_FTPEND_POINTS, new org.apache.thrift.meta_data.FieldMetaData("gridFTPEndPoints", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GridFTPDataMovement.class, metaDataMap);
+  }
+
+  public GridFTPDataMovement() {
+    this.dataMovementInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public GridFTPDataMovement(
+    String dataMovementInterfaceId,
+    SecurityProtocol securityProtocol,
+    List<String> gridFTPEndPoints)
+  {
+    this();
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+    this.securityProtocol = securityProtocol;
+    this.gridFTPEndPoints = gridFTPEndPoints;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public GridFTPDataMovement(GridFTPDataMovement other) {
+    if (other.isSetDataMovementInterfaceId()) {
+      this.dataMovementInterfaceId = other.dataMovementInterfaceId;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetGridFTPEndPoints()) {
+      List<String> __this__gridFTPEndPoints = new ArrayList<String>(other.gridFTPEndPoints);
+      this.gridFTPEndPoints = __this__gridFTPEndPoints;
+    }
+  }
+
+  public GridFTPDataMovement deepCopy() {
+    return new GridFTPDataMovement(this);
+  }
+
+  @Override
+  public void clear() {
+    this.dataMovementInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.gridFTPEndPoints = null;
+  }
+
+  public String getDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId;
+  }
+
+  public GridFTPDataMovement setDataMovementInterfaceId(String dataMovementInterfaceId) {
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+    return this;
+  }
+
+  public void unsetDataMovementInterfaceId() {
+    this.dataMovementInterfaceId = null;
+  }
+
+  /** Returns true if field dataMovementInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId != null;
+  }
+
+  public void setDataMovementInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public GridFTPDataMovement setSecurityProtocol(SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+    return this;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public int getGridFTPEndPointsSize() {
+    return (this.gridFTPEndPoints == null) ? 0 : this.gridFTPEndPoints.size();
+  }
+
+  public java.util.Iterator<String> getGridFTPEndPointsIterator() {
+    return (this.gridFTPEndPoints == null) ? null : this.gridFTPEndPoints.iterator();
+  }
+
+  public void addToGridFTPEndPoints(String elem) {
+    if (this.gridFTPEndPoints == null) {
+      this.gridFTPEndPoints = new ArrayList<String>();
+    }
+    this.gridFTPEndPoints.add(elem);
+  }
+
+  public List<String> getGridFTPEndPoints() {
+    return this.gridFTPEndPoints;
+  }
+
+  public GridFTPDataMovement setGridFTPEndPoints(List<String> gridFTPEndPoints) {
+    this.gridFTPEndPoints = gridFTPEndPoints;
+    return this;
+  }
+
+  public void unsetGridFTPEndPoints() {
+    this.gridFTPEndPoints = null;
+  }
+
+  /** Returns true if field gridFTPEndPoints is set (has been assigned a value) and false otherwise */
+  public boolean isSetGridFTPEndPoints() {
+    return this.gridFTPEndPoints != null;
+  }
+
+  public void setGridFTPEndPointsIsSet(boolean value) {
+    if (!value) {
+      this.gridFTPEndPoints = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      if (value == null) {
+        unsetDataMovementInterfaceId();
+      } else {
+        setDataMovementInterfaceId((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((SecurityProtocol)value);
+      }
+      break;
+
+    case GRID_FTPEND_POINTS:
+      if (value == null) {
+        unsetGridFTPEndPoints();
+      } else {
+        setGridFTPEndPoints((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      return getDataMovementInterfaceId();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case GRID_FTPEND_POINTS:
+      return getGridFTPEndPoints();
+
+    }
+    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 DATA_MOVEMENT_INTERFACE_ID:
+      return isSetDataMovementInterfaceId();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case GRID_FTPEND_POINTS:
+      return isSetGridFTPEndPoints();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof GridFTPDataMovement)
+      return this.equals((GridFTPDataMovement)that);
+    return false;
+  }
+
+  public boolean equals(GridFTPDataMovement that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_dataMovementInterfaceId = true && this.isSetDataMovementInterfaceId();
+    boolean that_present_dataMovementInterfaceId = true && that.isSetDataMovementInterfaceId();
+    if (this_present_dataMovementInterfaceId || that_present_dataMovementInterfaceId) {
+      if (!(this_present_dataMovementInterfaceId && that_present_dataMovementInterfaceId))
+        return false;
+      if (!this.dataMovementInterfaceId.equals(that.dataMovementInterfaceId))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_gridFTPEndPoints = true && this.isSetGridFTPEndPoints();
+    boolean that_present_gridFTPEndPoints = true && that.isSetGridFTPEndPoints();
+    if (this_present_gridFTPEndPoints || that_present_gridFTPEndPoints) {
+      if (!(this_present_gridFTPEndPoints && that_present_gridFTPEndPoints))
+        return false;
+      if (!this.gridFTPEndPoints.equals(that.gridFTPEndPoints))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_dataMovementInterfaceId = true && (isSetDataMovementInterfaceId());
+    list.add(present_dataMovementInterfaceId);
+    if (present_dataMovementInterfaceId)
+      list.add(dataMovementInterfaceId);
+
+    boolean present_securityProtocol = true && (isSetSecurityProtocol());
+    list.add(present_securityProtocol);
+    if (present_securityProtocol)
+      list.add(securityProtocol.getValue());
+
+    boolean present_gridFTPEndPoints = true && (isSetGridFTPEndPoints());
+    list.add(present_gridFTPEndPoints);
+    if (present_gridFTPEndPoints)
+      list.add(gridFTPEndPoints);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(GridFTPDataMovement other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetDataMovementInterfaceId()).compareTo(other.isSetDataMovementInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementInterfaceId, other.dataMovementInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGridFTPEndPoints()).compareTo(other.isSetGridFTPEndPoints());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGridFTPEndPoints()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gridFTPEndPoints, other.gridFTPEndPoints);
+      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("GridFTPDataMovement(");
+    boolean first = true;
+
+    sb.append("dataMovementInterfaceId:");
+    if (this.dataMovementInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovementInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gridFTPEndPoints:");
+    if (this.gridFTPEndPoints == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gridFTPEndPoints);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (dataMovementInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementInterfaceId' was not present! Struct: " + toString());
+    }
+    if (securityProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' was not present! Struct: " + toString());
+    }
+    if (gridFTPEndPoints == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gridFTPEndPoints' was not present! 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 GridFTPDataMovementStandardSchemeFactory implements SchemeFactory {
+    public GridFTPDataMovementStandardScheme getScheme() {
+      return new GridFTPDataMovementStandardScheme();
+    }
+  }
+
+  private static class GridFTPDataMovementStandardScheme extends StandardScheme<GridFTPDataMovement> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, GridFTPDataMovement 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: // DATA_MOVEMENT_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataMovementInterfaceId = iprot.readString();
+              struct.setDataMovementInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // GRID_FTPEND_POINTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.gridFTPEndPoints = new ArrayList<String>(_list0.size);
+                String _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = iprot.readString();
+                  struct.gridFTPEndPoints.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setGridFTPEndPointsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, GridFTPDataMovement struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.dataMovementInterfaceId != null) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.dataMovementInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.gridFTPEndPoints != null) {
+        oprot.writeFieldBegin(GRID_FTPEND_POINTS_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.gridFTPEndPoints.size()));
+          for (String _iter3 : struct.gridFTPEndPoints)
+          {
+            oprot.writeString(_iter3);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GridFTPDataMovementTupleSchemeFactory implements SchemeFactory {
+    public GridFTPDataMovementTupleScheme getScheme() {
+      return new GridFTPDataMovementTupleScheme();
+    }
+  }
+
+  private static class GridFTPDataMovementTupleScheme extends TupleScheme<GridFTPDataMovement> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, GridFTPDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.dataMovementInterfaceId);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      {
+        oprot.writeI32(struct.gridFTPEndPoints.size());
+        for (String _iter4 : struct.gridFTPEndPoints)
+        {
+          oprot.writeString(_iter4);
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, GridFTPDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.dataMovementInterfaceId = iprot.readString();
+      struct.setDataMovementInterfaceIdIsSet(true);
+      struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      {
+        org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+        struct.gridFTPEndPoints = new ArrayList<String>(_list5.size);
+        String _elem6;
+        for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+        {
+          _elem6 = iprot.readString();
+          struct.gridFTPEndPoints.add(_elem6);
+        }
+      }
+      struct.setGridFTPEndPointsIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
new file mode 100644
index 0000000..41c20fd
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
@@ -0,0 +1,420 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.movement;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * LOCAL
+ * 
+ * alternativeSCPHostName:
+ *  If the login to scp is different than the hostname itself, specify it here
+ * 
+ * sshPort:
+ *  If a non-defualt port needs to used, specify it.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class LOCALDataMovement implements org.apache.thrift.TBase<LOCALDataMovement, LOCALDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALDataMovement> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALDataMovement");
+
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new LOCALDataMovementStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new LOCALDataMovementTupleSchemeFactory());
+  }
+
+  public String dataMovementInterfaceId; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    DATA_MOVEMENT_INTERFACE_ID((short)1, "dataMovementInterfaceId");
+
+    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: // DATA_MOVEMENT_INTERFACE_ID
+          return DATA_MOVEMENT_INTERFACE_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  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.DATA_MOVEMENT_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovementInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(LOCALDataMovement.class, metaDataMap);
+  }
+
+  public LOCALDataMovement() {
+    this.dataMovementInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public LOCALDataMovement(
+    String dataMovementInterfaceId)
+  {
+    this();
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public LOCALDataMovement(LOCALDataMovement other) {
+    if (other.isSetDataMovementInterfaceId()) {
+      this.dataMovementInterfaceId = other.dataMovementInterfaceId;
+    }
+  }
+
+  public LOCALDataMovement deepCopy() {
+    return new LOCALDataMovement(this);
+  }
+
+  @Override
+  public void clear() {
+    this.dataMovementInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public String getDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId;
+  }
+
+  public LOCALDataMovement setDataMovementInterfaceId(String dataMovementInterfaceId) {
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+    return this;
+  }
+
+  public void unsetDataMovementInterfaceId() {
+    this.dataMovementInterfaceId = null;
+  }
+
+  /** Returns true if field dataMovementInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId != null;
+  }
+
+  public void setDataMovementInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementInterfaceId = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      if (value == null) {
+        unsetDataMovementInterfaceId();
+      } else {
+        setDataMovementInterfaceId((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      return getDataMovementInterfaceId();
+
+    }
+    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 DATA_MOVEMENT_INTERFACE_ID:
+      return isSetDataMovementInterfaceId();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof LOCALDataMovement)
+      return this.equals((LOCALDataMovement)that);
+    return false;
+  }
+
+  public boolean equals(LOCALDataMovement that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_dataMovementInterfaceId = true && this.isSetDataMovementInterfaceId();
+    boolean that_present_dataMovementInterfaceId = true && that.isSetDataMovementInterfaceId();
+    if (this_present_dataMovementInterfaceId || that_present_dataMovementInterfaceId) {
+      if (!(this_present_dataMovementInterfaceId && that_present_dataMovementInterfaceId))
+        return false;
+      if (!this.dataMovementInterfaceId.equals(that.dataMovementInterfaceId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_dataMovementInterfaceId = true && (isSetDataMovementInterfaceId());
+    list.add(present_dataMovementInterfaceId);
+    if (present_dataMovementInterfaceId)
+      list.add(dataMovementInterfaceId);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(LOCALDataMovement other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetDataMovementInterfaceId()).compareTo(other.isSetDataMovementInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementInterfaceId, other.dataMovementInterfaceId);
+      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("LOCALDataMovement(");
+    boolean first = true;
+
+    sb.append("dataMovementInterfaceId:");
+    if (this.dataMovementInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovementInterfaceId);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (dataMovementInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementInterfaceId' was not present! 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 LOCALDataMovementStandardSchemeFactory implements SchemeFactory {
+    public LOCALDataMovementStandardScheme getScheme() {
+      return new LOCALDataMovementStandardScheme();
+    }
+  }
+
+  private static class LOCALDataMovementStandardScheme extends StandardScheme<LOCALDataMovement> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, LOCALDataMovement 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: // DATA_MOVEMENT_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataMovementInterfaceId = iprot.readString();
+              struct.setDataMovementInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, LOCALDataMovement struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.dataMovementInterfaceId != null) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.dataMovementInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class LOCALDataMovementTupleSchemeFactory implements SchemeFactory {
+    public LOCALDataMovementTupleScheme getScheme() {
+      return new LOCALDataMovementTupleScheme();
+    }
+  }
+
+  private static class LOCALDataMovementTupleScheme extends TupleScheme<LOCALDataMovement> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, LOCALDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.dataMovementInterfaceId);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, LOCALDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.dataMovementInterfaceId = iprot.readString();
+      struct.setDataMovementInterfaceIdIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
new file mode 100644
index 0000000..87142b2
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
@@ -0,0 +1,754 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.movement;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Data Movement through Secured Copy
+ * 
+ * alternativeSCPHostName:
+ *  If the login to scp is different than the hostname itself, specify it here
+ * 
+ * sshPort:
+ *  If a non-default port needs to used, specify it.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
+
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField ALTERNATIVE_SCPHOST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("alternativeSCPHostName", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField SSH_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("sshPort", org.apache.thrift.protocol.TType.I32, (short)4);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new SCPDataMovementStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new SCPDataMovementTupleSchemeFactory());
+  }
+
+  public String dataMovementInterfaceId; // required
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SecurityProtocol securityProtocol; // required
+  public String alternativeSCPHostName; // optional
+  public int sshPort; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    DATA_MOVEMENT_INTERFACE_ID((short)1, "dataMovementInterfaceId"),
+    /**
+     * 
+     * @see SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    ALTERNATIVE_SCPHOST_NAME((short)3, "alternativeSCPHostName"),
+    SSH_PORT((short)4, "sshPort");
+
+    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: // DATA_MOVEMENT_INTERFACE_ID
+          return DATA_MOVEMENT_INTERFACE_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // ALTERNATIVE_SCPHOST_NAME
+          return ALTERNATIVE_SCPHOST_NAME;
+        case 4: // SSH_PORT
+          return SSH_PORT;
+        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 __SSHPORT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.ALTERNATIVE_SCPHOST_NAME,_Fields.SSH_PORT};
+  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.DATA_MOVEMENT_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovementInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
+    tmpMap.put(_Fields.ALTERNATIVE_SCPHOST_NAME, new org.apache.thrift.meta_data.FieldMetaData("alternativeSCPHostName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SSH_PORT, new org.apache.thrift.meta_data.FieldMetaData("sshPort", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SCPDataMovement.class, metaDataMap);
+  }
+
+  public SCPDataMovement() {
+    this.dataMovementInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.sshPort = 22;
+
+  }
+
+  public SCPDataMovement(
+    String dataMovementInterfaceId,
+    SecurityProtocol securityProtocol)
+  {
+    this();
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+    this.securityProtocol = securityProtocol;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public SCPDataMovement(SCPDataMovement other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetDataMovementInterfaceId()) {
+      this.dataMovementInterfaceId = other.dataMovementInterfaceId;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetAlternativeSCPHostName()) {
+      this.alternativeSCPHostName = other.alternativeSCPHostName;
+    }
+    this.sshPort = other.sshPort;
+  }
+
+  public SCPDataMovement deepCopy() {
+    return new SCPDataMovement(this);
+  }
+
+  @Override
+  public void clear() {
+    this.dataMovementInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.alternativeSCPHostName = null;
+    this.sshPort = 22;
+
+  }
+
+  public String getDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId;
+  }
+
+  public SCPDataMovement setDataMovementInterfaceId(String dataMovementInterfaceId) {
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+    return this;
+  }
+
+  public void unsetDataMovementInterfaceId() {
+    this.dataMovementInterfaceId = null;
+  }
+
+  /** Returns true if field dataMovementInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId != null;
+  }
+
+  public void setDataMovementInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SCPDataMovement setSecurityProtocol(SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+    return this;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public String getAlternativeSCPHostName() {
+    return this.alternativeSCPHostName;
+  }
+
+  public SCPDataMovement setAlternativeSCPHostName(String alternativeSCPHostName) {
+    this.alternativeSCPHostName = alternativeSCPHostName;
+    return this;
+  }
+
+  public void unsetAlternativeSCPHostName() {
+    this.alternativeSCPHostName = null;
+  }
+
+  /** Returns true if field alternativeSCPHostName is set (has been assigned a value) and false otherwise */
+  public boolean isSetAlternativeSCPHostName() {
+    return this.alternativeSCPHostName != null;
+  }
+
+  public void setAlternativeSCPHostNameIsSet(boolean value) {
+    if (!value) {
+      this.alternativeSCPHostName = null;
+    }
+  }
+
+  public int getSshPort() {
+    return this.sshPort;
+  }
+
+  public SCPDataMovement setSshPort(int sshPort) {
+    this.sshPort = sshPort;
+    setSshPortIsSet(true);
+    return this;
+  }
+
+  public void unsetSshPort() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  /** Returns true if field sshPort is set (has been assigned a value) and false otherwise */
+  public boolean isSetSshPort() {
+    return EncodingUtils.testBit(__isset_bitfield, __SSHPORT_ISSET_ID);
+  }
+
+  public void setSshPortIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SSHPORT_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      if (value == null) {
+        unsetDataMovementInterfaceId();
+      } else {
+        setDataMovementInterfaceId((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((SecurityProtocol)value);
+      }
+      break;
+
+    case ALTERNATIVE_SCPHOST_NAME:
+      if (value == null) {
+        unsetAlternativeSCPHostName();
+      } else {
+        setAlternativeSCPHostName((String)value);
+      }
+      break;
+
+    case SSH_PORT:
+      if (value == null) {
+        unsetSshPort();
+      } else {
+        setSshPort((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      return getDataMovementInterfaceId();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case ALTERNATIVE_SCPHOST_NAME:
+      return getAlternativeSCPHostName();
+
+    case SSH_PORT:
+      return Integer.valueOf(getSshPort());
+
+    }
+    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 DATA_MOVEMENT_INTERFACE_ID:
+      return isSetDataMovementInterfaceId();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case ALTERNATIVE_SCPHOST_NAME:
+      return isSetAlternativeSCPHostName();
+    case SSH_PORT:
+      return isSetSshPort();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof SCPDataMovement)
+      return this.equals((SCPDataMovement)that);
+    return false;
+  }
+
+  public boolean equals(SCPDataMovement that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_dataMovementInterfaceId = true && this.isSetDataMovementInterfaceId();
+    boolean that_present_dataMovementInterfaceId = true && that.isSetDataMovementInterfaceId();
+    if (this_present_dataMovementInterfaceId || that_present_dataMovementInterfaceId) {
+      if (!(this_present_dataMovementInterfaceId && that_present_dataMovementInterfaceId))
+        return false;
+      if (!this.dataMovementInterfaceId.equals(that.dataMovementInterfaceId))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_alternativeSCPHostName = true && this.isSetAlternativeSCPHostName();
+    boolean that_present_alternativeSCPHostName = true && that.isSetAlternativeSCPHostName();
+    if (this_present_alternativeSCPHostName || that_present_alternativeSCPHostName) {
+      if (!(this_present_alternativeSCPHostName && that_present_alternativeSCPHostName))
+        return false;
+      if (!this.alternativeSCPHostName.equals(that.alternativeSCPHostName))
+        return false;
+    }
+
+    boolean this_present_sshPort = true && this.isSetSshPort();
+    boolean that_present_sshPort = true && that.isSetSshPort();
+    if (this_present_sshPort || that_present_sshPort) {
+      if (!(this_present_sshPort && that_present_sshPort))
+        return false;
+      if (this.sshPort != that.sshPort)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_dataMovementInterfaceId = true && (isSetDataMovementInterfaceId());
+    list.add(present_dataMovementInterfaceId);
+    if (present_dataMovementInterfaceId)
+      list.add(dataMovementInterfaceId);
+
+    boolean present_securityProtocol = true && (isSetSecurityProtocol());
+    list.add(present_securityProtocol);
+    if (present_securityProtocol)
+      list.add(securityProtocol.getValue());
+
+    boolean present_alternativeSCPHostName = true && (isSetAlternativeSCPHostName());
+    list.add(present_alternativeSCPHostName);
+    if (present_alternativeSCPHostName)
+      list.add(alternativeSCPHostName);
+
+    boolean present_sshPort = true && (isSetSshPort());
+    list.add(present_sshPort);
+    if (present_sshPort)
+      list.add(sshPort);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(SCPDataMovement other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetDataMovementInterfaceId()).compareTo(other.isSetDataMovementInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementInterfaceId, other.dataMovementInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAlternativeSCPHostName()).compareTo(other.isSetAlternativeSCPHostName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAlternativeSCPHostName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.alternativeSCPHostName, other.alternativeSCPHostName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSshPort()).compareTo(other.isSetSshPort());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSshPort()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sshPort, other.sshPort);
+      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("SCPDataMovement(");
+    boolean first = true;
+
+    sb.append("dataMovementInterfaceId:");
+    if (this.dataMovementInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovementInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (isSetAlternativeSCPHostName()) {
+      if (!first) sb.append(", ");
+      sb.append("alternativeSCPHostName:");
+      if (this.alternativeSCPHostName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.alternativeSCPHostName);
+      }
+      first = false;
+    }
+    if (isSetSshPort()) {
+      if (!first) sb.append(", ");
+      sb.append("sshPort:");
+      sb.append(this.sshPort);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (dataMovementInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementInterfaceId' was not present! Struct: " + toString());
+    }
+    if (securityProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' was not present! 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 SCPDataMovementStandardSchemeFactory implements SchemeFactory {
+    public SCPDataMovementStandardScheme getScheme() {
+      return new SCPDataMovementStandardScheme();
+    }
+  }
+
+  private static class SCPDataMovementStandardScheme extends StandardScheme<SCPDataMovement> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, SCPDataMovement 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: // DATA_MOVEMENT_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataMovementInterfaceId = iprot.readString();
+              struct.setDataMovementInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // ALTERNATIVE_SCPHOST_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.alternativeSCPHostName = iprot.readString();
+              struct.setAlternativeSCPHostNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // SSH_PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.sshPort = iprot.readI32();
+              struct.setSshPortIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, SCPDataMovement struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.dataMovementInterfaceId != null) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.dataMovementInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.alternativeSCPHostName != null) {
+        if (struct.isSetAlternativeSCPHostName()) {
+          oprot.writeFieldBegin(ALTERNATIVE_SCPHOST_NAME_FIELD_DESC);
+          oprot.writeString(struct.alternativeSCPHostName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetSshPort()) {
+        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
+        oprot.writeI32(struct.sshPort);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class SCPDataMovementTupleSchemeFactory implements SchemeFactory {
+    public SCPDataMovementTupleScheme getScheme() {
+      return new SCPDataMovementTupleScheme();
+    }
+  }
+
+  private static class SCPDataMovementTupleScheme extends TupleScheme<SCPDataMovement> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, SCPDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.dataMovementInterfaceId);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetAlternativeSCPHostName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetSshPort()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetAlternativeSCPHostName()) {
+        oprot.writeString(struct.alternativeSCPHostName);
+      }
+      if (struct.isSetSshPort()) {
+        oprot.writeI32(struct.sshPort);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, SCPDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.dataMovementInterfaceId = iprot.readString();
+      struct.setDataMovementInterfaceIdIsSet(true);
+      struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.alternativeSCPHostName = iprot.readString();
+        struct.setAlternativeSCPHostNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.sshPort = iprot.readI32();
+        struct.setSshPortIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/SecurityProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/SecurityProtocol.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/SecurityProtocol.java
new file mode 100644
index 0000000..c1f5469
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/SecurityProtocol.java
@@ -0,0 +1,88 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.movement;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * Enumeration of security authentication and authorization mechanisms supported by Airavata. This enumeration just
+ *  describes the supported mechanism. The corresponding security credentials are registered with Airavata Credential
+ *  store.
+ * 
+ * USERNAME_PASSWORD:
+ *  A User Name.
+ * 
+ * SSH_KEYS:
+ *  SSH Keys
+ * 
+ * FIXME: Change GSI to a more precise generic security protocol - X509
+ * 
+ */
+public enum SecurityProtocol implements org.apache.thrift.TEnum {
+  USERNAME_PASSWORD(0),
+  SSH_KEYS(1),
+  GSI(2),
+  KERBEROS(3),
+  OAUTH(4),
+  LOCAL(5);
+
+  private final int value;
+
+  private SecurityProtocol(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 SecurityProtocol findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return USERNAME_PASSWORD;
+      case 1:
+        return SSH_KEYS;
+      case 2:
+        return GSI;
+      case 3:
+        return KERBEROS;
+      case 4:
+        return OAUTH;
+      case 5:
+        return LOCAL;
+      default:
+        return null;
+    }
+  }
+}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
new file mode 100644
index 0000000..a20377d
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
@@ -0,0 +1,635 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.movement;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Data Movement through UnicoreStorage
+ * 
+ * unicoreEndPointURL:
+ *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class UnicoreDataMovement implements org.apache.thrift.TBase<UnicoreDataMovement, UnicoreDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreDataMovement> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreDataMovement");
+
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovementInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField SECURITY_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("securityProtocol", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField UNICORE_END_POINT_URL_FIELD_DESC = new org.apache.thrift.protocol.TField("unicoreEndPointURL", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UnicoreDataMovementStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UnicoreDataMovementTupleSchemeFactory());
+  }
+
+  public String dataMovementInterfaceId; // required
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SecurityProtocol securityProtocol; // required
+  public String unicoreEndPointURL; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    DATA_MOVEMENT_INTERFACE_ID((short)1, "dataMovementInterfaceId"),
+    /**
+     * 
+     * @see SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    UNICORE_END_POINT_URL((short)3, "unicoreEndPointURL");
+
+    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: // DATA_MOVEMENT_INTERFACE_ID
+          return DATA_MOVEMENT_INTERFACE_ID;
+        case 2: // SECURITY_PROTOCOL
+          return SECURITY_PROTOCOL;
+        case 3: // UNICORE_END_POINT_URL
+          return UNICORE_END_POINT_URL;
+        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
+  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.DATA_MOVEMENT_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovementInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SECURITY_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("securityProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SecurityProtocol.class)));
+    tmpMap.put(_Fields.UNICORE_END_POINT_URL, new org.apache.thrift.meta_data.FieldMetaData("unicoreEndPointURL", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UnicoreDataMovement.class, metaDataMap);
+  }
+
+  public UnicoreDataMovement() {
+    this.dataMovementInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public UnicoreDataMovement(
+    String dataMovementInterfaceId,
+    SecurityProtocol securityProtocol,
+    String unicoreEndPointURL)
+  {
+    this();
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+    this.securityProtocol = securityProtocol;
+    this.unicoreEndPointURL = unicoreEndPointURL;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public UnicoreDataMovement(UnicoreDataMovement other) {
+    if (other.isSetDataMovementInterfaceId()) {
+      this.dataMovementInterfaceId = other.dataMovementInterfaceId;
+    }
+    if (other.isSetSecurityProtocol()) {
+      this.securityProtocol = other.securityProtocol;
+    }
+    if (other.isSetUnicoreEndPointURL()) {
+      this.unicoreEndPointURL = other.unicoreEndPointURL;
+    }
+  }
+
+  public UnicoreDataMovement deepCopy() {
+    return new UnicoreDataMovement(this);
+  }
+
+  @Override
+  public void clear() {
+    this.dataMovementInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.securityProtocol = null;
+    this.unicoreEndPointURL = null;
+  }
+
+  public String getDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId;
+  }
+
+  public UnicoreDataMovement setDataMovementInterfaceId(String dataMovementInterfaceId) {
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+    return this;
+  }
+
+  public void unsetDataMovementInterfaceId() {
+    this.dataMovementInterfaceId = null;
+  }
+
+  /** Returns true if field dataMovementInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovementInterfaceId() {
+    return this.dataMovementInterfaceId != null;
+  }
+
+  public void setDataMovementInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.dataMovementInterfaceId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public UnicoreDataMovement setSecurityProtocol(SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+    return this;
+  }
+
+  public void unsetSecurityProtocol() {
+    this.securityProtocol = null;
+  }
+
+  /** Returns true if field securityProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetSecurityProtocol() {
+    return this.securityProtocol != null;
+  }
+
+  public void setSecurityProtocolIsSet(boolean value) {
+    if (!value) {
+      this.securityProtocol = null;
+    }
+  }
+
+  public String getUnicoreEndPointURL() {
+    return this.unicoreEndPointURL;
+  }
+
+  public UnicoreDataMovement setUnicoreEndPointURL(String unicoreEndPointURL) {
+    this.unicoreEndPointURL = unicoreEndPointURL;
+    return this;
+  }
+
+  public void unsetUnicoreEndPointURL() {
+    this.unicoreEndPointURL = null;
+  }
+
+  /** Returns true if field unicoreEndPointURL is set (has been assigned a value) and false otherwise */
+  public boolean isSetUnicoreEndPointURL() {
+    return this.unicoreEndPointURL != null;
+  }
+
+  public void setUnicoreEndPointURLIsSet(boolean value) {
+    if (!value) {
+      this.unicoreEndPointURL = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      if (value == null) {
+        unsetDataMovementInterfaceId();
+      } else {
+        setDataMovementInterfaceId((String)value);
+      }
+      break;
+
+    case SECURITY_PROTOCOL:
+      if (value == null) {
+        unsetSecurityProtocol();
+      } else {
+        setSecurityProtocol((SecurityProtocol)value);
+      }
+      break;
+
+    case UNICORE_END_POINT_URL:
+      if (value == null) {
+        unsetUnicoreEndPointURL();
+      } else {
+        setUnicoreEndPointURL((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case DATA_MOVEMENT_INTERFACE_ID:
+      return getDataMovementInterfaceId();
+
+    case SECURITY_PROTOCOL:
+      return getSecurityProtocol();
+
+    case UNICORE_END_POINT_URL:
+      return getUnicoreEndPointURL();
+
+    }
+    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 DATA_MOVEMENT_INTERFACE_ID:
+      return isSetDataMovementInterfaceId();
+    case SECURITY_PROTOCOL:
+      return isSetSecurityProtocol();
+    case UNICORE_END_POINT_URL:
+      return isSetUnicoreEndPointURL();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof UnicoreDataMovement)
+      return this.equals((UnicoreDataMovement)that);
+    return false;
+  }
+
+  public boolean equals(UnicoreDataMovement that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_dataMovementInterfaceId = true && this.isSetDataMovementInterfaceId();
+    boolean that_present_dataMovementInterfaceId = true && that.isSetDataMovementInterfaceId();
+    if (this_present_dataMovementInterfaceId || that_present_dataMovementInterfaceId) {
+      if (!(this_present_dataMovementInterfaceId && that_present_dataMovementInterfaceId))
+        return false;
+      if (!this.dataMovementInterfaceId.equals(that.dataMovementInterfaceId))
+        return false;
+    }
+
+    boolean this_present_securityProtocol = true && this.isSetSecurityProtocol();
+    boolean that_present_securityProtocol = true && that.isSetSecurityProtocol();
+    if (this_present_securityProtocol || that_present_securityProtocol) {
+      if (!(this_present_securityProtocol && that_present_securityProtocol))
+        return false;
+      if (!this.securityProtocol.equals(that.securityProtocol))
+        return false;
+    }
+
+    boolean this_present_unicoreEndPointURL = true && this.isSetUnicoreEndPointURL();
+    boolean that_present_unicoreEndPointURL = true && that.isSetUnicoreEndPointURL();
+    if (this_present_unicoreEndPointURL || that_present_unicoreEndPointURL) {
+      if (!(this_present_unicoreEndPointURL && that_present_unicoreEndPointURL))
+        return false;
+      if (!this.unicoreEndPointURL.equals(that.unicoreEndPointURL))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_dataMovementInterfaceId = true && (isSetDataMovementInterfaceId());
+    list.add(present_dataMovementInterfaceId);
+    if (present_dataMovementInterfaceId)
+      list.add(dataMovementInterfaceId);
+
+    boolean present_securityProtocol = true && (isSetSecurityProtocol());
+    list.add(present_securityProtocol);
+    if (present_securityProtocol)
+      list.add(securityProtocol.getValue());
+
+    boolean present_unicoreEndPointURL = true && (isSetUnicoreEndPointURL());
+    list.add(present_unicoreEndPointURL);
+    if (present_unicoreEndPointURL)
+      list.add(unicoreEndPointURL);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(UnicoreDataMovement other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetDataMovementInterfaceId()).compareTo(other.isSetDataMovementInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovementInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovementInterfaceId, other.dataMovementInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSecurityProtocol()).compareTo(other.isSetSecurityProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSecurityProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.securityProtocol, other.securityProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUnicoreEndPointURL()).compareTo(other.isSetUnicoreEndPointURL());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUnicoreEndPointURL()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.unicoreEndPointURL, other.unicoreEndPointURL);
+      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("UnicoreDataMovement(");
+    boolean first = true;
+
+    sb.append("dataMovementInterfaceId:");
+    if (this.dataMovementInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovementInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("securityProtocol:");
+    if (this.securityProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.securityProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("unicoreEndPointURL:");
+    if (this.unicoreEndPointURL == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.unicoreEndPointURL);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (dataMovementInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementInterfaceId' was not present! Struct: " + toString());
+    }
+    if (securityProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' was not present! Struct: " + toString());
+    }
+    if (unicoreEndPointURL == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'unicoreEndPointURL' was not present! 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 UnicoreDataMovementStandardSchemeFactory implements SchemeFactory {
+    public UnicoreDataMovementStandardScheme getScheme() {
+      return new UnicoreDataMovementStandardScheme();
+    }
+  }
+
+  private static class UnicoreDataMovementStandardScheme extends StandardScheme<UnicoreDataMovement> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, UnicoreDataMovement 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: // DATA_MOVEMENT_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataMovementInterfaceId = iprot.readString();
+              struct.setDataMovementInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // SECURITY_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+              struct.setSecurityProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // UNICORE_END_POINT_URL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.unicoreEndPointURL = iprot.readString();
+              struct.setUnicoreEndPointURLIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, UnicoreDataMovement struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.dataMovementInterfaceId != null) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.dataMovementInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.securityProtocol != null) {
+        oprot.writeFieldBegin(SECURITY_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.securityProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.unicoreEndPointURL != null) {
+        oprot.writeFieldBegin(UNICORE_END_POINT_URL_FIELD_DESC);
+        oprot.writeString(struct.unicoreEndPointURL);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UnicoreDataMovementTupleSchemeFactory implements SchemeFactory {
+    public UnicoreDataMovementTupleScheme getScheme() {
+      return new UnicoreDataMovementTupleScheme();
+    }
+  }
+
+  private static class UnicoreDataMovementTupleScheme extends TupleScheme<UnicoreDataMovement> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, UnicoreDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.dataMovementInterfaceId);
+      oprot.writeI32(struct.securityProtocol.getValue());
+      oprot.writeString(struct.unicoreEndPointURL);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, UnicoreDataMovement struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.dataMovementInterfaceId = iprot.readString();
+      struct.setDataMovementInterfaceIdIsSet(true);
+      struct.securityProtocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      struct.unicoreEndPointURL = iprot.readString();
+      struct.setUnicoreEndPointURLIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/resource/ReplicaLocationModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/resource/ReplicaLocationModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/resource/ReplicaLocationModel.java
new file mode 100644
index 0000000..b0c14cc
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/resource/ReplicaLocationModel.java
@@ -0,0 +1,462 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.resource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ReplicaLocationModel implements org.apache.thrift.TBase<ReplicaLocationModel, ReplicaLocationModel._Fields>, java.io.Serializable, Cloneable, Comparable<ReplicaLocationModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ReplicaLocationModel");
+
+  private static final org.apache.thrift.protocol.TField PHYSICAL_LOCATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("physicalLocations", org.apache.thrift.protocol.TType.LIST, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ReplicaLocationModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ReplicaLocationModelTupleSchemeFactory());
+  }
+
+  public List<String> physicalLocations; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    PHYSICAL_LOCATIONS((short)1, "physicalLocations");
+
+    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: // PHYSICAL_LOCATIONS
+          return PHYSICAL_LOCATIONS;
+        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 _Fields optionals[] = {_Fields.PHYSICAL_LOCATIONS};
+  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.PHYSICAL_LOCATIONS, new org.apache.thrift.meta_data.FieldMetaData("physicalLocations", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ReplicaLocationModel.class, metaDataMap);
+  }
+
+  public ReplicaLocationModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ReplicaLocationModel(ReplicaLocationModel other) {
+    if (other.isSetPhysicalLocations()) {
+      List<String> __this__physicalLocations = new ArrayList<String>(other.physicalLocations);
+      this.physicalLocations = __this__physicalLocations;
+    }
+  }
+
+  public ReplicaLocationModel deepCopy() {
+    return new ReplicaLocationModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.physicalLocations = null;
+  }
+
+  public int getPhysicalLocationsSize() {
+    return (this.physicalLocations == null) ? 0 : this.physicalLocations.size();
+  }
+
+  public java.util.Iterator<String> getPhysicalLocationsIterator() {
+    return (this.physicalLocations == null) ? null : this.physicalLocations.iterator();
+  }
+
+  public void addToPhysicalLocations(String elem) {
+    if (this.physicalLocations == null) {
+      this.physicalLocations = new ArrayList<String>();
+    }
+    this.physicalLocations.add(elem);
+  }
+
+  public List<String> getPhysicalLocations() {
+    return this.physicalLocations;
+  }
+
+  public ReplicaLocationModel setPhysicalLocations(List<String> physicalLocations) {
+    this.physicalLocations = physicalLocations;
+    return this;
+  }
+
+  public void unsetPhysicalLocations() {
+    this.physicalLocations = null;
+  }
+
+  /** Returns true if field physicalLocations is set (has been assigned a value) and false otherwise */
+  public boolean isSetPhysicalLocations() {
+    return this.physicalLocations != null;
+  }
+
+  public void setPhysicalLocationsIsSet(boolean value) {
+    if (!value) {
+      this.physicalLocations = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case PHYSICAL_LOCATIONS:
+      if (value == null) {
+        unsetPhysicalLocations();
+      } else {
+        setPhysicalLocations((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PHYSICAL_LOCATIONS:
+      return getPhysicalLocations();
+
+    }
+    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 PHYSICAL_LOCATIONS:
+      return isSetPhysicalLocations();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ReplicaLocationModel)
+      return this.equals((ReplicaLocationModel)that);
+    return false;
+  }
+
+  public boolean equals(ReplicaLocationModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_physicalLocations = true && this.isSetPhysicalLocations();
+    boolean that_present_physicalLocations = true && that.isSetPhysicalLocations();
+    if (this_present_physicalLocations || that_present_physicalLocations) {
+      if (!(this_present_physicalLocations && that_present_physicalLocations))
+        return false;
+      if (!this.physicalLocations.equals(that.physicalLocations))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_physicalLocations = true && (isSetPhysicalLocations());
+    list.add(present_physicalLocations);
+    if (present_physicalLocations)
+      list.add(physicalLocations);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ReplicaLocationModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetPhysicalLocations()).compareTo(other.isSetPhysicalLocations());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPhysicalLocations()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.physicalLocations, other.physicalLocations);
+      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("ReplicaLocationModel(");
+    boolean first = true;
+
+    if (isSetPhysicalLocations()) {
+      sb.append("physicalLocations:");
+      if (this.physicalLocations == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.physicalLocations);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 ReplicaLocationModelStandardSchemeFactory implements SchemeFactory {
+    public ReplicaLocationModelStandardScheme getScheme() {
+      return new ReplicaLocationModelStandardScheme();
+    }
+  }
+
+  private static class ReplicaLocationModelStandardScheme extends StandardScheme<ReplicaLocationModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ReplicaLocationModel 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: // PHYSICAL_LOCATIONS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list8 = iprot.readListBegin();
+                struct.physicalLocations = new ArrayList<String>(_list8.size);
+                String _elem9;
+                for (int _i10 = 0; _i10 < _list8.size; ++_i10)
+                {
+                  _elem9 = iprot.readString();
+                  struct.physicalLocations.add(_elem9);
+                }
+                iprot.readListEnd();
+              }
+              struct.setPhysicalLocationsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ReplicaLocationModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.physicalLocations != null) {
+        if (struct.isSetPhysicalLocations()) {
+          oprot.writeFieldBegin(PHYSICAL_LOCATIONS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.physicalLocations.size()));
+            for (String _iter11 : struct.physicalLocations)
+            {
+              oprot.writeString(_iter11);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ReplicaLocationModelTupleSchemeFactory implements SchemeFactory {
+    public ReplicaLocationModelTupleScheme getScheme() {
+      return new ReplicaLocationModelTupleScheme();
+    }
+  }
+
+  private static class ReplicaLocationModelTupleScheme extends TupleScheme<ReplicaLocationModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ReplicaLocationModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetPhysicalLocations()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetPhysicalLocations()) {
+        {
+          oprot.writeI32(struct.physicalLocations.size());
+          for (String _iter12 : struct.physicalLocations)
+          {
+            oprot.writeString(_iter12);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ReplicaLocationModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.physicalLocations = new ArrayList<String>(_list13.size);
+          String _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+          {
+            _elem14 = iprot.readString();
+            struct.physicalLocations.add(_elem14);
+          }
+        }
+        struct.setPhysicalLocationsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/resource/ResourceModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/resource/ResourceModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/resource/ResourceModel.java
new file mode 100644
index 0000000..9193175
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/data/resource/ResourceModel.java
@@ -0,0 +1,684 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.resource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ResourceModel implements org.apache.thrift.TBase<ResourceModel, ResourceModel._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceModel");
+
+  private static final org.apache.thrift.protocol.TField RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField RESOURCE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField REPLICA_LOCATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaLocations", org.apache.thrift.protocol.TType.LIST, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ResourceModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ResourceModelTupleSchemeFactory());
+  }
+
+  public String resourceId; // optional
+  public String resourceName; // optional
+  public List<ReplicaLocationModel> replicaLocations; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    RESOURCE_ID((short)1, "resourceId"),
+    RESOURCE_NAME((short)2, "resourceName"),
+    REPLICA_LOCATIONS((short)3, "replicaLocations");
+
+    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: // RESOURCE_ID
+          return RESOURCE_ID;
+        case 2: // RESOURCE_NAME
+          return RESOURCE_NAME;
+        case 3: // REPLICA_LOCATIONS
+          return REPLICA_LOCATIONS;
+        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 _Fields optionals[] = {_Fields.RESOURCE_ID,_Fields.RESOURCE_NAME};
+  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.RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("resourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_NAME, new org.apache.thrift.meta_data.FieldMetaData("resourceName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REPLICA_LOCATIONS, new org.apache.thrift.meta_data.FieldMetaData("replicaLocations", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT            , "ReplicaLocationModel"))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ResourceModel.class, metaDataMap);
+  }
+
+  public ResourceModel() {
+  }
+
+  public ResourceModel(
+    List<ReplicaLocationModel> replicaLocations)
+  {
+    this();
+    this.replicaLocations = replicaLocations;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ResourceModel(ResourceModel other) {
+    if (other.isSetResourceId()) {
+      this.resourceId = other.resourceId;
+    }
+    if (other.isSetResourceName()) {
+      this.resourceName = other.resourceName;
+    }
+    if (other.isSetReplicaLocations()) {
+      List<ReplicaLocationModel> __this__replicaLocations = new ArrayList<ReplicaLocationModel>(other.replicaLocations.size());
+      for (ReplicaLocationModel other_element : other.replicaLocations) {
+        __this__replicaLocations.add(other_element);
+      }
+      this.replicaLocations = __this__replicaLocations;
+    }
+  }
+
+  public ResourceModel deepCopy() {
+    return new ResourceModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.resourceId = null;
+    this.resourceName = null;
+    this.replicaLocations = null;
+  }
+
+  public String getResourceId() {
+    return this.resourceId;
+  }
+
+  public ResourceModel setResourceId(String resourceId) {
+    this.resourceId = resourceId;
+    return this;
+  }
+
+  public void unsetResourceId() {
+    this.resourceId = null;
+  }
+
+  /** Returns true if field resourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceId() {
+    return this.resourceId != null;
+  }
+
+  public void setResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.resourceId = null;
+    }
+  }
+
+  public String getResourceName() {
+    return this.resourceName;
+  }
+
+  public ResourceModel setResourceName(String resourceName) {
+    this.resourceName = resourceName;
+    return this;
+  }
+
+  public void unsetResourceName() {
+    this.resourceName = null;
+  }
+
+  /** Returns true if field resourceName is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceName() {
+    return this.resourceName != null;
+  }
+
+  public void setResourceNameIsSet(boolean value) {
+    if (!value) {
+      this.resourceName = null;
+    }
+  }
+
+  public int getReplicaLocationsSize() {
+    return (this.replicaLocations == null) ? 0 : this.replicaLocations.size();
+  }
+
+  public java.util.Iterator<ReplicaLocationModel> getReplicaLocationsIterator() {
+    return (this.replicaLocations == null) ? null : this.replicaLocations.iterator();
+  }
+
+  public void addToReplicaLocations(ReplicaLocationModel elem) {
+    if (this.replicaLocations == null) {
+      this.replicaLocations = new ArrayList<ReplicaLocationModel>();
+    }
+    this.replicaLocations.add(elem);
+  }
+
+  public List<ReplicaLocationModel> getReplicaLocations() {
+    return this.replicaLocations;
+  }
+
+  public ResourceModel setReplicaLocations(List<ReplicaLocationModel> replicaLocations) {
+    this.replicaLocations = replicaLocations;
+    return this;
+  }
+
+  public void unsetReplicaLocations() {
+    this.replicaLocations = null;
+  }
+
+  /** Returns true if field replicaLocations is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaLocations() {
+    return this.replicaLocations != null;
+  }
+
+  public void setReplicaLocationsIsSet(boolean value) {
+    if (!value) {
+      this.replicaLocations = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case RESOURCE_ID:
+      if (value == null) {
+        unsetResourceId();
+      } else {
+        setResourceId((String)value);
+      }
+      break;
+
+    case RESOURCE_NAME:
+      if (value == null) {
+        unsetResourceName();
+      } else {
+        setResourceName((String)value);
+      }
+      break;
+
+    case REPLICA_LOCATIONS:
+      if (value == null) {
+        unsetReplicaLocations();
+      } else {
+        setReplicaLocations((List<ReplicaLocationModel>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case RESOURCE_ID:
+      return getResourceId();
+
+    case RESOURCE_NAME:
+      return getResourceName();
+
+    case REPLICA_LOCATIONS:
+      return getReplicaLocations();
+
+    }
+    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 RESOURCE_ID:
+      return isSetResourceId();
+    case RESOURCE_NAME:
+      return isSetResourceName();
+    case REPLICA_LOCATIONS:
+      return isSetReplicaLocations();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ResourceModel)
+      return this.equals((ResourceModel)that);
+    return false;
+  }
+
+  public boolean equals(ResourceModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_resourceId = true && this.isSetResourceId();
+    boolean that_present_resourceId = true && that.isSetResourceId();
+    if (this_present_resourceId || that_present_resourceId) {
+      if (!(this_present_resourceId && that_present_resourceId))
+        return false;
+      if (!this.resourceId.equals(that.resourceId))
+        return false;
+    }
+
+    boolean this_present_resourceName = true && this.isSetResourceName();
+    boolean that_present_resourceName = true && that.isSetResourceName();
+    if (this_present_resourceName || that_present_resourceName) {
+      if (!(this_present_resourceName && that_present_resourceName))
+        return false;
+      if (!this.resourceName.equals(that.resourceName))
+        return false;
+    }
+
+    boolean this_present_replicaLocations = true && this.isSetReplicaLocations();
+    boolean that_present_replicaLocations = true && that.isSetReplicaLocations();
+    if (this_present_replicaLocations || that_present_replicaLocations) {
+      if (!(this_present_replicaLocations && that_present_replicaLocations))
+        return false;
+      if (!this.replicaLocations.equals(that.replicaLocations))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_resourceId = true && (isSetResourceId());
+    list.add(present_resourceId);
+    if (present_resourceId)
+      list.add(resourceId);
+
+    boolean present_resourceName = true && (isSetResourceName());
+    list.add(present_resourceName);
+    if (present_resourceName)
+      list.add(resourceName);
+
+    boolean present_replicaLocations = true && (isSetReplicaLocations());
+    list.add(present_replicaLocations);
+    if (present_replicaLocations)
+      list.add(replicaLocations);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ResourceModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetResourceId()).compareTo(other.isSetResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceId, other.resourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceName()).compareTo(other.isSetResourceName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceName, other.resourceName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaLocations()).compareTo(other.isSetReplicaLocations());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaLocations()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaLocations, other.replicaLocations);
+      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("ResourceModel(");
+    boolean first = true;
+
+    if (isSetResourceId()) {
+      sb.append("resourceId:");
+      if (this.resourceId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceId);
+      }
+      first = false;
+    }
+    if (isSetResourceName()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceName:");
+      if (this.resourceName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceName);
+      }
+      first = false;
+    }
+    if (!first) sb.append(", ");
+    sb.append("replicaLocations:");
+    if (this.replicaLocations == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.replicaLocations);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 ResourceModelStandardSchemeFactory implements SchemeFactory {
+    public ResourceModelStandardScheme getScheme() {
+      return new ResourceModelStandardScheme();
+    }
+  }
+
+  private static class ResourceModelStandardScheme extends StandardScheme<ResourceModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ResourceModel 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: // RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceId = iprot.readString();
+              struct.setResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // RESOURCE_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceName = iprot.readString();
+              struct.setResourceNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // REPLICA_LOCATIONS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.replicaLocations = new ArrayList<ReplicaLocationModel>(_list0.size);
+                ReplicaLocationModel _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new ReplicaLocationModel();
+                  _elem1.read(iprot);
+                  struct.replicaLocations.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setReplicaLocationsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ResourceModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.resourceId != null) {
+        if (struct.isSetResourceId()) {
+          oprot.writeFieldBegin(RESOURCE_ID_FIELD_DESC);
+          oprot.writeString(struct.resourceId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceName != null) {
+        if (struct.isSetResourceName()) {
+          oprot.writeFieldBegin(RESOURCE_NAME_FIELD_DESC);
+          oprot.writeString(struct.resourceName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaLocations != null) {
+        oprot.writeFieldBegin(REPLICA_LOCATIONS_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.replicaLocations.size()));
+          for (ReplicaLocationModel _iter3 : struct.replicaLocations)
+          {
+            _iter3.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ResourceModelTupleSchemeFactory implements SchemeFactory {
+    public ResourceModelTupleScheme getScheme() {
+      return new ResourceModelTupleScheme();
+    }
+  }
+
+  private static class ResourceModelTupleScheme extends TupleScheme<ResourceModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ResourceModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetResourceId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetResourceName()) {
+        optionals.set(1);
+      }
+      if (struct.isSetReplicaLocations()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetResourceId()) {
+        oprot.writeString(struct.resourceId);
+      }
+      if (struct.isSetResourceName()) {
+        oprot.writeString(struct.resourceName);
+      }
+      if (struct.isSetReplicaLocations()) {
+        {
+          oprot.writeI32(struct.replicaLocations.size());
+          for (ReplicaLocationModel _iter4 : struct.replicaLocations)
+          {
+            _iter4.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ResourceModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.resourceId = iprot.readString();
+        struct.setResourceIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.resourceName = iprot.readString();
+        struct.setResourceNameIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.replicaLocations = new ArrayList<ReplicaLocationModel>(_list5.size);
+          ReplicaLocationModel _elem6;
+          for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+          {
+            _elem6 = new ReplicaLocationModel();
+            _elem6.read(iprot);
+            struct.replicaLocations.add(_elem6);
+          }
+        }
+        struct.setReplicaLocationsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataClientException.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
new file mode 100644
index 0000000..2890071
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
@@ -0,0 +1,550 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * This exception is thrown by Airavata Services when a call fails as a result of
+ * a problem that a client may be able to resolve.  For example, if the user
+ * attempts to execute an application on a resource gateway does not have access to.
+ * 
+ * This exception would not be used for internal system errors that do not
+ * reflect user actions, but rather reflect a problem within the service that
+ * the client cannot resolve.
+ * 
+ * airavataErrorType:  The message type indicating the error that occurred.
+ *   must be one of the values of AiravataErrorType.
+ * 
+ * parameter:  If the error applied to a particular input parameter, this will
+ *   indicate which parameter.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class AiravataClientException extends TException implements org.apache.thrift.TBase<AiravataClientException, AiravataClientException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataClientException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataClientException");
+
+  private static final org.apache.thrift.protocol.TField AIRAVATA_ERROR_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataErrorType", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField PARAMETER_FIELD_DESC = new org.apache.thrift.protocol.TField("parameter", org.apache.thrift.protocol.TType.STRING, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new AiravataClientExceptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new AiravataClientExceptionTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see AiravataErrorType
+   */
+  public AiravataErrorType airavataErrorType; // required
+  public String parameter; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see AiravataErrorType
+     */
+    AIRAVATA_ERROR_TYPE((short)1, "airavataErrorType"),
+    PARAMETER((short)2, "parameter");
+
+    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_ERROR_TYPE
+          return AIRAVATA_ERROR_TYPE;
+        case 2: // PARAMETER
+          return PARAMETER;
+        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 _Fields optionals[] = {_Fields.PARAMETER};
+  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_ERROR_TYPE, new org.apache.thrift.meta_data.FieldMetaData("airavataErrorType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, AiravataErrorType.class)));
+    tmpMap.put(_Fields.PARAMETER, new org.apache.thrift.meta_data.FieldMetaData("parameter", 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(AiravataClientException.class, metaDataMap);
+  }
+
+  public AiravataClientException() {
+  }
+
+  public AiravataClientException(
+    AiravataErrorType airavataErrorType)
+  {
+    this();
+    this.airavataErrorType = airavataErrorType;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public AiravataClientException(AiravataClientException other) {
+    if (other.isSetAiravataErrorType()) {
+      this.airavataErrorType = other.airavataErrorType;
+    }
+    if (other.isSetParameter()) {
+      this.parameter = other.parameter;
+    }
+  }
+
+  public AiravataClientException deepCopy() {
+    return new AiravataClientException(this);
+  }
+
+  @Override
+  public void clear() {
+    this.airavataErrorType = null;
+    this.parameter = null;
+  }
+
+  /**
+   * 
+   * @see AiravataErrorType
+   */
+  public AiravataErrorType getAiravataErrorType() {
+    return this.airavataErrorType;
+  }
+
+  /**
+   * 
+   * @see AiravataErrorType
+   */
+  public AiravataClientException setAiravataErrorType(AiravataErrorType airavataErrorType) {
+    this.airavataErrorType = airavataErrorType;
+    return this;
+  }
+
+  public void unsetAiravataErrorType() {
+    this.airavataErrorType = null;
+  }
+
+  /** Returns true if field airavataErrorType is set (has been assigned a value) and false otherwise */
+  public boolean isSetAiravataErrorType() {
+    return this.airavataErrorType != null;
+  }
+
+  public void setAiravataErrorTypeIsSet(boolean value) {
+    if (!value) {
+      this.airavataErrorType = null;
+    }
+  }
+
+  public String getParameter() {
+    return this.parameter;
+  }
+
+  public AiravataClientException setParameter(String parameter) {
+    this.parameter = parameter;
+    return this;
+  }
+
+  public void unsetParameter() {
+    this.parameter = null;
+  }
+
+  /** Returns true if field parameter is set (has been assigned a value) and false otherwise */
+  public boolean isSetParameter() {
+    return this.parameter != null;
+  }
+
+  public void setParameterIsSet(boolean value) {
+    if (!value) {
+      this.parameter = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case AIRAVATA_ERROR_TYPE:
+      if (value == null) {
+        unsetAiravataErrorType();
+      } else {
+        setAiravataErrorType((AiravataErrorType)value);
+      }
+      break;
+
+    case PARAMETER:
+      if (value == null) {
+        unsetParameter();
+      } else {
+        setParameter((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case AIRAVATA_ERROR_TYPE:
+      return getAiravataErrorType();
+
+    case PARAMETER:
+      return getParameter();
+
+    }
+    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_ERROR_TYPE:
+      return isSetAiravataErrorType();
+    case PARAMETER:
+      return isSetParameter();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof AiravataClientException)
+      return this.equals((AiravataClientException)that);
+    return false;
+  }
+
+  public boolean equals(AiravataClientException that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_airavataErrorType = true && this.isSetAiravataErrorType();
+    boolean that_present_airavataErrorType = true && that.isSetAiravataErrorType();
+    if (this_present_airavataErrorType || that_present_airavataErrorType) {
+      if (!(this_present_airavataErrorType && that_present_airavataErrorType))
+        return false;
+      if (!this.airavataErrorType.equals(that.airavataErrorType))
+        return false;
+    }
+
+    boolean this_present_parameter = true && this.isSetParameter();
+    boolean that_present_parameter = true && that.isSetParameter();
+    if (this_present_parameter || that_present_parameter) {
+      if (!(this_present_parameter && that_present_parameter))
+        return false;
+      if (!this.parameter.equals(that.parameter))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_airavataErrorType = true && (isSetAiravataErrorType());
+    list.add(present_airavataErrorType);
+    if (present_airavataErrorType)
+      list.add(airavataErrorType.getValue());
+
+    boolean present_parameter = true && (isSetParameter());
+    list.add(present_parameter);
+    if (present_parameter)
+      list.add(parameter);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(AiravataClientException other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetAiravataErrorType()).compareTo(other.isSetAiravataErrorType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAiravataErrorType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataErrorType, other.airavataErrorType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetParameter()).compareTo(other.isSetParameter());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetParameter()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parameter, other.parameter);
+      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("AiravataClientException(");
+    boolean first = true;
+
+    sb.append("airavataErrorType:");
+    if (this.airavataErrorType == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.airavataErrorType);
+    }
+    first = false;
+    if (isSetParameter()) {
+      if (!first) sb.append(", ");
+      sb.append("parameter:");
+      if (this.parameter == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.parameter);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (airavataErrorType == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataErrorType' was not present! 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 AiravataClientExceptionStandardSchemeFactory implements SchemeFactory {
+    public AiravataClientExceptionStandardScheme getScheme() {
+      return new AiravataClientExceptionStandardScheme();
+    }
+  }
+
+  private static class AiravataClientExceptionStandardScheme extends StandardScheme<AiravataClientException> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, AiravataClientException 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_ERROR_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.airavataErrorType = org.apache.airavata.model.error.AiravataErrorType.findByValue(iprot.readI32());
+              struct.setAiravataErrorTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PARAMETER
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.parameter = iprot.readString();
+              struct.setParameterIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, AiravataClientException struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.airavataErrorType != null) {
+        oprot.writeFieldBegin(AIRAVATA_ERROR_TYPE_FIELD_DESC);
+        oprot.writeI32(struct.airavataErrorType.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.parameter != null) {
+        if (struct.isSetParameter()) {
+          oprot.writeFieldBegin(PARAMETER_FIELD_DESC);
+          oprot.writeString(struct.parameter);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class AiravataClientExceptionTupleSchemeFactory implements SchemeFactory {
+    public AiravataClientExceptionTupleScheme getScheme() {
+      return new AiravataClientExceptionTupleScheme();
+    }
+  }
+
+  private static class AiravataClientExceptionTupleScheme extends TupleScheme<AiravataClientException> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, AiravataClientException struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.airavataErrorType.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetParameter()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetParameter()) {
+        oprot.writeString(struct.parameter);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, AiravataClientException struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.airavataErrorType = org.apache.airavata.model.error.AiravataErrorType.findByValue(iprot.readI32());
+      struct.setAiravataErrorTypeIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.parameter = iprot.readString();
+        struct.setParameterIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataErrorType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataErrorType.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataErrorType.java
new file mode 100644
index 0000000..09409f2
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/error/AiravataErrorType.java
@@ -0,0 +1,99 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.error;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * A list of Airavata API Error Message Types
+ * 
+ *  UNKNOWN: No information available about the error
+ *   
+ *  PERMISSION_DENIED: Not permitted to perform action
+ * 
+ *  INTERNAL_ERROR: Unexpected problem with the service
+ * 
+ *  AUTHENTICATION_FAILURE: The client failed to authenticate.
+ * 
+ *  INVALID_AUTHORIZATION: Security Token and/or Username and/or password is incorrect
+ *   
+ *  AUTHORIZATION_EXPIRED: Authentication token expired
+ *  
+ *  UNKNOWN_GATEWAY_ID: The gateway is not registered with Airavata.
+ * 
+ *  UNSUPPORTED_OPERATION: Operation denied because it is currently unsupported.
+ */
+public enum AiravataErrorType implements org.apache.thrift.TEnum {
+  UNKNOWN(0),
+  PERMISSION_DENIED(1),
+  INTERNAL_ERROR(2),
+  AUTHENTICATION_FAILURE(3),
+  INVALID_AUTHORIZATION(4),
+  AUTHORIZATION_EXPIRED(5),
+  UNKNOWN_GATEWAY_ID(6),
+  UNSUPPORTED_OPERATION(7);
+
+  private final int value;
+
+  private AiravataErrorType(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 AiravataErrorType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return UNKNOWN;
+      case 1:
+        return PERMISSION_DENIED;
+      case 2:
+        return INTERNAL_ERROR;
+      case 3:
+        return AUTHENTICATION_FAILURE;
+      case 4:
+        return INVALID_AUTHORIZATION;
+      case 5:
+        return AUTHORIZATION_EXPIRED;
+      case 6:
+        return UNKNOWN_GATEWAY_ID;
+      case 7:
+        return UNSUPPORTED_OPERATION;
+      default:
+        return null;
+    }
+  }
+}


[26/65] [abbrv] airavata git commit: adding thrift generate files

Posted by sc...@apache.org.
adding thrift generate files


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/0f782d88
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/0f782d88
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/0f782d88

Branch: refs/heads/data-manager
Commit: 0f782d8817ff2d2fae6b599e44448596620e9bf7
Parents: 09209ea
Author: scnakandala <su...@gmail.com>
Authored: Wed Dec 2 11:39:44 2015 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Tue Jan 12 10:56:03 2016 -0500

----------------------------------------------------------------------
 .../src/main/resources/lib/airavata/Airavata.h  | 168 ++++++++++
 .../lib/airavata/Airavata_server.skeleton.cpp   |   5 +
 .../resources/lib/Airavata/API/Airavata.php     | 330 +++++++++++++++++++
 .../lib/apache/airavata/api/Airavata-remote     |   7 +
 .../lib/apache/airavata/api/Airavata.py         | 258 +++++++++++++++
 .../airavata/data/manager/DataManager.java      |  56 +++-
 .../data/manager/DataManagerFactory.java        |   4 +
 .../airavata/data/manager/DataManagerImpl.java  |  23 +-
 .../data/manager/DataManagerFactoryTest.java    |   8 +
 pom.xml                                         |   1 +
 10 files changed, 856 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/0f782d88/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index 758208b..0c19761 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -2272,6 +2272,7 @@ class AiravataIf {
   virtual void updateWorkflow(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowTemplateId, const  ::Workflow& workflow) = 0;
   virtual void getWorkflowTemplateId(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName) = 0;
   virtual bool isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName) = 0;
+  virtual void publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel) = 0;
 };
 
 class AiravataIfFactory {
@@ -2739,6 +2740,9 @@ class AiravataNull : virtual public AiravataIf {
     bool _return = false;
     return _return;
   }
+  void publishDataResource(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::data::resource::ResourceModel& /* resourceModel */) {
+    return;
+  }
 };
 
 
@@ -21341,6 +21345,156 @@ class Airavata_isWorkflowExistWithName_presult {
 
 };
 
+typedef struct _Airavata_publishDataResource_args__isset {
+  _Airavata_publishDataResource_args__isset() : resourceModel(false) {}
+  bool resourceModel :1;
+} _Airavata_publishDataResource_args__isset;
+
+class Airavata_publishDataResource_args {
+ public:
+
+  static const char* ascii_fingerprint; // = "312BA5A54BBA157D64BAD509924F7B34";
+  static const uint8_t binary_fingerprint[16]; // = {0x31,0x2B,0xA5,0xA5,0x4B,0xBA,0x15,0x7D,0x64,0xBA,0xD5,0x09,0x92,0x4F,0x7B,0x34};
+
+  Airavata_publishDataResource_args(const Airavata_publishDataResource_args&);
+  Airavata_publishDataResource_args& operator=(const Airavata_publishDataResource_args&);
+  Airavata_publishDataResource_args() {
+  }
+
+  virtual ~Airavata_publishDataResource_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+   ::apache::airavata::model::data::resource::ResourceModel resourceModel;
+
+  _Airavata_publishDataResource_args__isset __isset;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_resourceModel(const  ::apache::airavata::model::data::resource::ResourceModel& val);
+
+  bool operator == (const Airavata_publishDataResource_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(resourceModel == rhs.resourceModel))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_publishDataResource_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_publishDataResource_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_publishDataResource_args& obj);
+};
+
+
+class Airavata_publishDataResource_pargs {
+ public:
+
+  static const char* ascii_fingerprint; // = "312BA5A54BBA157D64BAD509924F7B34";
+  static const uint8_t binary_fingerprint[16]; // = {0x31,0x2B,0xA5,0xA5,0x4B,0xBA,0x15,0x7D,0x64,0xBA,0xD5,0x09,0x92,0x4F,0x7B,0x34};
+
+
+  virtual ~Airavata_publishDataResource_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const  ::apache::airavata::model::data::resource::ResourceModel* resourceModel;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_publishDataResource_pargs& obj);
+};
+
+typedef struct _Airavata_publishDataResource_result__isset {
+  _Airavata_publishDataResource_result__isset() : ire(false), ace(false), ase(false), ae(false) {}
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_publishDataResource_result__isset;
+
+class Airavata_publishDataResource_result {
+ public:
+
+  static const char* ascii_fingerprint; // = "0603929641B3F91F81AA6AC437512303";
+  static const uint8_t binary_fingerprint[16]; // = {0x06,0x03,0x92,0x96,0x41,0xB3,0xF9,0x1F,0x81,0xAA,0x6A,0xC4,0x37,0x51,0x23,0x03};
+
+  Airavata_publishDataResource_result(const Airavata_publishDataResource_result&);
+  Airavata_publishDataResource_result& operator=(const Airavata_publishDataResource_result&);
+  Airavata_publishDataResource_result() {
+  }
+
+  virtual ~Airavata_publishDataResource_result() throw();
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_publishDataResource_result__isset __isset;
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_publishDataResource_result & rhs) const
+  {
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_publishDataResource_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_publishDataResource_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_publishDataResource_result& obj);
+};
+
+typedef struct _Airavata_publishDataResource_presult__isset {
+  _Airavata_publishDataResource_presult__isset() : ire(false), ace(false), ase(false), ae(false) {}
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_publishDataResource_presult__isset;
+
+class Airavata_publishDataResource_presult {
+ public:
+
+  static const char* ascii_fingerprint; // = "0603929641B3F91F81AA6AC437512303";
+  static const uint8_t binary_fingerprint[16]; // = {0x06,0x03,0x92,0x96,0x41,0xB3,0xF9,0x1F,0x81,0xAA,0x6A,0xC4,0x37,0x51,0x23,0x03};
+
+
+  virtual ~Airavata_publishDataResource_presult() throw();
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_publishDataResource_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+  friend std::ostream& operator<<(std::ostream& out, const Airavata_publishDataResource_presult& obj);
+};
+
 class AiravataClient : virtual public AiravataIf {
  public:
   AiravataClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) {
@@ -21762,6 +21916,9 @@ class AiravataClient : virtual public AiravataIf {
   bool isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName);
   void send_isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName);
   bool recv_isWorkflowExistWithName();
+  void publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel);
+  void send_publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel);
+  void recv_publishDataResource();
  protected:
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;
@@ -21909,6 +22066,7 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
   void process_updateWorkflow(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getWorkflowTemplateId(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_isWorkflowExistWithName(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_publishDataResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  public:
   AiravataProcessor(boost::shared_ptr<AiravataIf> iface) :
     iface_(iface) {
@@ -22044,6 +22202,7 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
     processMap_["updateWorkflow"] = &AiravataProcessor::process_updateWorkflow;
     processMap_["getWorkflowTemplateId"] = &AiravataProcessor::process_getWorkflowTemplateId;
     processMap_["isWorkflowExistWithName"] = &AiravataProcessor::process_isWorkflowExistWithName;
+    processMap_["publishDataResource"] = &AiravataProcessor::process_publishDataResource;
   }
 
   virtual ~AiravataProcessor() {}
@@ -23341,6 +23500,15 @@ class AiravataMultiface : virtual public AiravataIf {
     return ifaces_[i]->isWorkflowExistWithName(authzToken, workflowName);
   }
 
+  void publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->publishDataResource(authzToken, resourceModel);
+    }
+    ifaces_[i]->publishDataResource(authzToken, resourceModel);
+  }
+
 };
 
 // The 'concurrent' client is a thread safe client that correctly handles

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f782d88/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index 382818b..1a949d0 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -2688,6 +2688,11 @@ class AiravataHandler : virtual public AiravataIf {
     printf("isWorkflowExistWithName\n");
   }
 
+  void publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel) {
+    // Your implementation goes here
+    printf("publishDataResource\n");
+  }
+
 };
 
 int main(int argc, char **argv) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f782d88/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index 394a8b9..ba22aca 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -3123,6 +3123,15 @@ interface AiravataIf {
    * @throws \Airavata\API\Error\AuthorizationException
    */
   public function isWorkflowExistWithName(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName);
+  /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param \Airavata\Model\Data\Resource\ResourceModel $resourceModel
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function publishDataResource(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Resource\ResourceModel $resourceModel);
 }
 
 class AiravataClient implements \Airavata\API\AiravataIf {
@@ -11682,6 +11691,67 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("isWorkflowExistWithName failed: unknown result");
   }
 
+  public function publishDataResource(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Resource\ResourceModel $resourceModel)
+  {
+    $this->send_publishDataResource($authzToken, $resourceModel);
+    $this->recv_publishDataResource();
+  }
+
+  public function send_publishDataResource(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Resource\ResourceModel $resourceModel)
+  {
+    $args = new \Airavata\API\Airavata_publishDataResource_args();
+    $args->authzToken = $authzToken;
+    $args->resourceModel = $resourceModel;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'publishDataResource', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('publishDataResource', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_publishDataResource()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_publishDataResource_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_publishDataResource_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    return;
+  }
+
 }
 
 // HELPER FUNCTIONS AND STRUCTURES
@@ -52213,4 +52283,264 @@ class Airavata_isWorkflowExistWithName_result {
 
 }
 
+class Airavata_publishDataResource_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var \Airavata\Model\Data\Resource\ResourceModel
+   */
+  public $resourceModel = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'resourceModel',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Data\Resource\ResourceModel',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['resourceModel'])) {
+        $this->resourceModel = $vals['resourceModel'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_publishDataResource_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->resourceModel = new \Airavata\Model\Data\Resource\ResourceModel();
+            $xfer += $this->resourceModel->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_publishDataResource_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->resourceModel !== null) {
+      if (!is_object($this->resourceModel)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('resourceModel', TType::STRUCT, 2);
+      $xfer += $this->resourceModel->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_publishDataResource_result {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_publishDataResource_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_publishDataResource_result');
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f782d88/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
index 89d3a68..b09661a 100755
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
@@ -156,6 +156,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
   print('  void updateWorkflow(AuthzToken authzToken, string workflowTemplateId, Workflow workflow)')
   print('  string getWorkflowTemplateId(AuthzToken authzToken, string workflowName)')
   print('  bool isWorkflowExistWithName(AuthzToken authzToken, string workflowName)')
+  print('  void publishDataResource(AuthzToken authzToken, ResourceModel resourceModel)')
   print('')
   sys.exit(0)
 
@@ -1004,6 +1005,12 @@ elif cmd == 'isWorkflowExistWithName':
     sys.exit(1)
   pp.pprint(client.isWorkflowExistWithName(eval(args[0]),args[1],))
 
+elif cmd == 'publishDataResource':
+  if len(args) != 2:
+    print('publishDataResource requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.publishDataResource(eval(args[0]),eval(args[1]),))
+
 else:
   print('Unrecognized method %s' % cmd)
   sys.exit(1)

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f782d88/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
index 2161889..299f5a2 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
@@ -2623,6 +2623,14 @@ class Iface:
     """
     pass
 
+  def publishDataResource(self, authzToken, resourceModel):
+    """
+    Parameters:
+     - authzToken
+     - resourceModel
+    """
+    pass
+
 
 class Client(Iface):
   def __init__(self, iprot, oprot=None):
@@ -9693,6 +9701,45 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "isWorkflowExistWithName failed: unknown result")
 
+  def publishDataResource(self, authzToken, resourceModel):
+    """
+    Parameters:
+     - authzToken
+     - resourceModel
+    """
+    self.send_publishDataResource(authzToken, resourceModel)
+    self.recv_publishDataResource()
+
+  def send_publishDataResource(self, authzToken, resourceModel):
+    self._oprot.writeMessageBegin('publishDataResource', TMessageType.CALL, self._seqid)
+    args = publishDataResource_args()
+    args.authzToken = authzToken
+    args.resourceModel = resourceModel
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_publishDataResource(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = publishDataResource_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    return
+
 
 class Processor(Iface, TProcessor):
   def __init__(self, handler):
@@ -9830,6 +9877,7 @@ class Processor(Iface, TProcessor):
     self._processMap["updateWorkflow"] = Processor.process_updateWorkflow
     self._processMap["getWorkflowTemplateId"] = Processor.process_getWorkflowTemplateId
     self._processMap["isWorkflowExistWithName"] = Processor.process_isWorkflowExistWithName
+    self._processMap["publishDataResource"] = Processor.process_publishDataResource
 
   def process(self, iprot, oprot):
     (name, type, seqid) = iprot.readMessageBegin()
@@ -13953,6 +14001,26 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_publishDataResource(self, seqid, iprot, oprot):
+    args = publishDataResource_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = publishDataResource_result()
+    try:
+      self._handler.publishDataResource(args.authzToken, args.resourceModel)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException, ace:
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
+    oprot.writeMessageBegin("publishDataResource", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
 
 # HELPER FUNCTIONS AND STRUCTURES
 
@@ -42746,3 +42814,193 @@ class isWorkflowExistWithName_result:
 
   def __ne__(self, other):
     return not (self == other)
+
+class publishDataResource_args:
+  """
+  Attributes:
+   - authzToken
+   - resourceModel
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'resourceModel', (apache.airavata.model.data.resource.ttypes.ResourceModel, apache.airavata.model.data.resource.ttypes.ResourceModel.thrift_spec), None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, resourceModel=None,):
+    self.authzToken = authzToken
+    self.resourceModel = resourceModel
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.resourceModel = apache.airavata.model.data.resource.ttypes.ResourceModel()
+          self.resourceModel.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('publishDataResource_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.resourceModel is not None:
+      oprot.writeFieldBegin('resourceModel', TType.STRUCT, 2)
+      self.resourceModel.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.resourceModel)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class publishDataResource_result:
+  """
+  Attributes:
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, ire=None, ace=None, ase=None, ae=None,):
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('publishDataResource_result')
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f782d88/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManager.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManager.java b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManager.java
index ed79edb..7451a94 100644
--- a/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManager.java
+++ b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManager.java
@@ -1,7 +1,57 @@
+/*
+ *
+ * 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.
+ *
+ */
 package org.apache.airavata.data.manager;
 
-/**
- * Created by supun on 12/1/15.
- */
+import org.apache.airavata.model.data.resource.ResourceModel;
+
 public interface DataManager {
+
+    /**
+     * To create a replica entry for an already existing file(s). This is how the system comes to know about already
+     * existing resources
+     * @param resource
+     * @return
+     */
+    boolean publishResource(ResourceModel resource);
+
+    /**
+     * To remove a resource entry from the replica catalog
+     * @param resourceId
+     * @return
+     */
+    boolean removeResource(String resourceId);
+
+    /**
+     * To copy an already existing resource to a specified location. After successful copying the new location will be
+     * added to the available replica locations of the resource
+     * @param resourceId
+     * @param destLocation
+     * @return
+     */
+    boolean copyResource(String resourceId, String destLocation);
+
+    /**
+     * To retrieve a resource object providing the resourceId
+     * @param resourceId
+     * @return
+     */
+    ResourceModel getResource(String resourceId);
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f782d88/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerFactory.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerFactory.java b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerFactory.java
index 74fd68f..e1fb18a 100644
--- a/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerFactory.java
+++ b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerFactory.java
@@ -25,4 +25,8 @@ import org.slf4j.LoggerFactory;
 
 public class DataManagerFactory {
     private final static Logger logger = LoggerFactory.getLogger(DataManagerFactory.class);
+
+    public static DataManager getDataManager(){
+        return new DataManagerImpl();
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f782d88/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerImpl.java b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerImpl.java
index 379418f..fb92edf 100644
--- a/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerImpl.java
+++ b/modules/data-manager/src/main/java/org/apache/airavata/data/manager/DataManagerImpl.java
@@ -20,9 +20,30 @@
 */
 package org.apache.airavata.data.manager;
 
+import org.apache.airavata.model.data.resource.ResourceModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class DataManagerImpl {
+public class DataManagerImpl implements DataManager{
     private final static Logger logger = LoggerFactory.getLogger(DataManagerImpl.class);
+
+    @Override
+    public boolean publishResource(ResourceModel resource) {
+        return false;
+    }
+
+    @Override
+    public boolean removeResource(String resourceId) {
+        return false;
+    }
+
+    @Override
+    public boolean copyResource(String resourceId, String destLocation) {
+        return false;
+    }
+
+    @Override
+    public ResourceModel getResource(String resourceId) {
+        return null;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f782d88/modules/data-manager/src/test/java/org/apache/airavata/data/manager/DataManagerFactoryTest.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/src/test/java/org/apache/airavata/data/manager/DataManagerFactoryTest.java b/modules/data-manager/src/test/java/org/apache/airavata/data/manager/DataManagerFactoryTest.java
index 4bfa570..aa10724 100644
--- a/modules/data-manager/src/test/java/org/apache/airavata/data/manager/DataManagerFactoryTest.java
+++ b/modules/data-manager/src/test/java/org/apache/airavata/data/manager/DataManagerFactoryTest.java
@@ -20,9 +20,17 @@
 */
 package org.apache.airavata.data.manager;
 
+import junit.framework.Assert;
+import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class DataManagerFactoryTest {
     private final static Logger logger = LoggerFactory.getLogger(DataManagerFactoryTest.class);
+
+    @Test
+    public void testCreateDataManager(){
+        DataManager dataManager = DataManagerFactory.getDataManager();
+        Assert.assertNotNull(dataManager);
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/0f782d88/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index c82cc8d..056108a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -555,6 +555,7 @@
 				<module>modules/registry</module>
 				<module>modules/security</module>
 				<module>modules/credential-store</module>
+				<module>modules/data-manager</module>
 				<module>modules/orchestrator</module>
 				<module>modules/server</module>
 				<module>modules/test-suite</module>


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
new file mode 100644
index 0000000..aff4c44
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
@@ -0,0 +1,652 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.status;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Status: A generic status object.
+ * 
+ * state:
+ *   State .
+ * 
+ * timeOfStateChange:
+ *   time the status was last updated.
+ * 
+ * reason:
+ *   User friendly reason on how the state is inferred.
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ExperimentStatus implements org.apache.thrift.TBase<ExperimentStatus, ExperimentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatus> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatus");
+
+  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField TIME_OF_STATE_CHANGE_FIELD_DESC = new org.apache.thrift.protocol.TField("timeOfStateChange", org.apache.thrift.protocol.TType.I64, (short)2);
+  private static final org.apache.thrift.protocol.TField REASON_FIELD_DESC = new org.apache.thrift.protocol.TField("reason", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ExperimentStatusStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ExperimentStatusTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see ExperimentState
+   */
+  public ExperimentState state; // required
+  public long timeOfStateChange; // optional
+  public String reason; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see ExperimentState
+     */
+    STATE((short)1, "state"),
+    TIME_OF_STATE_CHANGE((short)2, "timeOfStateChange"),
+    REASON((short)3, "reason");
+
+    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: // STATE
+          return STATE;
+        case 2: // TIME_OF_STATE_CHANGE
+          return TIME_OF_STATE_CHANGE;
+        case 3: // REASON
+          return REASON;
+        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 static final _Fields optionals[] = {_Fields.TIME_OF_STATE_CHANGE,_Fields.REASON};
+  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.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ExperimentState.class)));
+    tmpMap.put(_Fields.TIME_OF_STATE_CHANGE, new org.apache.thrift.meta_data.FieldMetaData("timeOfStateChange", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.REASON, new org.apache.thrift.meta_data.FieldMetaData("reason", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExperimentStatus.class, metaDataMap);
+  }
+
+  public ExperimentStatus() {
+  }
+
+  public ExperimentStatus(
+    ExperimentState state)
+  {
+    this();
+    this.state = state;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ExperimentStatus(ExperimentStatus other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetState()) {
+      this.state = other.state;
+    }
+    this.timeOfStateChange = other.timeOfStateChange;
+    if (other.isSetReason()) {
+      this.reason = other.reason;
+    }
+  }
+
+  public ExperimentStatus deepCopy() {
+    return new ExperimentStatus(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state = null;
+    setTimeOfStateChangeIsSet(false);
+    this.timeOfStateChange = 0;
+    this.reason = null;
+  }
+
+  /**
+   * 
+   * @see ExperimentState
+   */
+  public ExperimentState getState() {
+    return this.state;
+  }
+
+  /**
+   * 
+   * @see ExperimentState
+   */
+  public ExperimentStatus setState(ExperimentState state) {
+    this.state = state;
+    return this;
+  }
+
+  public void unsetState() {
+    this.state = null;
+  }
+
+  /** Returns true if field state is set (has been assigned a value) and false otherwise */
+  public boolean isSetState() {
+    return this.state != null;
+  }
+
+  public void setStateIsSet(boolean value) {
+    if (!value) {
+      this.state = null;
+    }
+  }
+
+  public long getTimeOfStateChange() {
+    return this.timeOfStateChange;
+  }
+
+  public ExperimentStatus setTimeOfStateChange(long timeOfStateChange) {
+    this.timeOfStateChange = timeOfStateChange;
+    setTimeOfStateChangeIsSet(true);
+    return this;
+  }
+
+  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 String getReason() {
+    return this.reason;
+  }
+
+  public ExperimentStatus setReason(String reason) {
+    this.reason = reason;
+    return this;
+  }
+
+  public void unsetReason() {
+    this.reason = null;
+  }
+
+  /** Returns true if field reason is set (has been assigned a value) and false otherwise */
+  public boolean isSetReason() {
+    return this.reason != null;
+  }
+
+  public void setReasonIsSet(boolean value) {
+    if (!value) {
+      this.reason = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE:
+      if (value == null) {
+        unsetState();
+      } else {
+        setState((ExperimentState)value);
+      }
+      break;
+
+    case TIME_OF_STATE_CHANGE:
+      if (value == null) {
+        unsetTimeOfStateChange();
+      } else {
+        setTimeOfStateChange((Long)value);
+      }
+      break;
+
+    case REASON:
+      if (value == null) {
+        unsetReason();
+      } else {
+        setReason((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE:
+      return getState();
+
+    case TIME_OF_STATE_CHANGE:
+      return Long.valueOf(getTimeOfStateChange());
+
+    case REASON:
+      return getReason();
+
+    }
+    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 STATE:
+      return isSetState();
+    case TIME_OF_STATE_CHANGE:
+      return isSetTimeOfStateChange();
+    case REASON:
+      return isSetReason();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ExperimentStatus)
+      return this.equals((ExperimentStatus)that);
+    return false;
+  }
+
+  public boolean equals(ExperimentStatus that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_state = true && this.isSetState();
+    boolean that_present_state = true && that.isSetState();
+    if (this_present_state || that_present_state) {
+      if (!(this_present_state && that_present_state))
+        return false;
+      if (!this.state.equals(that.state))
+        return false;
+    }
+
+    boolean this_present_timeOfStateChange = true && this.isSetTimeOfStateChange();
+    boolean that_present_timeOfStateChange = true && that.isSetTimeOfStateChange();
+    if (this_present_timeOfStateChange || that_present_timeOfStateChange) {
+      if (!(this_present_timeOfStateChange && that_present_timeOfStateChange))
+        return false;
+      if (this.timeOfStateChange != that.timeOfStateChange)
+        return false;
+    }
+
+    boolean this_present_reason = true && this.isSetReason();
+    boolean that_present_reason = true && that.isSetReason();
+    if (this_present_reason || that_present_reason) {
+      if (!(this_present_reason && that_present_reason))
+        return false;
+      if (!this.reason.equals(that.reason))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state = true && (isSetState());
+    list.add(present_state);
+    if (present_state)
+      list.add(state.getValue());
+
+    boolean present_timeOfStateChange = true && (isSetTimeOfStateChange());
+    list.add(present_timeOfStateChange);
+    if (present_timeOfStateChange)
+      list.add(timeOfStateChange);
+
+    boolean present_reason = true && (isSetReason());
+    list.add(present_reason);
+    if (present_reason)
+      list.add(reason);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ExperimentStatus other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetState()).compareTo(other.isSetState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
+      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;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReason()).compareTo(other.isSetReason());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReason()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reason, other.reason);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    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("ExperimentStatus(");
+    boolean first = true;
+
+    sb.append("state:");
+    if (this.state == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state);
+    }
+    first = false;
+    if (isSetTimeOfStateChange()) {
+      if (!first) sb.append(", ");
+      sb.append("timeOfStateChange:");
+      sb.append(this.timeOfStateChange);
+      first = false;
+    }
+    if (isSetReason()) {
+      if (!first) sb.append(", ");
+      sb.append("reason:");
+      if (this.reason == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.reason);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (state == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state' was not present! 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 ExperimentStatusStandardSchemeFactory implements SchemeFactory {
+    public ExperimentStatusStandardScheme getScheme() {
+      return new ExperimentStatusStandardScheme();
+    }
+  }
+
+  private static class ExperimentStatusStandardScheme extends StandardScheme<ExperimentStatus> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ExperimentStatus 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: // STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.state = org.apache.airavata.model.status.ExperimentState.findByValue(iprot.readI32());
+              struct.setStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TIME_OF_STATE_CHANGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.timeOfStateChange = iprot.readI64();
+              struct.setTimeOfStateChangeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // REASON
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.reason = iprot.readString();
+              struct.setReasonIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ExperimentStatus struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state != null) {
+        oprot.writeFieldBegin(STATE_FIELD_DESC);
+        oprot.writeI32(struct.state.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeFieldBegin(TIME_OF_STATE_CHANGE_FIELD_DESC);
+        oprot.writeI64(struct.timeOfStateChange);
+        oprot.writeFieldEnd();
+      }
+      if (struct.reason != null) {
+        if (struct.isSetReason()) {
+          oprot.writeFieldBegin(REASON_FIELD_DESC);
+          oprot.writeString(struct.reason);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ExperimentStatusTupleSchemeFactory implements SchemeFactory {
+    public ExperimentStatusTupleScheme getScheme() {
+      return new ExperimentStatusTupleScheme();
+    }
+  }
+
+  private static class ExperimentStatusTupleScheme extends TupleScheme<ExperimentStatus> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ExperimentStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.state.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetTimeOfStateChange()) {
+        optionals.set(0);
+      }
+      if (struct.isSetReason()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeI64(struct.timeOfStateChange);
+      }
+      if (struct.isSetReason()) {
+        oprot.writeString(struct.reason);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ExperimentStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state = org.apache.airavata.model.status.ExperimentState.findByValue(iprot.readI32());
+      struct.setStateIsSet(true);
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.timeOfStateChange = iprot.readI64();
+        struct.setTimeOfStateChangeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.reason = iprot.readString();
+        struct.setReasonIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/JobState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/JobState.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/JobState.java
new file mode 100644
index 0000000..7ac5338
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/JobState.java
@@ -0,0 +1,80 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.status;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum JobState implements org.apache.thrift.TEnum {
+  SUBMITTED(0),
+  QUEUED(1),
+  ACTIVE(2),
+  COMPLETE(3),
+  CANCELED(4),
+  FAILED(5),
+  SUSPENDED(6),
+  UNKNOWN(7);
+
+  private final int value;
+
+  private JobState(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 JobState 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 SUSPENDED;
+      case 7:
+        return UNKNOWN;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/JobStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/JobStatus.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/JobStatus.java
new file mode 100644
index 0000000..86802e3
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/JobStatus.java
@@ -0,0 +1,639 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.status;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class JobStatus implements org.apache.thrift.TBase<JobStatus, JobStatus._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatus> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatus");
+
+  private static final org.apache.thrift.protocol.TField JOB_STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("jobState", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField TIME_OF_STATE_CHANGE_FIELD_DESC = new org.apache.thrift.protocol.TField("timeOfStateChange", org.apache.thrift.protocol.TType.I64, (short)2);
+  private static final org.apache.thrift.protocol.TField REASON_FIELD_DESC = new org.apache.thrift.protocol.TField("reason", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobStatusStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobStatusTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see JobState
+   */
+  public JobState jobState; // required
+  public long timeOfStateChange; // optional
+  public String reason; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see JobState
+     */
+    JOB_STATE((short)1, "jobState"),
+    TIME_OF_STATE_CHANGE((short)2, "timeOfStateChange"),
+    REASON((short)3, "reason");
+
+    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: // JOB_STATE
+          return JOB_STATE;
+        case 2: // TIME_OF_STATE_CHANGE
+          return TIME_OF_STATE_CHANGE;
+        case 3: // REASON
+          return REASON;
+        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 static final _Fields optionals[] = {_Fields.TIME_OF_STATE_CHANGE,_Fields.REASON};
+  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.JOB_STATE, new org.apache.thrift.meta_data.FieldMetaData("jobState", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, JobState.class)));
+    tmpMap.put(_Fields.TIME_OF_STATE_CHANGE, new org.apache.thrift.meta_data.FieldMetaData("timeOfStateChange", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.REASON, new org.apache.thrift.meta_data.FieldMetaData("reason", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobStatus.class, metaDataMap);
+  }
+
+  public JobStatus() {
+  }
+
+  public JobStatus(
+    JobState jobState)
+  {
+    this();
+    this.jobState = jobState;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobStatus(JobStatus other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetJobState()) {
+      this.jobState = other.jobState;
+    }
+    this.timeOfStateChange = other.timeOfStateChange;
+    if (other.isSetReason()) {
+      this.reason = other.reason;
+    }
+  }
+
+  public JobStatus deepCopy() {
+    return new JobStatus(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobState = null;
+    setTimeOfStateChangeIsSet(false);
+    this.timeOfStateChange = 0;
+    this.reason = null;
+  }
+
+  /**
+   * 
+   * @see JobState
+   */
+  public JobState getJobState() {
+    return this.jobState;
+  }
+
+  /**
+   * 
+   * @see JobState
+   */
+  public JobStatus setJobState(JobState jobState) {
+    this.jobState = jobState;
+    return this;
+  }
+
+  public void unsetJobState() {
+    this.jobState = null;
+  }
+
+  /** Returns true if field jobState is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobState() {
+    return this.jobState != null;
+  }
+
+  public void setJobStateIsSet(boolean value) {
+    if (!value) {
+      this.jobState = null;
+    }
+  }
+
+  public long getTimeOfStateChange() {
+    return this.timeOfStateChange;
+  }
+
+  public JobStatus setTimeOfStateChange(long timeOfStateChange) {
+    this.timeOfStateChange = timeOfStateChange;
+    setTimeOfStateChangeIsSet(true);
+    return this;
+  }
+
+  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 String getReason() {
+    return this.reason;
+  }
+
+  public JobStatus setReason(String reason) {
+    this.reason = reason;
+    return this;
+  }
+
+  public void unsetReason() {
+    this.reason = null;
+  }
+
+  /** Returns true if field reason is set (has been assigned a value) and false otherwise */
+  public boolean isSetReason() {
+    return this.reason != null;
+  }
+
+  public void setReasonIsSet(boolean value) {
+    if (!value) {
+      this.reason = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_STATE:
+      if (value == null) {
+        unsetJobState();
+      } else {
+        setJobState((JobState)value);
+      }
+      break;
+
+    case TIME_OF_STATE_CHANGE:
+      if (value == null) {
+        unsetTimeOfStateChange();
+      } else {
+        setTimeOfStateChange((Long)value);
+      }
+      break;
+
+    case REASON:
+      if (value == null) {
+        unsetReason();
+      } else {
+        setReason((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_STATE:
+      return getJobState();
+
+    case TIME_OF_STATE_CHANGE:
+      return Long.valueOf(getTimeOfStateChange());
+
+    case REASON:
+      return getReason();
+
+    }
+    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 JOB_STATE:
+      return isSetJobState();
+    case TIME_OF_STATE_CHANGE:
+      return isSetTimeOfStateChange();
+    case REASON:
+      return isSetReason();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobStatus)
+      return this.equals((JobStatus)that);
+    return false;
+  }
+
+  public boolean equals(JobStatus that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobState = true && this.isSetJobState();
+    boolean that_present_jobState = true && that.isSetJobState();
+    if (this_present_jobState || that_present_jobState) {
+      if (!(this_present_jobState && that_present_jobState))
+        return false;
+      if (!this.jobState.equals(that.jobState))
+        return false;
+    }
+
+    boolean this_present_timeOfStateChange = true && this.isSetTimeOfStateChange();
+    boolean that_present_timeOfStateChange = true && that.isSetTimeOfStateChange();
+    if (this_present_timeOfStateChange || that_present_timeOfStateChange) {
+      if (!(this_present_timeOfStateChange && that_present_timeOfStateChange))
+        return false;
+      if (this.timeOfStateChange != that.timeOfStateChange)
+        return false;
+    }
+
+    boolean this_present_reason = true && this.isSetReason();
+    boolean that_present_reason = true && that.isSetReason();
+    if (this_present_reason || that_present_reason) {
+      if (!(this_present_reason && that_present_reason))
+        return false;
+      if (!this.reason.equals(that.reason))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_jobState = true && (isSetJobState());
+    list.add(present_jobState);
+    if (present_jobState)
+      list.add(jobState.getValue());
+
+    boolean present_timeOfStateChange = true && (isSetTimeOfStateChange());
+    list.add(present_timeOfStateChange);
+    if (present_timeOfStateChange)
+      list.add(timeOfStateChange);
+
+    boolean present_reason = true && (isSetReason());
+    list.add(present_reason);
+    if (present_reason)
+      list.add(reason);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobStatus other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobState()).compareTo(other.isSetJobState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobState, other.jobState);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTimeOfStateChange()).compareTo(other.isSetTimeOfStateChange());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTimeOfStateChange()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.timeOfStateChange, other.timeOfStateChange);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReason()).compareTo(other.isSetReason());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReason()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reason, other.reason);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    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("JobStatus(");
+    boolean first = true;
+
+    sb.append("jobState:");
+    if (this.jobState == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobState);
+    }
+    first = false;
+    if (isSetTimeOfStateChange()) {
+      if (!first) sb.append(", ");
+      sb.append("timeOfStateChange:");
+      sb.append(this.timeOfStateChange);
+      first = false;
+    }
+    if (isSetReason()) {
+      if (!first) sb.append(", ");
+      sb.append("reason:");
+      if (this.reason == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.reason);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (jobState == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobState' was not present! 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 JobStatusStandardSchemeFactory implements SchemeFactory {
+    public JobStatusStandardScheme getScheme() {
+      return new JobStatusStandardScheme();
+    }
+  }
+
+  private static class JobStatusStandardScheme extends StandardScheme<JobStatus> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobStatus struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.jobState = org.apache.airavata.model.status.JobState.findByValue(iprot.readI32());
+              struct.setJobStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TIME_OF_STATE_CHANGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.timeOfStateChange = iprot.readI64();
+              struct.setTimeOfStateChangeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // REASON
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.reason = iprot.readString();
+              struct.setReasonIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, JobStatus struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobState != null) {
+        oprot.writeFieldBegin(JOB_STATE_FIELD_DESC);
+        oprot.writeI32(struct.jobState.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeFieldBegin(TIME_OF_STATE_CHANGE_FIELD_DESC);
+        oprot.writeI64(struct.timeOfStateChange);
+        oprot.writeFieldEnd();
+      }
+      if (struct.reason != null) {
+        if (struct.isSetReason()) {
+          oprot.writeFieldBegin(REASON_FIELD_DESC);
+          oprot.writeString(struct.reason);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobStatusTupleSchemeFactory implements SchemeFactory {
+    public JobStatusTupleScheme getScheme() {
+      return new JobStatusTupleScheme();
+    }
+  }
+
+  private static class JobStatusTupleScheme extends TupleScheme<JobStatus> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.jobState.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetTimeOfStateChange()) {
+        optionals.set(0);
+      }
+      if (struct.isSetReason()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeI64(struct.timeOfStateChange);
+      }
+      if (struct.isSetReason()) {
+        oprot.writeString(struct.reason);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobState = org.apache.airavata.model.status.JobState.findByValue(iprot.readI32());
+      struct.setJobStateIsSet(true);
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.timeOfStateChange = iprot.readI64();
+        struct.setTimeOfStateChangeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.reason = iprot.readString();
+        struct.setReasonIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ProcessState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ProcessState.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ProcessState.java
new file mode 100644
index 0000000..ec2a3cf
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ProcessState.java
@@ -0,0 +1,98 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.status;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum ProcessState implements org.apache.thrift.TEnum {
+  CREATED(0),
+  VALIDATED(1),
+  STARTED(2),
+  PRE_PROCESSING(3),
+  CONFIGURING_WORKSPACE(4),
+  INPUT_DATA_STAGING(5),
+  EXECUTING(6),
+  MONITORING(7),
+  OUTPUT_DATA_STAGING(8),
+  POST_PROCESSING(9),
+  COMPLETED(10),
+  FAILED(11),
+  CANCELLING(12),
+  CANCELED(13);
+
+  private final int value;
+
+  private ProcessState(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 ProcessState findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return CREATED;
+      case 1:
+        return VALIDATED;
+      case 2:
+        return STARTED;
+      case 3:
+        return PRE_PROCESSING;
+      case 4:
+        return CONFIGURING_WORKSPACE;
+      case 5:
+        return INPUT_DATA_STAGING;
+      case 6:
+        return EXECUTING;
+      case 7:
+        return MONITORING;
+      case 8:
+        return OUTPUT_DATA_STAGING;
+      case 9:
+        return POST_PROCESSING;
+      case 10:
+        return COMPLETED;
+      case 11:
+        return FAILED;
+      case 12:
+        return CANCELLING;
+      case 13:
+        return CANCELED;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ProcessStatus.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
new file mode 100644
index 0000000..01a36e1
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
@@ -0,0 +1,639 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.status;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ProcessStatus implements org.apache.thrift.TBase<ProcessStatus, ProcessStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatus> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatus");
+
+  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField TIME_OF_STATE_CHANGE_FIELD_DESC = new org.apache.thrift.protocol.TField("timeOfStateChange", org.apache.thrift.protocol.TType.I64, (short)2);
+  private static final org.apache.thrift.protocol.TField REASON_FIELD_DESC = new org.apache.thrift.protocol.TField("reason", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ProcessStatusStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ProcessStatusTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see ProcessState
+   */
+  public ProcessState state; // required
+  public long timeOfStateChange; // optional
+  public String reason; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see ProcessState
+     */
+    STATE((short)1, "state"),
+    TIME_OF_STATE_CHANGE((short)2, "timeOfStateChange"),
+    REASON((short)3, "reason");
+
+    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: // STATE
+          return STATE;
+        case 2: // TIME_OF_STATE_CHANGE
+          return TIME_OF_STATE_CHANGE;
+        case 3: // REASON
+          return REASON;
+        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 static final _Fields optionals[] = {_Fields.TIME_OF_STATE_CHANGE,_Fields.REASON};
+  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.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ProcessState.class)));
+    tmpMap.put(_Fields.TIME_OF_STATE_CHANGE, new org.apache.thrift.meta_data.FieldMetaData("timeOfStateChange", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.REASON, new org.apache.thrift.meta_data.FieldMetaData("reason", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ProcessStatus.class, metaDataMap);
+  }
+
+  public ProcessStatus() {
+  }
+
+  public ProcessStatus(
+    ProcessState state)
+  {
+    this();
+    this.state = state;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ProcessStatus(ProcessStatus other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetState()) {
+      this.state = other.state;
+    }
+    this.timeOfStateChange = other.timeOfStateChange;
+    if (other.isSetReason()) {
+      this.reason = other.reason;
+    }
+  }
+
+  public ProcessStatus deepCopy() {
+    return new ProcessStatus(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state = null;
+    setTimeOfStateChangeIsSet(false);
+    this.timeOfStateChange = 0;
+    this.reason = null;
+  }
+
+  /**
+   * 
+   * @see ProcessState
+   */
+  public ProcessState getState() {
+    return this.state;
+  }
+
+  /**
+   * 
+   * @see ProcessState
+   */
+  public ProcessStatus setState(ProcessState state) {
+    this.state = state;
+    return this;
+  }
+
+  public void unsetState() {
+    this.state = null;
+  }
+
+  /** Returns true if field state is set (has been assigned a value) and false otherwise */
+  public boolean isSetState() {
+    return this.state != null;
+  }
+
+  public void setStateIsSet(boolean value) {
+    if (!value) {
+      this.state = null;
+    }
+  }
+
+  public long getTimeOfStateChange() {
+    return this.timeOfStateChange;
+  }
+
+  public ProcessStatus setTimeOfStateChange(long timeOfStateChange) {
+    this.timeOfStateChange = timeOfStateChange;
+    setTimeOfStateChangeIsSet(true);
+    return this;
+  }
+
+  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 String getReason() {
+    return this.reason;
+  }
+
+  public ProcessStatus setReason(String reason) {
+    this.reason = reason;
+    return this;
+  }
+
+  public void unsetReason() {
+    this.reason = null;
+  }
+
+  /** Returns true if field reason is set (has been assigned a value) and false otherwise */
+  public boolean isSetReason() {
+    return this.reason != null;
+  }
+
+  public void setReasonIsSet(boolean value) {
+    if (!value) {
+      this.reason = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE:
+      if (value == null) {
+        unsetState();
+      } else {
+        setState((ProcessState)value);
+      }
+      break;
+
+    case TIME_OF_STATE_CHANGE:
+      if (value == null) {
+        unsetTimeOfStateChange();
+      } else {
+        setTimeOfStateChange((Long)value);
+      }
+      break;
+
+    case REASON:
+      if (value == null) {
+        unsetReason();
+      } else {
+        setReason((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE:
+      return getState();
+
+    case TIME_OF_STATE_CHANGE:
+      return Long.valueOf(getTimeOfStateChange());
+
+    case REASON:
+      return getReason();
+
+    }
+    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 STATE:
+      return isSetState();
+    case TIME_OF_STATE_CHANGE:
+      return isSetTimeOfStateChange();
+    case REASON:
+      return isSetReason();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ProcessStatus)
+      return this.equals((ProcessStatus)that);
+    return false;
+  }
+
+  public boolean equals(ProcessStatus that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_state = true && this.isSetState();
+    boolean that_present_state = true && that.isSetState();
+    if (this_present_state || that_present_state) {
+      if (!(this_present_state && that_present_state))
+        return false;
+      if (!this.state.equals(that.state))
+        return false;
+    }
+
+    boolean this_present_timeOfStateChange = true && this.isSetTimeOfStateChange();
+    boolean that_present_timeOfStateChange = true && that.isSetTimeOfStateChange();
+    if (this_present_timeOfStateChange || that_present_timeOfStateChange) {
+      if (!(this_present_timeOfStateChange && that_present_timeOfStateChange))
+        return false;
+      if (this.timeOfStateChange != that.timeOfStateChange)
+        return false;
+    }
+
+    boolean this_present_reason = true && this.isSetReason();
+    boolean that_present_reason = true && that.isSetReason();
+    if (this_present_reason || that_present_reason) {
+      if (!(this_present_reason && that_present_reason))
+        return false;
+      if (!this.reason.equals(that.reason))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state = true && (isSetState());
+    list.add(present_state);
+    if (present_state)
+      list.add(state.getValue());
+
+    boolean present_timeOfStateChange = true && (isSetTimeOfStateChange());
+    list.add(present_timeOfStateChange);
+    if (present_timeOfStateChange)
+      list.add(timeOfStateChange);
+
+    boolean present_reason = true && (isSetReason());
+    list.add(present_reason);
+    if (present_reason)
+      list.add(reason);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ProcessStatus other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetState()).compareTo(other.isSetState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
+      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;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReason()).compareTo(other.isSetReason());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReason()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reason, other.reason);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    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("ProcessStatus(");
+    boolean first = true;
+
+    sb.append("state:");
+    if (this.state == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state);
+    }
+    first = false;
+    if (isSetTimeOfStateChange()) {
+      if (!first) sb.append(", ");
+      sb.append("timeOfStateChange:");
+      sb.append(this.timeOfStateChange);
+      first = false;
+    }
+    if (isSetReason()) {
+      if (!first) sb.append(", ");
+      sb.append("reason:");
+      if (this.reason == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.reason);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (state == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state' was not present! 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 ProcessStatusStandardSchemeFactory implements SchemeFactory {
+    public ProcessStatusStandardScheme getScheme() {
+      return new ProcessStatusStandardScheme();
+    }
+  }
+
+  private static class ProcessStatusStandardScheme extends StandardScheme<ProcessStatus> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ProcessStatus 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: // STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.state = org.apache.airavata.model.status.ProcessState.findByValue(iprot.readI32());
+              struct.setStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TIME_OF_STATE_CHANGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.timeOfStateChange = iprot.readI64();
+              struct.setTimeOfStateChangeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // REASON
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.reason = iprot.readString();
+              struct.setReasonIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ProcessStatus struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state != null) {
+        oprot.writeFieldBegin(STATE_FIELD_DESC);
+        oprot.writeI32(struct.state.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeFieldBegin(TIME_OF_STATE_CHANGE_FIELD_DESC);
+        oprot.writeI64(struct.timeOfStateChange);
+        oprot.writeFieldEnd();
+      }
+      if (struct.reason != null) {
+        if (struct.isSetReason()) {
+          oprot.writeFieldBegin(REASON_FIELD_DESC);
+          oprot.writeString(struct.reason);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ProcessStatusTupleSchemeFactory implements SchemeFactory {
+    public ProcessStatusTupleScheme getScheme() {
+      return new ProcessStatusTupleScheme();
+    }
+  }
+
+  private static class ProcessStatusTupleScheme extends TupleScheme<ProcessStatus> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ProcessStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.state.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetTimeOfStateChange()) {
+        optionals.set(0);
+      }
+      if (struct.isSetReason()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeI64(struct.timeOfStateChange);
+      }
+      if (struct.isSetReason()) {
+        oprot.writeString(struct.reason);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ProcessStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state = org.apache.airavata.model.status.ProcessState.findByValue(iprot.readI32());
+      struct.setStateIsSet(true);
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.timeOfStateChange = iprot.readI64();
+        struct.setTimeOfStateChangeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.reason = iprot.readString();
+        struct.setReasonIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/TaskState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/TaskState.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/TaskState.java
new file mode 100644
index 0000000..8a63c47
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/TaskState.java
@@ -0,0 +1,71 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.status;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum TaskState implements org.apache.thrift.TEnum {
+  CREATED(0),
+  EXECUTING(1),
+  COMPLETED(2),
+  FAILED(3),
+  CANCELED(4);
+
+  private final int value;
+
+  private TaskState(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 TaskState findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return CREATED;
+      case 1:
+        return EXECUTING;
+      case 2:
+        return COMPLETED;
+      case 3:
+        return FAILED;
+      case 4:
+        return CANCELED;
+      default:
+        return null;
+    }
+  }
+}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
new file mode 100644
index 0000000..bf1076c
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
@@ -0,0 +1,1148 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.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 javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * A structure holding the experiment configuration.
+ * 
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class UserConfigurationDataModel implements org.apache.thrift.TBase<UserConfigurationDataModel, UserConfigurationDataModel._Fields>, java.io.Serializable, Cloneable, Comparable<UserConfigurationDataModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserConfigurationDataModel");
+
+  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 THROTTLE_RESOURCES_FIELD_DESC = new org.apache.thrift.protocol.TField("throttleResources", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField USER_DN_FIELD_DESC = new org.apache.thrift.protocol.TField("userDN", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField GENERATE_CERT_FIELD_DESC = new org.apache.thrift.protocol.TField("generateCert", org.apache.thrift.protocol.TType.BOOL, (short)7);
+  private static final org.apache.thrift.protocol.TField STORAGE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageId", org.apache.thrift.protocol.TType.STRING, (short)8);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UserConfigurationDataModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UserConfigurationDataModelTupleSchemeFactory());
+  }
+
+  public boolean airavataAutoSchedule; // required
+  public boolean overrideManualScheduledParams; // required
+  public boolean shareExperimentPublicly; // optional
+  public org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel computationalResourceScheduling; // optional
+  public boolean throttleResources; // optional
+  public String userDN; // optional
+  public boolean generateCert; // optional
+  public String storageId; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    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"),
+    THROTTLE_RESOURCES((short)5, "throttleResources"),
+    USER_DN((short)6, "userDN"),
+    GENERATE_CERT((short)7, "generateCert"),
+    STORAGE_ID((short)8, "storageId");
+
+    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: // THROTTLE_RESOURCES
+          return THROTTLE_RESOURCES;
+        case 6: // USER_DN
+          return USER_DN;
+        case 7: // GENERATE_CERT
+          return GENERATE_CERT;
+        case 8: // STORAGE_ID
+          return STORAGE_ID;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __AIRAVATAAUTOSCHEDULE_ISSET_ID = 0;
+  private static final int __OVERRIDEMANUALSCHEDULEDPARAMS_ISSET_ID = 1;
+  private static final int __SHAREEXPERIMENTPUBLICLY_ISSET_ID = 2;
+  private static final int __THROTTLERESOURCES_ISSET_ID = 3;
+  private static final int __GENERATECERT_ISSET_ID = 4;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.SHARE_EXPERIMENT_PUBLICLY,_Fields.COMPUTATIONAL_RESOURCE_SCHEDULING,_Fields.THROTTLE_RESOURCES,_Fields.USER_DN,_Fields.GENERATE_CERT,_Fields.STORAGE_ID};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.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, org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel.class)));
+    tmpMap.put(_Fields.THROTTLE_RESOURCES, new org.apache.thrift.meta_data.FieldMetaData("throttleResources", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.USER_DN, new org.apache.thrift.meta_data.FieldMetaData("userDN", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GENERATE_CERT, new org.apache.thrift.meta_data.FieldMetaData("generateCert", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.STORAGE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageId", 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(UserConfigurationDataModel.class, metaDataMap);
+  }
+
+  public UserConfigurationDataModel() {
+    this.airavataAutoSchedule = false;
+
+    this.overrideManualScheduledParams = false;
+
+    this.shareExperimentPublicly = false;
+
+    this.throttleResources = false;
+
+    this.generateCert = false;
+
+  }
+
+  public UserConfigurationDataModel(
+    boolean airavataAutoSchedule,
+    boolean overrideManualScheduledParams)
+  {
+    this();
+    this.airavataAutoSchedule = airavataAutoSchedule;
+    setAiravataAutoScheduleIsSet(true);
+    this.overrideManualScheduledParams = overrideManualScheduledParams;
+    setOverrideManualScheduledParamsIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public UserConfigurationDataModel(UserConfigurationDataModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.airavataAutoSchedule = other.airavataAutoSchedule;
+    this.overrideManualScheduledParams = other.overrideManualScheduledParams;
+    this.shareExperimentPublicly = other.shareExperimentPublicly;
+    if (other.isSetComputationalResourceScheduling()) {
+      this.computationalResourceScheduling = new org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel(other.computationalResourceScheduling);
+    }
+    this.throttleResources = other.throttleResources;
+    if (other.isSetUserDN()) {
+      this.userDN = other.userDN;
+    }
+    this.generateCert = other.generateCert;
+    if (other.isSetStorageId()) {
+      this.storageId = other.storageId;
+    }
+  }
+
+  public UserConfigurationDataModel deepCopy() {
+    return new UserConfigurationDataModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.airavataAutoSchedule = false;
+
+    this.overrideManualScheduledParams = false;
+
+    this.shareExperimentPublicly = false;
+
+    this.computationalResourceScheduling = null;
+    this.throttleResources = false;
+
+    this.userDN = null;
+    this.generateCert = false;
+
+    this.storageId = null;
+  }
+
+  public boolean isAiravataAutoSchedule() {
+    return this.airavataAutoSchedule;
+  }
+
+  public UserConfigurationDataModel setAiravataAutoSchedule(boolean airavataAutoSchedule) {
+    this.airavataAutoSchedule = airavataAutoSchedule;
+    setAiravataAutoScheduleIsSet(true);
+    return this;
+  }
+
+  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 UserConfigurationDataModel setOverrideManualScheduledParams(boolean overrideManualScheduledParams) {
+    this.overrideManualScheduledParams = overrideManualScheduledParams;
+    setOverrideManualScheduledParamsIsSet(true);
+    return this;
+  }
+
+  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 UserConfigurationDataModel setShareExperimentPublicly(boolean shareExperimentPublicly) {
+    this.shareExperimentPublicly = shareExperimentPublicly;
+    setShareExperimentPubliclyIsSet(true);
+    return this;
+  }
+
+  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 org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel getComputationalResourceScheduling() {
+    return this.computationalResourceScheduling;
+  }
+
+  public UserConfigurationDataModel setComputationalResourceScheduling(org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel computationalResourceScheduling) {
+    this.computationalResourceScheduling = computationalResourceScheduling;
+    return this;
+  }
+
+  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 boolean isThrottleResources() {
+    return this.throttleResources;
+  }
+
+  public UserConfigurationDataModel setThrottleResources(boolean throttleResources) {
+    this.throttleResources = throttleResources;
+    setThrottleResourcesIsSet(true);
+    return this;
+  }
+
+  public void unsetThrottleResources() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __THROTTLERESOURCES_ISSET_ID);
+  }
+
+  /** Returns true if field throttleResources is set (has been assigned a value) and false otherwise */
+  public boolean isSetThrottleResources() {
+    return EncodingUtils.testBit(__isset_bitfield, __THROTTLERESOURCES_ISSET_ID);
+  }
+
+  public void setThrottleResourcesIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __THROTTLERESOURCES_ISSET_ID, value);
+  }
+
+  public String getUserDN() {
+    return this.userDN;
+  }
+
+  public UserConfigurationDataModel setUserDN(String userDN) {
+    this.userDN = userDN;
+    return this;
+  }
+
+  public void unsetUserDN() {
+    this.userDN = null;
+  }
+
+  /** Returns true if field userDN is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserDN() {
+    return this.userDN != null;
+  }
+
+  public void setUserDNIsSet(boolean value) {
+    if (!value) {
+      this.userDN = null;
+    }
+  }
+
+  public boolean isGenerateCert() {
+    return this.generateCert;
+  }
+
+  public UserConfigurationDataModel setGenerateCert(boolean generateCert) {
+    this.generateCert = generateCert;
+    setGenerateCertIsSet(true);
+    return this;
+  }
+
+  public void unsetGenerateCert() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __GENERATECERT_ISSET_ID);
+  }
+
+  /** Returns true if field generateCert is set (has been assigned a value) and false otherwise */
+  public boolean isSetGenerateCert() {
+    return EncodingUtils.testBit(__isset_bitfield, __GENERATECERT_ISSET_ID);
+  }
+
+  public void setGenerateCertIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __GENERATECERT_ISSET_ID, value);
+  }
+
+  public String getStorageId() {
+    return this.storageId;
+  }
+
+  public UserConfigurationDataModel setStorageId(String storageId) {
+    this.storageId = storageId;
+    return this;
+  }
+
+  public void unsetStorageId() {
+    this.storageId = null;
+  }
+
+  /** Returns true if field storageId is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageId() {
+    return this.storageId != null;
+  }
+
+  public void setStorageIdIsSet(boolean value) {
+    if (!value) {
+      this.storageId = 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((org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel)value);
+      }
+      break;
+
+    case THROTTLE_RESOURCES:
+      if (value == null) {
+        unsetThrottleResources();
+      } else {
+        setThrottleResources((Boolean)value);
+      }
+      break;
+
+    case USER_DN:
+      if (value == null) {
+        unsetUserDN();
+      } else {
+        setUserDN((String)value);
+      }
+      break;
+
+    case GENERATE_CERT:
+      if (value == null) {
+        unsetGenerateCert();
+      } else {
+        setGenerateCert((Boolean)value);
+      }
+      break;
+
+    case STORAGE_ID:
+      if (value == null) {
+        unsetStorageId();
+      } else {
+        setStorageId((String)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 THROTTLE_RESOURCES:
+      return Boolean.valueOf(isThrottleResources());
+
+    case USER_DN:
+      return getUserDN();
+
+    case GENERATE_CERT:
+      return Boolean.valueOf(isGenerateCert());
+
+    case STORAGE_ID:
+      return getStorageId();
+
+    }
+    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 THROTTLE_RESOURCES:
+      return isSetThrottleResources();
+    case USER_DN:
+      return isSetUserDN();
+    case GENERATE_CERT:
+      return isSetGenerateCert();
+    case STORAGE_ID:
+      return isSetStorageId();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof UserConfigurationDataModel)
+      return this.equals((UserConfigurationDataModel)that);
+    return false;
+  }
+
+  public boolean equals(UserConfigurationDataModel 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_throttleResources = true && this.isSetThrottleResources();
+    boolean that_present_throttleResources = true && that.isSetThrottleResources();
+    if (this_present_throttleResources || that_present_throttleResources) {
+      if (!(this_present_throttleResources && that_present_throttleResources))
+        return false;
+      if (this.throttleResources != that.throttleResources)
+        return false;
+    }
+
+    boolean this_present_userDN = true && this.isSetUserDN();
+    boolean that_present_userDN = true && that.isSetUserDN();
+    if (this_present_userDN || that_present_userDN) {
+      if (!(this_present_userDN && that_present_userDN))
+        return false;
+      if (!this.userDN.equals(that.userDN))
+        return false;
+    }
+
+    boolean this_present_generateCert = true && this.isSetGenerateCert();
+    boolean that_present_generateCert = true && that.isSetGenerateCert();
+    if (this_present_generateCert || that_present_generateCert) {
+      if (!(this_present_generateCert && that_present_generateCert))
+        return false;
+      if (this.generateCert != that.generateCert)
+        return false;
+    }
+
+    boolean this_present_storageId = true && this.isSetStorageId();
+    boolean that_present_storageId = true && that.isSetStorageId();
+    if (this_present_storageId || that_present_storageId) {
+      if (!(this_present_storageId && that_present_storageId))
+        return false;
+      if (!this.storageId.equals(that.storageId))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_airavataAutoSchedule = true;
+    list.add(present_airavataAutoSchedule);
+    if (present_airavataAutoSchedule)
+      list.add(airavataAutoSchedule);
+
+    boolean present_overrideManualScheduledParams = true;
+    list.add(present_overrideManualScheduledParams);
+    if (present_overrideManualScheduledParams)
+      list.add(overrideManualScheduledParams);
+
+    boolean present_shareExperimentPublicly = true && (isSetShareExperimentPublicly());
+    list.add(present_shareExperimentPublicly);
+    if (present_shareExperimentPublicly)
+      list.add(shareExperimentPublicly);
+
+    boolean present_computationalResourceScheduling = true && (isSetComputationalResourceScheduling());
+    list.add(present_computationalResourceScheduling);
+    if (present_computationalResourceScheduling)
+      list.add(computationalResourceScheduling);
+
+    boolean present_throttleResources = true && (isSetThrottleResources());
+    list.add(present_throttleResources);
+    if (present_throttleResources)
+      list.add(throttleResources);
+
+    boolean present_userDN = true && (isSetUserDN());
+    list.add(present_userDN);
+    if (present_userDN)
+      list.add(userDN);
+
+    boolean present_generateCert = true && (isSetGenerateCert());
+    list.add(present_generateCert);
+    if (present_generateCert)
+      list.add(generateCert);
+
+    boolean present_storageId = true && (isSetStorageId());
+    list.add(present_storageId);
+    if (present_storageId)
+      list.add(storageId);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(UserConfigurationDataModel 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(isSetThrottleResources()).compareTo(other.isSetThrottleResources());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetThrottleResources()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.throttleResources, other.throttleResources);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUserDN()).compareTo(other.isSetUserDN());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserDN()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userDN, other.userDN);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGenerateCert()).compareTo(other.isSetGenerateCert());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGenerateCert()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.generateCert, other.generateCert);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStorageId()).compareTo(other.isSetStorageId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageId, other.storageId);
+      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("UserConfigurationDataModel(");
+    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 (isSetThrottleResources()) {
+      if (!first) sb.append(", ");
+      sb.append("throttleResources:");
+      sb.append(this.throttleResources);
+      first = false;
+    }
+    if (isSetUserDN()) {
+      if (!first) sb.append(", ");
+      sb.append("userDN:");
+      if (this.userDN == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userDN);
+      }
+      first = false;
+    }
+    if (isSetGenerateCert()) {
+      if (!first) sb.append(", ");
+      sb.append("generateCert:");
+      sb.append(this.generateCert);
+      first = false;
+    }
+    if (isSetStorageId()) {
+      if (!first) sb.append(", ");
+      sb.append("storageId:");
+      if (this.storageId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.storageId);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // alas, we cannot check 'airavataAutoSchedule' because it's a primitive and you chose the non-beans generator.
+    // alas, we cannot check 'overrideManualScheduledParams' because it's a primitive and you chose the non-beans generator.
+    // check for sub-struct validity
+    if (computationalResourceScheduling != null) {
+      computationalResourceScheduling.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 UserConfigurationDataModelStandardSchemeFactory implements SchemeFactory {
+    public UserConfigurationDataModelStandardScheme getScheme() {
+      return new UserConfigurationDataModelStandardScheme();
+    }
+  }
+
+  private static class UserConfigurationDataModelStandardScheme extends StandardScheme<UserConfigurationDataModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, UserConfigurationDataModel 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 org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel();
+              struct.computationalResourceScheduling.read(iprot);
+              struct.setComputationalResourceSchedulingIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // THROTTLE_RESOURCES
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.throttleResources = iprot.readBool();
+              struct.setThrottleResourcesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // USER_DN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userDN = iprot.readString();
+              struct.setUserDNIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // GENERATE_CERT
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.generateCert = iprot.readBool();
+              struct.setGenerateCertIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // STORAGE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageId = iprot.readString();
+              struct.setStorageIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetAiravataAutoSchedule()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataAutoSchedule' was not found in serialized data! Struct: " + toString());
+      }
+      if (!struct.isSetOverrideManualScheduledParams()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'overrideManualScheduledParams' was not found in serialized data! Struct: " + toString());
+      }
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, UserConfigurationDataModel 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.isSetThrottleResources()) {
+        oprot.writeFieldBegin(THROTTLE_RESOURCES_FIELD_DESC);
+        oprot.writeBool(struct.throttleResources);
+        oprot.writeFieldEnd();
+      }
+      if (struct.userDN != null) {
+        if (struct.isSetUserDN()) {
+          oprot.writeFieldBegin(USER_DN_FIELD_DESC);
+          oprot.writeString(struct.userDN);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetGenerateCert()) {
+        oprot.writeFieldBegin(GENERATE_CERT_FIELD_DESC);
+        oprot.writeBool(struct.generateCert);
+        oprot.writeFieldEnd();
+      }
+      if (struct.storageId != null) {
+        if (struct.isSetStorageId()) {
+          oprot.writeFieldBegin(STORAGE_ID_FIELD_DESC);
+          oprot.writeString(struct.storageId);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UserConfigurationDataModelTupleSchemeFactory implements SchemeFactory {
+    public UserConfigurationDataModelTupleScheme getScheme() {
+      return new UserConfigurationDataModelTupleScheme();
+    }
+  }
+
+  private static class UserConfigurationDataModelTupleScheme extends TupleScheme<UserConfigurationDataModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, UserConfigurationDataModel 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.isSetThrottleResources()) {
+        optionals.set(2);
+      }
+      if (struct.isSetUserDN()) {
+        optionals.set(3);
+      }
+      if (struct.isSetGenerateCert()) {
+        optionals.set(4);
+      }
+      if (struct.isSetStorageId()) {
+        optionals.set(5);
+      }
+      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetShareExperimentPublicly()) {
+        oprot.writeBool(struct.shareExperimentPublicly);
+      }
+      if (struct.isSetComputationalResourceScheduling()) {
+        struct.computationalResourceScheduling.write(oprot);
+      }
+      if (struct.isSetThrottleResources()) {
+        oprot.writeBool(struct.throttleResources);
+      }
+      if (struct.isSetUserDN()) {
+        oprot.writeString(struct.userDN);
+      }
+      if (struct.isSetGenerateCert()) {
+        oprot.writeBool(struct.generateCert);
+      }
+      if (struct.isSetStorageId()) {
+        oprot.writeString(struct.storageId);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, UserConfigurationDataModel 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(6);
+      if (incoming.get(0)) {
+        struct.shareExperimentPublicly = iprot.readBool();
+        struct.setShareExperimentPubliclyIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.computationalResourceScheduling = new org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel();
+        struct.computationalResourceScheduling.read(iprot);
+        struct.setComputationalResourceSchedulingIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.throttleResources = iprot.readBool();
+        struct.setThrottleResourcesIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.userDN = iprot.readString();
+        struct.setUserDNIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.generateCert = iprot.readBool();
+        struct.setGenerateCertIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.storageId = iprot.readString();
+        struct.setStorageIdIsSet(true);
+      }
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
adding thrift generated files


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/a14d717f
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/a14d717f
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/a14d717f

Branch: refs/heads/data-manager
Commit: a14d717f40ad4609ebb5517a2b74cdfdd4240b6b
Parents: 1ad9ae5
Author: scnakandala <su...@gmail.com>
Authored: Tue Jan 12 10:41:26 2016 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Tue Jan 12 10:41:26 2016 -0500

----------------------------------------------------------------------
 .../lib/Airavata/Model/Data/Replica/Types.php   | 1028 +++++++
 .../lib/Airavata/Model/Data/Transfer/Types.php  |  890 ++++++
 .../lib/Airavata/Model/Data/metadata/Types.php  |  371 +++
 .../airavata/model/data/metadata/__init__.py    |    1 +
 .../airavata/model/data/metadata/constants.py   |   11 +
 .../airavata/model/data/metadata/ttypes.py      |  232 ++
 .../airavata/model/data/replica/__init__.py     |    1 +
 .../airavata/model/data/replica/constants.py    |   11 +
 .../airavata/model/data/replica/ttypes.py       |  663 +++++
 .../airavata/model/data/transfer/__init__.py    |    1 +
 .../airavata/model/data/transfer/constants.py   |   11 +
 .../airavata/model/data/transfer/ttypes.py      |  597 ++++
 .../model/data/metadata/MetadataModel.java      | 1474 ++++++++++
 .../model/data/metadata/MetadataType.java       |   62 +
 .../model/data/replica/FileCollectionModel.java | 1247 ++++++++
 .../airavata/model/data/replica/FileModel.java  | 1879 ++++++++++++
 .../model/data/replica/FileModelType.java       |   62 +
 .../model/data/replica/FileReplicaModel.java    | 1272 +++++++++
 .../data/replica/ReplicaPersistentType.java     |   62 +
 .../model/data/replica/StorageResourceType.java |   71 +
 .../model/data/transfer/FileTransferMode.java   |   62 +
 .../data/transfer/FileTransferRequestModel.java | 2695 ++++++++++++++++++
 .../model/data/transfer/FileTransferStatus.java |   71 +
 .../model/data/transfer/LSEntryModel.java       | 1147 ++++++++
 .../model/data/transfer/LSEntryType.java        |   62 +
 .../data/transfer/StorageResourceProtocol.java  |   74 +
 26 files changed, 14057 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Replica/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Replica/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Replica/Types.php
new file mode 100644
index 0000000..38ee07f
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Replica/Types.php
@@ -0,0 +1,1028 @@
+<?php
+namespace Airavata\Model\Data\Replica;
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+use Thrift\Base\TBase;
+use Thrift\Type\TType;
+use Thrift\Type\TMessageType;
+use Thrift\Exception\TException;
+use Thrift\Exception\TProtocolException;
+use Thrift\Protocol\TProtocol;
+use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Thrift\Exception\TApplicationException;
+
+
+final class FileModelType {
+  const FILE = 0;
+  const DIRECTORY = 1;
+  static public $__names = array(
+    0 => 'FILE',
+    1 => 'DIRECTORY',
+  );
+}
+
+final class StorageResourceType {
+  const GATEWAY_DATA_STORE = 0;
+  const BACKUP_GATEWAY_DATA_STORE = 1;
+  const COMPUTE_RESOURCE = 2;
+  const LONG_TERM_STORAGE_RESOURCE = 3;
+  const OTHER = 4;
+  static public $__names = array(
+    0 => 'GATEWAY_DATA_STORE',
+    1 => 'BACKUP_GATEWAY_DATA_STORE',
+    2 => 'COMPUTE_RESOURCE',
+    3 => 'LONG_TERM_STORAGE_RESOURCE',
+    4 => 'OTHER',
+  );
+}
+
+final class ReplicaPersistentType {
+  const TRANSIENT = 0;
+  const PERSISTENT = 1;
+  static public $__names = array(
+    0 => 'TRANSIENT',
+    1 => 'PERSISTENT',
+  );
+}
+
+class FileCollectionModel {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $collectionId = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var string
+   */
+  public $username = null;
+  /**
+   * @var string[]
+   */
+  public $sharedUsers = null;
+  /**
+   * @var bool
+   */
+  public $sharedPublic = null;
+  /**
+   * @var string
+   */
+  public $collectionName = null;
+  /**
+   * @var string
+   */
+  public $collectionDescription = null;
+  /**
+   * @var string[]
+   */
+  public $fileIdList = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'collectionId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'username',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'sharedUsers',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        5 => array(
+          'var' => 'sharedPublic',
+          'type' => TType::BOOL,
+          ),
+        6 => array(
+          'var' => 'collectionName',
+          'type' => TType::STRING,
+          ),
+        7 => array(
+          'var' => 'collectionDescription',
+          'type' => TType::STRING,
+          ),
+        8 => array(
+          'var' => 'fileIdList',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['collectionId'])) {
+        $this->collectionId = $vals['collectionId'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['username'])) {
+        $this->username = $vals['username'];
+      }
+      if (isset($vals['sharedUsers'])) {
+        $this->sharedUsers = $vals['sharedUsers'];
+      }
+      if (isset($vals['sharedPublic'])) {
+        $this->sharedPublic = $vals['sharedPublic'];
+      }
+      if (isset($vals['collectionName'])) {
+        $this->collectionName = $vals['collectionName'];
+      }
+      if (isset($vals['collectionDescription'])) {
+        $this->collectionDescription = $vals['collectionDescription'];
+      }
+      if (isset($vals['fileIdList'])) {
+        $this->fileIdList = $vals['fileIdList'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'FileCollectionModel';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->collectionId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->username);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::LST) {
+            $this->sharedUsers = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $xfer += $input->readString($elem5);
+              $this->sharedUsers []= $elem5;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->sharedPublic);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->collectionName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->collectionDescription);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::LST) {
+            $this->fileIdList = array();
+            $_size6 = 0;
+            $_etype9 = 0;
+            $xfer += $input->readListBegin($_etype9, $_size6);
+            for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
+            {
+              $elem11 = null;
+              $xfer += $input->readString($elem11);
+              $this->fileIdList []= $elem11;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('FileCollectionModel');
+    if ($this->collectionId !== null) {
+      $xfer += $output->writeFieldBegin('collectionId', TType::STRING, 1);
+      $xfer += $output->writeString($this->collectionId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->username !== null) {
+      $xfer += $output->writeFieldBegin('username', TType::STRING, 3);
+      $xfer += $output->writeString($this->username);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->sharedUsers !== null) {
+      if (!is_array($this->sharedUsers)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('sharedUsers', TType::LST, 4);
+      {
+        $output->writeListBegin(TType::STRING, count($this->sharedUsers));
+        {
+          foreach ($this->sharedUsers as $iter12)
+          {
+            $xfer += $output->writeString($iter12);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->sharedPublic !== null) {
+      $xfer += $output->writeFieldBegin('sharedPublic', TType::BOOL, 5);
+      $xfer += $output->writeBool($this->sharedPublic);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->collectionName !== null) {
+      $xfer += $output->writeFieldBegin('collectionName', TType::STRING, 6);
+      $xfer += $output->writeString($this->collectionName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->collectionDescription !== null) {
+      $xfer += $output->writeFieldBegin('collectionDescription', TType::STRING, 7);
+      $xfer += $output->writeString($this->collectionDescription);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fileIdList !== null) {
+      if (!is_array($this->fileIdList)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('fileIdList', TType::LST, 8);
+      {
+        $output->writeListBegin(TType::STRING, count($this->fileIdList));
+        {
+          foreach ($this->fileIdList as $iter13)
+          {
+            $xfer += $output->writeString($iter13);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class FileModel {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $fileId = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var string
+   */
+  public $username = null;
+  /**
+   * @var string[]
+   */
+  public $sharedUsers = null;
+  /**
+   * @var bool
+   */
+  public $sharedPublic = null;
+  /**
+   * @var string
+   */
+  public $fileName = null;
+  /**
+   * @var string
+   */
+  public $fileDescription = null;
+  /**
+   * @var string
+   */
+  public $sha256Checksum = null;
+  /**
+   * @var int
+   */
+  public $fileType = null;
+  /**
+   * @var int
+   */
+  public $fileSize = null;
+  /**
+   * @var string
+   */
+  public $dataType = null;
+  /**
+   * @var int
+   */
+  public $creationTime = null;
+  /**
+   * @var int
+   */
+  public $lastModifiedTime = null;
+  /**
+   * @var \Airavata\Model\Data\Replica\FileReplicaModel[]
+   */
+  public $fileReplicas = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'fileId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'username',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'sharedUsers',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        5 => array(
+          'var' => 'sharedPublic',
+          'type' => TType::BOOL,
+          ),
+        6 => array(
+          'var' => 'fileName',
+          'type' => TType::STRING,
+          ),
+        7 => array(
+          'var' => 'fileDescription',
+          'type' => TType::STRING,
+          ),
+        8 => array(
+          'var' => 'sha256Checksum',
+          'type' => TType::STRING,
+          ),
+        9 => array(
+          'var' => 'fileType',
+          'type' => TType::I32,
+          ),
+        10 => array(
+          'var' => 'fileSize',
+          'type' => TType::I32,
+          ),
+        11 => array(
+          'var' => 'dataType',
+          'type' => TType::STRING,
+          ),
+        12 => array(
+          'var' => 'creationTime',
+          'type' => TType::I64,
+          ),
+        13 => array(
+          'var' => 'lastModifiedTime',
+          'type' => TType::I64,
+          ),
+        14 => array(
+          'var' => 'fileReplicas',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Data\Replica\FileReplicaModel',
+            ),
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['fileId'])) {
+        $this->fileId = $vals['fileId'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['username'])) {
+        $this->username = $vals['username'];
+      }
+      if (isset($vals['sharedUsers'])) {
+        $this->sharedUsers = $vals['sharedUsers'];
+      }
+      if (isset($vals['sharedPublic'])) {
+        $this->sharedPublic = $vals['sharedPublic'];
+      }
+      if (isset($vals['fileName'])) {
+        $this->fileName = $vals['fileName'];
+      }
+      if (isset($vals['fileDescription'])) {
+        $this->fileDescription = $vals['fileDescription'];
+      }
+      if (isset($vals['sha256Checksum'])) {
+        $this->sha256Checksum = $vals['sha256Checksum'];
+      }
+      if (isset($vals['fileType'])) {
+        $this->fileType = $vals['fileType'];
+      }
+      if (isset($vals['fileSize'])) {
+        $this->fileSize = $vals['fileSize'];
+      }
+      if (isset($vals['dataType'])) {
+        $this->dataType = $vals['dataType'];
+      }
+      if (isset($vals['creationTime'])) {
+        $this->creationTime = $vals['creationTime'];
+      }
+      if (isset($vals['lastModifiedTime'])) {
+        $this->lastModifiedTime = $vals['lastModifiedTime'];
+      }
+      if (isset($vals['fileReplicas'])) {
+        $this->fileReplicas = $vals['fileReplicas'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'FileModel';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->fileId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->username);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::LST) {
+            $this->sharedUsers = array();
+            $_size14 = 0;
+            $_etype17 = 0;
+            $xfer += $input->readListBegin($_etype17, $_size14);
+            for ($_i18 = 0; $_i18 < $_size14; ++$_i18)
+            {
+              $elem19 = null;
+              $xfer += $input->readString($elem19);
+              $this->sharedUsers []= $elem19;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->sharedPublic);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->fileName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->fileDescription);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->sha256Checksum);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->fileType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->fileSize);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 11:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->dataType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 12:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->creationTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 13:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->lastModifiedTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 14:
+          if ($ftype == TType::LST) {
+            $this->fileReplicas = array();
+            $_size20 = 0;
+            $_etype23 = 0;
+            $xfer += $input->readListBegin($_etype23, $_size20);
+            for ($_i24 = 0; $_i24 < $_size20; ++$_i24)
+            {
+              $elem25 = null;
+              $elem25 = new \Airavata\Model\Data\Replica\FileReplicaModel();
+              $xfer += $elem25->read($input);
+              $this->fileReplicas []= $elem25;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('FileModel');
+    if ($this->fileId !== null) {
+      $xfer += $output->writeFieldBegin('fileId', TType::STRING, 1);
+      $xfer += $output->writeString($this->fileId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->username !== null) {
+      $xfer += $output->writeFieldBegin('username', TType::STRING, 3);
+      $xfer += $output->writeString($this->username);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->sharedUsers !== null) {
+      if (!is_array($this->sharedUsers)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('sharedUsers', TType::LST, 4);
+      {
+        $output->writeListBegin(TType::STRING, count($this->sharedUsers));
+        {
+          foreach ($this->sharedUsers as $iter26)
+          {
+            $xfer += $output->writeString($iter26);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->sharedPublic !== null) {
+      $xfer += $output->writeFieldBegin('sharedPublic', TType::BOOL, 5);
+      $xfer += $output->writeBool($this->sharedPublic);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fileName !== null) {
+      $xfer += $output->writeFieldBegin('fileName', TType::STRING, 6);
+      $xfer += $output->writeString($this->fileName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fileDescription !== null) {
+      $xfer += $output->writeFieldBegin('fileDescription', TType::STRING, 7);
+      $xfer += $output->writeString($this->fileDescription);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->sha256Checksum !== null) {
+      $xfer += $output->writeFieldBegin('sha256Checksum', TType::STRING, 8);
+      $xfer += $output->writeString($this->sha256Checksum);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fileType !== null) {
+      $xfer += $output->writeFieldBegin('fileType', TType::I32, 9);
+      $xfer += $output->writeI32($this->fileType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fileSize !== null) {
+      $xfer += $output->writeFieldBegin('fileSize', TType::I32, 10);
+      $xfer += $output->writeI32($this->fileSize);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->dataType !== null) {
+      $xfer += $output->writeFieldBegin('dataType', TType::STRING, 11);
+      $xfer += $output->writeString($this->dataType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->creationTime !== null) {
+      $xfer += $output->writeFieldBegin('creationTime', TType::I64, 12);
+      $xfer += $output->writeI64($this->creationTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->lastModifiedTime !== null) {
+      $xfer += $output->writeFieldBegin('lastModifiedTime', TType::I64, 13);
+      $xfer += $output->writeI64($this->lastModifiedTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fileReplicas !== null) {
+      if (!is_array($this->fileReplicas)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('fileReplicas', TType::LST, 14);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->fileReplicas));
+        {
+          foreach ($this->fileReplicas as $iter27)
+          {
+            $xfer += $iter27->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class FileReplicaModel {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $replicaName = null;
+  /**
+   * @var string
+   */
+  public $replicaDescription = null;
+  /**
+   * @var string
+   */
+  public $storageHostname = null;
+  /**
+   * @var string
+   */
+  public $storageResourceId = null;
+  /**
+   * @var string
+   */
+  public $filePath = null;
+  /**
+   * @var int
+   */
+  public $creationTime = null;
+  /**
+   * @var int
+   */
+  public $validUntilTime = null;
+  /**
+   * @var int
+   */
+  public $storageResourceType = null;
+  /**
+   * @var int
+   */
+  public $replicaPersistentType = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'replicaName',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'replicaDescription',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'storageHostname',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'storageResourceId',
+          'type' => TType::STRING,
+          ),
+        5 => array(
+          'var' => 'filePath',
+          'type' => TType::STRING,
+          ),
+        6 => array(
+          'var' => 'creationTime',
+          'type' => TType::I64,
+          ),
+        7 => array(
+          'var' => 'validUntilTime',
+          'type' => TType::I64,
+          ),
+        8 => array(
+          'var' => 'storageResourceType',
+          'type' => TType::I32,
+          ),
+        9 => array(
+          'var' => 'replicaPersistentType',
+          'type' => TType::I32,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['replicaName'])) {
+        $this->replicaName = $vals['replicaName'];
+      }
+      if (isset($vals['replicaDescription'])) {
+        $this->replicaDescription = $vals['replicaDescription'];
+      }
+      if (isset($vals['storageHostname'])) {
+        $this->storageHostname = $vals['storageHostname'];
+      }
+      if (isset($vals['storageResourceId'])) {
+        $this->storageResourceId = $vals['storageResourceId'];
+      }
+      if (isset($vals['filePath'])) {
+        $this->filePath = $vals['filePath'];
+      }
+      if (isset($vals['creationTime'])) {
+        $this->creationTime = $vals['creationTime'];
+      }
+      if (isset($vals['validUntilTime'])) {
+        $this->validUntilTime = $vals['validUntilTime'];
+      }
+      if (isset($vals['storageResourceType'])) {
+        $this->storageResourceType = $vals['storageResourceType'];
+      }
+      if (isset($vals['replicaPersistentType'])) {
+        $this->replicaPersistentType = $vals['replicaPersistentType'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'FileReplicaModel';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->replicaName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->replicaDescription);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->storageHostname);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->storageResourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->filePath);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->creationTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->validUntilTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->storageResourceType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->replicaPersistentType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('FileReplicaModel');
+    if ($this->replicaName !== null) {
+      $xfer += $output->writeFieldBegin('replicaName', TType::STRING, 1);
+      $xfer += $output->writeString($this->replicaName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->replicaDescription !== null) {
+      $xfer += $output->writeFieldBegin('replicaDescription', TType::STRING, 2);
+      $xfer += $output->writeString($this->replicaDescription);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->storageHostname !== null) {
+      $xfer += $output->writeFieldBegin('storageHostname', TType::STRING, 3);
+      $xfer += $output->writeString($this->storageHostname);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->storageResourceId !== null) {
+      $xfer += $output->writeFieldBegin('storageResourceId', TType::STRING, 4);
+      $xfer += $output->writeString($this->storageResourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->filePath !== null) {
+      $xfer += $output->writeFieldBegin('filePath', TType::STRING, 5);
+      $xfer += $output->writeString($this->filePath);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->creationTime !== null) {
+      $xfer += $output->writeFieldBegin('creationTime', TType::I64, 6);
+      $xfer += $output->writeI64($this->creationTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->validUntilTime !== null) {
+      $xfer += $output->writeFieldBegin('validUntilTime', TType::I64, 7);
+      $xfer += $output->writeI64($this->validUntilTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->storageResourceType !== null) {
+      $xfer += $output->writeFieldBegin('storageResourceType', TType::I32, 8);
+      $xfer += $output->writeI32($this->storageResourceType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->replicaPersistentType !== null) {
+      $xfer += $output->writeFieldBegin('replicaPersistentType', TType::I32, 9);
+      $xfer += $output->writeI32($this->replicaPersistentType);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Transfer/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Transfer/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Transfer/Types.php
new file mode 100644
index 0000000..e8a211c
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Transfer/Types.php
@@ -0,0 +1,890 @@
+<?php
+namespace Airavata\Model\Data\Transfer;
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+use Thrift\Base\TBase;
+use Thrift\Type\TType;
+use Thrift\Type\TMessageType;
+use Thrift\Exception\TException;
+use Thrift\Exception\TProtocolException;
+use Thrift\Protocol\TProtocol;
+use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Thrift\Exception\TApplicationException;
+
+
+final class StorageResourceProtocol {
+  const SCP = 0;
+  const SFTP = 1;
+  const HTTP = 2;
+  const HTTPS = 3;
+  const GridFTP = 4;
+  const LOCAL = 5;
+  static public $__names = array(
+    0 => 'SCP',
+    1 => 'SFTP',
+    2 => 'HTTP',
+    3 => 'HTTPS',
+    4 => 'GridFTP',
+    5 => 'LOCAL',
+  );
+}
+
+final class LSEntryType {
+  const DIRECTORY = 0;
+  const FILE = 1;
+  static public $__names = array(
+    0 => 'DIRECTORY',
+    1 => 'FILE',
+  );
+}
+
+final class FileTransferMode {
+  const SYNC = 0;
+  const ASYNC = 1;
+  static public $__names = array(
+    0 => 'SYNC',
+    1 => 'ASYNC',
+  );
+}
+
+final class FileTransferStatus {
+  const CREATED = 0;
+  const QUEUED = 1;
+  const RUNNING = 2;
+  const COMPLETED = 3;
+  const FAILED = 4;
+  static public $__names = array(
+    0 => 'CREATED',
+    1 => 'QUEUED',
+    2 => 'RUNNING',
+    3 => 'COMPLETED',
+    4 => 'FAILED',
+  );
+}
+
+class FileTransferRequestModel {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $transferId = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var string
+   */
+  public $username = null;
+  /**
+   * @var string
+   */
+  public $srcHostname = null;
+  /**
+   * @var string
+   */
+  public $srcLoginName = null;
+  /**
+   * @var int
+   */
+  public $srcPort = null;
+  /**
+   * @var int
+   */
+  public $srcProtocol = null;
+  /**
+   * @var string
+   */
+  public $srcFilePath = null;
+  /**
+   * @var string
+   */
+  public $srcHostCredToken = null;
+  /**
+   * @var string
+   */
+  public $destHostname = null;
+  /**
+   * @var string
+   */
+  public $destLoginName = null;
+  /**
+   * @var int
+   */
+  public $destPort = null;
+  /**
+   * @var int
+   */
+  public $destProtocol = null;
+  /**
+   * @var string
+   */
+  public $destFilePath = null;
+  /**
+   * @var string
+   */
+  public $destHostCredToken = null;
+  /**
+   * @var int
+   */
+  public $fileTransferMode = null;
+  /**
+   * @var int
+   */
+  public $transferStatus = null;
+  /**
+   * @var int
+   */
+  public $fileSize = null;
+  /**
+   * @var int
+   */
+  public $transferTime = null;
+  /**
+   * @var int
+   */
+  public $createdTime = null;
+  /**
+   * @var int
+   */
+  public $lastModifiedType = null;
+  /**
+   * @var string[]
+   */
+  public $callbackEmails = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'transferId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'username',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'srcHostname',
+          'type' => TType::STRING,
+          ),
+        5 => array(
+          'var' => 'srcLoginName',
+          'type' => TType::STRING,
+          ),
+        6 => array(
+          'var' => 'srcPort',
+          'type' => TType::I64,
+          ),
+        7 => array(
+          'var' => 'srcProtocol',
+          'type' => TType::I32,
+          ),
+        8 => array(
+          'var' => 'srcFilePath',
+          'type' => TType::STRING,
+          ),
+        9 => array(
+          'var' => 'srcHostCredToken',
+          'type' => TType::STRING,
+          ),
+        10 => array(
+          'var' => 'destHostname',
+          'type' => TType::STRING,
+          ),
+        11 => array(
+          'var' => 'destLoginName',
+          'type' => TType::STRING,
+          ),
+        12 => array(
+          'var' => 'destPort',
+          'type' => TType::I64,
+          ),
+        13 => array(
+          'var' => 'destProtocol',
+          'type' => TType::I32,
+          ),
+        14 => array(
+          'var' => 'destFilePath',
+          'type' => TType::STRING,
+          ),
+        15 => array(
+          'var' => 'destHostCredToken',
+          'type' => TType::STRING,
+          ),
+        16 => array(
+          'var' => 'fileTransferMode',
+          'type' => TType::I32,
+          ),
+        17 => array(
+          'var' => 'transferStatus',
+          'type' => TType::I32,
+          ),
+        18 => array(
+          'var' => 'fileSize',
+          'type' => TType::I64,
+          ),
+        19 => array(
+          'var' => 'transferTime',
+          'type' => TType::I64,
+          ),
+        20 => array(
+          'var' => 'createdTime',
+          'type' => TType::I64,
+          ),
+        21 => array(
+          'var' => 'lastModifiedType',
+          'type' => TType::I64,
+          ),
+        22 => array(
+          'var' => 'callbackEmails',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['transferId'])) {
+        $this->transferId = $vals['transferId'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['username'])) {
+        $this->username = $vals['username'];
+      }
+      if (isset($vals['srcHostname'])) {
+        $this->srcHostname = $vals['srcHostname'];
+      }
+      if (isset($vals['srcLoginName'])) {
+        $this->srcLoginName = $vals['srcLoginName'];
+      }
+      if (isset($vals['srcPort'])) {
+        $this->srcPort = $vals['srcPort'];
+      }
+      if (isset($vals['srcProtocol'])) {
+        $this->srcProtocol = $vals['srcProtocol'];
+      }
+      if (isset($vals['srcFilePath'])) {
+        $this->srcFilePath = $vals['srcFilePath'];
+      }
+      if (isset($vals['srcHostCredToken'])) {
+        $this->srcHostCredToken = $vals['srcHostCredToken'];
+      }
+      if (isset($vals['destHostname'])) {
+        $this->destHostname = $vals['destHostname'];
+      }
+      if (isset($vals['destLoginName'])) {
+        $this->destLoginName = $vals['destLoginName'];
+      }
+      if (isset($vals['destPort'])) {
+        $this->destPort = $vals['destPort'];
+      }
+      if (isset($vals['destProtocol'])) {
+        $this->destProtocol = $vals['destProtocol'];
+      }
+      if (isset($vals['destFilePath'])) {
+        $this->destFilePath = $vals['destFilePath'];
+      }
+      if (isset($vals['destHostCredToken'])) {
+        $this->destHostCredToken = $vals['destHostCredToken'];
+      }
+      if (isset($vals['fileTransferMode'])) {
+        $this->fileTransferMode = $vals['fileTransferMode'];
+      }
+      if (isset($vals['transferStatus'])) {
+        $this->transferStatus = $vals['transferStatus'];
+      }
+      if (isset($vals['fileSize'])) {
+        $this->fileSize = $vals['fileSize'];
+      }
+      if (isset($vals['transferTime'])) {
+        $this->transferTime = $vals['transferTime'];
+      }
+      if (isset($vals['createdTime'])) {
+        $this->createdTime = $vals['createdTime'];
+      }
+      if (isset($vals['lastModifiedType'])) {
+        $this->lastModifiedType = $vals['lastModifiedType'];
+      }
+      if (isset($vals['callbackEmails'])) {
+        $this->callbackEmails = $vals['callbackEmails'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'FileTransferRequestModel';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->transferId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->username);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->srcHostname);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->srcLoginName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->srcPort);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->srcProtocol);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->srcFilePath);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->srcHostCredToken);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->destHostname);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 11:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->destLoginName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 12:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->destPort);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 13:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->destProtocol);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 14:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->destFilePath);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 15:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->destHostCredToken);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 16:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->fileTransferMode);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 17:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->transferStatus);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 18:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->fileSize);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 19:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->transferTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 20:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->createdTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 21:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->lastModifiedType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 22:
+          if ($ftype == TType::LST) {
+            $this->callbackEmails = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $xfer += $input->readString($elem5);
+              $this->callbackEmails []= $elem5;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('FileTransferRequestModel');
+    if ($this->transferId !== null) {
+      $xfer += $output->writeFieldBegin('transferId', TType::STRING, 1);
+      $xfer += $output->writeString($this->transferId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->username !== null) {
+      $xfer += $output->writeFieldBegin('username', TType::STRING, 3);
+      $xfer += $output->writeString($this->username);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->srcHostname !== null) {
+      $xfer += $output->writeFieldBegin('srcHostname', TType::STRING, 4);
+      $xfer += $output->writeString($this->srcHostname);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->srcLoginName !== null) {
+      $xfer += $output->writeFieldBegin('srcLoginName', TType::STRING, 5);
+      $xfer += $output->writeString($this->srcLoginName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->srcPort !== null) {
+      $xfer += $output->writeFieldBegin('srcPort', TType::I64, 6);
+      $xfer += $output->writeI64($this->srcPort);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->srcProtocol !== null) {
+      $xfer += $output->writeFieldBegin('srcProtocol', TType::I32, 7);
+      $xfer += $output->writeI32($this->srcProtocol);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->srcFilePath !== null) {
+      $xfer += $output->writeFieldBegin('srcFilePath', TType::STRING, 8);
+      $xfer += $output->writeString($this->srcFilePath);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->srcHostCredToken !== null) {
+      $xfer += $output->writeFieldBegin('srcHostCredToken', TType::STRING, 9);
+      $xfer += $output->writeString($this->srcHostCredToken);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->destHostname !== null) {
+      $xfer += $output->writeFieldBegin('destHostname', TType::STRING, 10);
+      $xfer += $output->writeString($this->destHostname);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->destLoginName !== null) {
+      $xfer += $output->writeFieldBegin('destLoginName', TType::STRING, 11);
+      $xfer += $output->writeString($this->destLoginName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->destPort !== null) {
+      $xfer += $output->writeFieldBegin('destPort', TType::I64, 12);
+      $xfer += $output->writeI64($this->destPort);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->destProtocol !== null) {
+      $xfer += $output->writeFieldBegin('destProtocol', TType::I32, 13);
+      $xfer += $output->writeI32($this->destProtocol);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->destFilePath !== null) {
+      $xfer += $output->writeFieldBegin('destFilePath', TType::STRING, 14);
+      $xfer += $output->writeString($this->destFilePath);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->destHostCredToken !== null) {
+      $xfer += $output->writeFieldBegin('destHostCredToken', TType::STRING, 15);
+      $xfer += $output->writeString($this->destHostCredToken);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fileTransferMode !== null) {
+      $xfer += $output->writeFieldBegin('fileTransferMode', TType::I32, 16);
+      $xfer += $output->writeI32($this->fileTransferMode);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->transferStatus !== null) {
+      $xfer += $output->writeFieldBegin('transferStatus', TType::I32, 17);
+      $xfer += $output->writeI32($this->transferStatus);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fileSize !== null) {
+      $xfer += $output->writeFieldBegin('fileSize', TType::I64, 18);
+      $xfer += $output->writeI64($this->fileSize);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->transferTime !== null) {
+      $xfer += $output->writeFieldBegin('transferTime', TType::I64, 19);
+      $xfer += $output->writeI64($this->transferTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->createdTime !== null) {
+      $xfer += $output->writeFieldBegin('createdTime', TType::I64, 20);
+      $xfer += $output->writeI64($this->createdTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->lastModifiedType !== null) {
+      $xfer += $output->writeFieldBegin('lastModifiedType', TType::I64, 21);
+      $xfer += $output->writeI64($this->lastModifiedType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->callbackEmails !== null) {
+      if (!is_array($this->callbackEmails)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('callbackEmails', TType::LST, 22);
+      {
+        $output->writeListBegin(TType::STRING, count($this->callbackEmails));
+        {
+          foreach ($this->callbackEmails as $iter6)
+          {
+            $xfer += $output->writeString($iter6);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class LSEntryModel {
+  static $_TSPEC;
+
+  /**
+   * @var int
+   */
+  public $type = null;
+  /**
+   * @var int
+   */
+  public $size = null;
+  /**
+   * @var string
+   */
+  public $nativeType = null;
+  /**
+   * @var string
+   */
+  public $name = null;
+  /**
+   * @var string
+   */
+  public $path = null;
+  /**
+   * @var string
+   */
+  public $storageHostName = null;
+  /**
+   * @var int
+   */
+  public $lastModifiedType = null;
+  /**
+   * @var int
+   */
+  public $createdTime = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'type',
+          'type' => TType::I32,
+          ),
+        2 => array(
+          'var' => 'size',
+          'type' => TType::I64,
+          ),
+        3 => array(
+          'var' => 'nativeType',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'name',
+          'type' => TType::STRING,
+          ),
+        5 => array(
+          'var' => 'path',
+          'type' => TType::STRING,
+          ),
+        6 => array(
+          'var' => 'storageHostName',
+          'type' => TType::STRING,
+          ),
+        7 => array(
+          'var' => 'lastModifiedType',
+          'type' => TType::I64,
+          ),
+        8 => array(
+          'var' => 'createdTime',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['type'])) {
+        $this->type = $vals['type'];
+      }
+      if (isset($vals['size'])) {
+        $this->size = $vals['size'];
+      }
+      if (isset($vals['nativeType'])) {
+        $this->nativeType = $vals['nativeType'];
+      }
+      if (isset($vals['name'])) {
+        $this->name = $vals['name'];
+      }
+      if (isset($vals['path'])) {
+        $this->path = $vals['path'];
+      }
+      if (isset($vals['storageHostName'])) {
+        $this->storageHostName = $vals['storageHostName'];
+      }
+      if (isset($vals['lastModifiedType'])) {
+        $this->lastModifiedType = $vals['lastModifiedType'];
+      }
+      if (isset($vals['createdTime'])) {
+        $this->createdTime = $vals['createdTime'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'LSEntryModel';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->type);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->size);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->nativeType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->name);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->path);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->storageHostName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->lastModifiedType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->createdTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('LSEntryModel');
+    if ($this->type !== null) {
+      $xfer += $output->writeFieldBegin('type', TType::I32, 1);
+      $xfer += $output->writeI32($this->type);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->size !== null) {
+      $xfer += $output->writeFieldBegin('size', TType::I64, 2);
+      $xfer += $output->writeI64($this->size);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->nativeType !== null) {
+      $xfer += $output->writeFieldBegin('nativeType', TType::STRING, 3);
+      $xfer += $output->writeString($this->nativeType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->name !== null) {
+      $xfer += $output->writeFieldBegin('name', TType::STRING, 4);
+      $xfer += $output->writeString($this->name);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->path !== null) {
+      $xfer += $output->writeFieldBegin('path', TType::STRING, 5);
+      $xfer += $output->writeString($this->path);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->storageHostName !== null) {
+      $xfer += $output->writeFieldBegin('storageHostName', TType::STRING, 6);
+      $xfer += $output->writeString($this->storageHostName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->lastModifiedType !== null) {
+      $xfer += $output->writeFieldBegin('lastModifiedType', TType::I64, 7);
+      $xfer += $output->writeI64($this->lastModifiedType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->createdTime !== null) {
+      $xfer += $output->writeFieldBegin('createdTime', TType::I64, 8);
+      $xfer += $output->writeI64($this->createdTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/metadata/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/metadata/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/metadata/Types.php
new file mode 100644
index 0000000..bb99359
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/metadata/Types.php
@@ -0,0 +1,371 @@
+<?php
+namespace Airavata\Model\data\metadata;
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+use Thrift\Base\TBase;
+use Thrift\Type\TType;
+use Thrift\Type\TMessageType;
+use Thrift\Exception\TException;
+use Thrift\Exception\TProtocolException;
+use Thrift\Protocol\TProtocol;
+use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Thrift\Exception\TApplicationException;
+
+
+final class MetadataType {
+  const FILE = 0;
+  const COLLECTION = 1;
+  static public $__names = array(
+    0 => 'FILE',
+    1 => 'COLLECTION',
+  );
+}
+
+class MetadataModel {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $metadataId = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var string
+   */
+  public $username = null;
+  /**
+   * @var string[]
+   */
+  public $sharedUsers = null;
+  /**
+   * @var bool
+   */
+  public $sharedPublic = null;
+  /**
+   * @var string
+   */
+  public $userFriendlyName = null;
+  /**
+   * @var string
+   */
+  public $userFriendlyDescription = null;
+  /**
+   * @var int
+   */
+  public $metadataType = null;
+  /**
+   * @var string
+   */
+  public $associatedEntityId = null;
+  /**
+   * @var array
+   */
+  public $customInformation = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'metadataId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'username',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'sharedUsers',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        5 => array(
+          'var' => 'sharedPublic',
+          'type' => TType::BOOL,
+          ),
+        6 => array(
+          'var' => 'userFriendlyName',
+          'type' => TType::STRING,
+          ),
+        7 => array(
+          'var' => 'userFriendlyDescription',
+          'type' => TType::STRING,
+          ),
+        8 => array(
+          'var' => 'metadataType',
+          'type' => TType::I32,
+          ),
+        9 => array(
+          'var' => 'associatedEntityId',
+          'type' => TType::STRING,
+          ),
+        10 => array(
+          'var' => 'customInformation',
+          'type' => TType::MAP,
+          'ktype' => TType::STRING,
+          'vtype' => TType::STRING,
+          'key' => array(
+            'type' => TType::STRING,
+          ),
+          'val' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['metadataId'])) {
+        $this->metadataId = $vals['metadataId'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['username'])) {
+        $this->username = $vals['username'];
+      }
+      if (isset($vals['sharedUsers'])) {
+        $this->sharedUsers = $vals['sharedUsers'];
+      }
+      if (isset($vals['sharedPublic'])) {
+        $this->sharedPublic = $vals['sharedPublic'];
+      }
+      if (isset($vals['userFriendlyName'])) {
+        $this->userFriendlyName = $vals['userFriendlyName'];
+      }
+      if (isset($vals['userFriendlyDescription'])) {
+        $this->userFriendlyDescription = $vals['userFriendlyDescription'];
+      }
+      if (isset($vals['metadataType'])) {
+        $this->metadataType = $vals['metadataType'];
+      }
+      if (isset($vals['associatedEntityId'])) {
+        $this->associatedEntityId = $vals['associatedEntityId'];
+      }
+      if (isset($vals['customInformation'])) {
+        $this->customInformation = $vals['customInformation'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'MetadataModel';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->metadataId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->username);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::LST) {
+            $this->sharedUsers = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $xfer += $input->readString($elem5);
+              $this->sharedUsers []= $elem5;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->sharedPublic);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->userFriendlyName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->userFriendlyDescription);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->metadataType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->associatedEntityId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::MAP) {
+            $this->customInformation = array();
+            $_size6 = 0;
+            $_ktype7 = 0;
+            $_vtype8 = 0;
+            $xfer += $input->readMapBegin($_ktype7, $_vtype8, $_size6);
+            for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
+            {
+              $key11 = '';
+              $val12 = '';
+              $xfer += $input->readString($key11);
+              $xfer += $input->readString($val12);
+              $this->customInformation[$key11] = $val12;
+            }
+            $xfer += $input->readMapEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('MetadataModel');
+    if ($this->metadataId !== null) {
+      $xfer += $output->writeFieldBegin('metadataId', TType::STRING, 1);
+      $xfer += $output->writeString($this->metadataId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->username !== null) {
+      $xfer += $output->writeFieldBegin('username', TType::STRING, 3);
+      $xfer += $output->writeString($this->username);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->sharedUsers !== null) {
+      if (!is_array($this->sharedUsers)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('sharedUsers', TType::LST, 4);
+      {
+        $output->writeListBegin(TType::STRING, count($this->sharedUsers));
+        {
+          foreach ($this->sharedUsers as $iter13)
+          {
+            $xfer += $output->writeString($iter13);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->sharedPublic !== null) {
+      $xfer += $output->writeFieldBegin('sharedPublic', TType::BOOL, 5);
+      $xfer += $output->writeBool($this->sharedPublic);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->userFriendlyName !== null) {
+      $xfer += $output->writeFieldBegin('userFriendlyName', TType::STRING, 6);
+      $xfer += $output->writeString($this->userFriendlyName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->userFriendlyDescription !== null) {
+      $xfer += $output->writeFieldBegin('userFriendlyDescription', TType::STRING, 7);
+      $xfer += $output->writeString($this->userFriendlyDescription);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->metadataType !== null) {
+      $xfer += $output->writeFieldBegin('metadataType', TType::I32, 8);
+      $xfer += $output->writeI32($this->metadataType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->associatedEntityId !== null) {
+      $xfer += $output->writeFieldBegin('associatedEntityId', TType::STRING, 9);
+      $xfer += $output->writeString($this->associatedEntityId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->customInformation !== null) {
+      if (!is_array($this->customInformation)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('customInformation', TType::MAP, 10);
+      {
+        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->customInformation));
+        {
+          foreach ($this->customInformation as $kiter14 => $viter15)
+          {
+            $xfer += $output->writeString($kiter14);
+            $xfer += $output->writeString($viter15);
+          }
+        }
+        $output->writeMapEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+from ttypes import *
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/ttypes.py
new file mode 100644
index 0000000..b50ac94
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/metadata/ttypes.py
@@ -0,0 +1,232 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+class MetadataType:
+  FILE = 0
+  COLLECTION = 1
+
+  _VALUES_TO_NAMES = {
+    0: "FILE",
+    1: "COLLECTION",
+  }
+
+  _NAMES_TO_VALUES = {
+    "FILE": 0,
+    "COLLECTION": 1,
+  }
+
+
+class MetadataModel:
+  """
+  Attributes:
+   - metadataId
+   - gatewayId
+   - username
+   - sharedUsers
+   - sharedPublic
+   - userFriendlyName
+   - userFriendlyDescription
+   - metadataType
+   - associatedEntityId
+   - customInformation
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'metadataId', None, None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRING, 'username', None, None, ), # 3
+    (4, TType.LIST, 'sharedUsers', (TType.STRING,None), None, ), # 4
+    (5, TType.BOOL, 'sharedPublic', None, None, ), # 5
+    (6, TType.STRING, 'userFriendlyName', None, None, ), # 6
+    (7, TType.STRING, 'userFriendlyDescription', None, None, ), # 7
+    (8, TType.I32, 'metadataType', None, None, ), # 8
+    (9, TType.STRING, 'associatedEntityId', None, None, ), # 9
+    (10, TType.MAP, 'customInformation', (TType.STRING,None,TType.STRING,None), None, ), # 10
+  )
+
+  def __init__(self, metadataId=None, gatewayId=None, username=None, sharedUsers=None, sharedPublic=None, userFriendlyName=None, userFriendlyDescription=None, metadataType=None, associatedEntityId=None, customInformation=None,):
+    self.metadataId = metadataId
+    self.gatewayId = gatewayId
+    self.username = username
+    self.sharedUsers = sharedUsers
+    self.sharedPublic = sharedPublic
+    self.userFriendlyName = userFriendlyName
+    self.userFriendlyDescription = userFriendlyDescription
+    self.metadataType = metadataType
+    self.associatedEntityId = associatedEntityId
+    self.customInformation = customInformation
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.metadataId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.username = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.LIST:
+          self.sharedUsers = []
+          (_etype3, _size0) = iprot.readListBegin()
+          for _i4 in xrange(_size0):
+            _elem5 = iprot.readString()
+            self.sharedUsers.append(_elem5)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.BOOL:
+          self.sharedPublic = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.STRING:
+          self.userFriendlyName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.STRING:
+          self.userFriendlyDescription = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.I32:
+          self.metadataType = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.STRING:
+          self.associatedEntityId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 10:
+        if ftype == TType.MAP:
+          self.customInformation = {}
+          (_ktype7, _vtype8, _size6 ) = iprot.readMapBegin()
+          for _i10 in xrange(_size6):
+            _key11 = iprot.readString()
+            _val12 = iprot.readString()
+            self.customInformation[_key11] = _val12
+          iprot.readMapEnd()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('MetadataModel')
+    if self.metadataId is not None:
+      oprot.writeFieldBegin('metadataId', TType.STRING, 1)
+      oprot.writeString(self.metadataId)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.username is not None:
+      oprot.writeFieldBegin('username', TType.STRING, 3)
+      oprot.writeString(self.username)
+      oprot.writeFieldEnd()
+    if self.sharedUsers is not None:
+      oprot.writeFieldBegin('sharedUsers', TType.LIST, 4)
+      oprot.writeListBegin(TType.STRING, len(self.sharedUsers))
+      for iter13 in self.sharedUsers:
+        oprot.writeString(iter13)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.sharedPublic is not None:
+      oprot.writeFieldBegin('sharedPublic', TType.BOOL, 5)
+      oprot.writeBool(self.sharedPublic)
+      oprot.writeFieldEnd()
+    if self.userFriendlyName is not None:
+      oprot.writeFieldBegin('userFriendlyName', TType.STRING, 6)
+      oprot.writeString(self.userFriendlyName)
+      oprot.writeFieldEnd()
+    if self.userFriendlyDescription is not None:
+      oprot.writeFieldBegin('userFriendlyDescription', TType.STRING, 7)
+      oprot.writeString(self.userFriendlyDescription)
+      oprot.writeFieldEnd()
+    if self.metadataType is not None:
+      oprot.writeFieldBegin('metadataType', TType.I32, 8)
+      oprot.writeI32(self.metadataType)
+      oprot.writeFieldEnd()
+    if self.associatedEntityId is not None:
+      oprot.writeFieldBegin('associatedEntityId', TType.STRING, 9)
+      oprot.writeString(self.associatedEntityId)
+      oprot.writeFieldEnd()
+    if self.customInformation is not None:
+      oprot.writeFieldBegin('customInformation', TType.MAP, 10)
+      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.customInformation))
+      for kiter14,viter15 in self.customInformation.items():
+        oprot.writeString(kiter14)
+        oprot.writeString(viter15)
+      oprot.writeMapEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.metadataId)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.username)
+    value = (value * 31) ^ hash(self.sharedUsers)
+    value = (value * 31) ^ hash(self.sharedPublic)
+    value = (value * 31) ^ hash(self.userFriendlyName)
+    value = (value * 31) ^ hash(self.userFriendlyDescription)
+    value = (value * 31) ^ hash(self.metadataType)
+    value = (value * 31) ^ hash(self.associatedEntityId)
+    value = (value * 31) ^ hash(self.customInformation)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata/blob/a14d717f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+from ttypes import *
+


[10/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileReplicaModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileReplicaModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileReplicaModel.java
deleted file mode 100644
index 90b82e1..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/FileReplicaModel.java
+++ /dev/null
@@ -1,1272 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.replica;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-23")
-public class FileReplicaModel implements org.apache.thrift.TBase<FileReplicaModel, FileReplicaModel._Fields>, java.io.Serializable, Cloneable, Comparable<FileReplicaModel> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("FileReplicaModel");
-
-  private static final org.apache.thrift.protocol.TField REPLICA_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaName", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField REPLICA_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaDescription", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField STORAGE_HOSTNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("storageHostname", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField FILE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("filePath", org.apache.thrift.protocol.TType.STRING, (short)5);
-  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)6);
-  private static final org.apache.thrift.protocol.TField VALID_UNTIL_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("validUntilTime", org.apache.thrift.protocol.TType.I64, (short)7);
-  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceType", org.apache.thrift.protocol.TType.I32, (short)8);
-  private static final org.apache.thrift.protocol.TField REPLICA_PERSISTENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaPersistentType", org.apache.thrift.protocol.TType.I32, (short)9);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new FileReplicaModelStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new FileReplicaModelTupleSchemeFactory());
-  }
-
-  private String replicaName; // optional
-  private String replicaDescription; // optional
-  private String storageHostname; // optional
-  private String storageResourceId; // optional
-  private String filePath; // optional
-  private long creationTime; // optional
-  private long validUntilTime; // optional
-  private StorageResourceType storageResourceType; // optional
-  private ReplicaPersistentType replicaPersistentType; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    REPLICA_NAME((short)1, "replicaName"),
-    REPLICA_DESCRIPTION((short)2, "replicaDescription"),
-    STORAGE_HOSTNAME((short)3, "storageHostname"),
-    STORAGE_RESOURCE_ID((short)4, "storageResourceId"),
-    FILE_PATH((short)5, "filePath"),
-    CREATION_TIME((short)6, "creationTime"),
-    VALID_UNTIL_TIME((short)7, "validUntilTime"),
-    /**
-     * 
-     * @see StorageResourceType
-     */
-    STORAGE_RESOURCE_TYPE((short)8, "storageResourceType"),
-    /**
-     * 
-     * @see ReplicaPersistentType
-     */
-    REPLICA_PERSISTENT_TYPE((short)9, "replicaPersistentType");
-
-    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: // REPLICA_NAME
-          return REPLICA_NAME;
-        case 2: // REPLICA_DESCRIPTION
-          return REPLICA_DESCRIPTION;
-        case 3: // STORAGE_HOSTNAME
-          return STORAGE_HOSTNAME;
-        case 4: // STORAGE_RESOURCE_ID
-          return STORAGE_RESOURCE_ID;
-        case 5: // FILE_PATH
-          return FILE_PATH;
-        case 6: // CREATION_TIME
-          return CREATION_TIME;
-        case 7: // VALID_UNTIL_TIME
-          return VALID_UNTIL_TIME;
-        case 8: // STORAGE_RESOURCE_TYPE
-          return STORAGE_RESOURCE_TYPE;
-        case 9: // REPLICA_PERSISTENT_TYPE
-          return REPLICA_PERSISTENT_TYPE;
-        default:
-          return null;
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, throwing an exception
-     * if it is not found.
-     */
-    public static _Fields findByThriftIdOrThrow(int fieldId) {
-      _Fields fields = findByThriftId(fieldId);
-      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
-      return fields;
-    }
-
-    /**
-     * Find the _Fields constant that matches name, or null if its not found.
-     */
-    public static _Fields findByName(String name) {
-      return byName.get(name);
-    }
-
-    private final short _thriftId;
-    private final String _fieldName;
-
-    _Fields(short thriftId, String fieldName) {
-      _thriftId = thriftId;
-      _fieldName = fieldName;
-    }
-
-    public short getThriftFieldId() {
-      return _thriftId;
-    }
-
-    public String getFieldName() {
-      return _fieldName;
-    }
-  }
-
-  // isset id assignments
-  private static final int __CREATIONTIME_ISSET_ID = 0;
-  private static final int __VALIDUNTILTIME_ISSET_ID = 1;
-  private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.REPLICA_NAME,_Fields.REPLICA_DESCRIPTION,_Fields.STORAGE_HOSTNAME,_Fields.STORAGE_RESOURCE_ID,_Fields.FILE_PATH,_Fields.CREATION_TIME,_Fields.VALID_UNTIL_TIME,_Fields.STORAGE_RESOURCE_TYPE,_Fields.REPLICA_PERSISTENT_TYPE};
-  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.REPLICA_NAME, new org.apache.thrift.meta_data.FieldMetaData("replicaName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.REPLICA_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("replicaDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.STORAGE_HOSTNAME, new org.apache.thrift.meta_data.FieldMetaData("storageHostname", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.FILE_PATH, new org.apache.thrift.meta_data.FieldMetaData("filePath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        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.VALID_UNTIL_TIME, new org.apache.thrift.meta_data.FieldMetaData("validUntilTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.STORAGE_RESOURCE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("storageResourceType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, StorageResourceType.class)));
-    tmpMap.put(_Fields.REPLICA_PERSISTENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("replicaPersistentType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ReplicaPersistentType.class)));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(FileReplicaModel.class, metaDataMap);
-  }
-
-  public FileReplicaModel() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public FileReplicaModel(FileReplicaModel other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetReplicaName()) {
-      this.replicaName = other.replicaName;
-    }
-    if (other.isSetReplicaDescription()) {
-      this.replicaDescription = other.replicaDescription;
-    }
-    if (other.isSetStorageHostname()) {
-      this.storageHostname = other.storageHostname;
-    }
-    if (other.isSetStorageResourceId()) {
-      this.storageResourceId = other.storageResourceId;
-    }
-    if (other.isSetFilePath()) {
-      this.filePath = other.filePath;
-    }
-    this.creationTime = other.creationTime;
-    this.validUntilTime = other.validUntilTime;
-    if (other.isSetStorageResourceType()) {
-      this.storageResourceType = other.storageResourceType;
-    }
-    if (other.isSetReplicaPersistentType()) {
-      this.replicaPersistentType = other.replicaPersistentType;
-    }
-  }
-
-  public FileReplicaModel deepCopy() {
-    return new FileReplicaModel(this);
-  }
-
-  @Override
-  public void clear() {
-    this.replicaName = null;
-    this.replicaDescription = null;
-    this.storageHostname = null;
-    this.storageResourceId = null;
-    this.filePath = null;
-    setCreationTimeIsSet(false);
-    this.creationTime = 0;
-    setValidUntilTimeIsSet(false);
-    this.validUntilTime = 0;
-    this.storageResourceType = null;
-    this.replicaPersistentType = null;
-  }
-
-  public String getReplicaName() {
-    return this.replicaName;
-  }
-
-  public void setReplicaName(String replicaName) {
-    this.replicaName = replicaName;
-  }
-
-  public void unsetReplicaName() {
-    this.replicaName = null;
-  }
-
-  /** Returns true if field replicaName is set (has been assigned a value) and false otherwise */
-  public boolean isSetReplicaName() {
-    return this.replicaName != null;
-  }
-
-  public void setReplicaNameIsSet(boolean value) {
-    if (!value) {
-      this.replicaName = null;
-    }
-  }
-
-  public String getReplicaDescription() {
-    return this.replicaDescription;
-  }
-
-  public void setReplicaDescription(String replicaDescription) {
-    this.replicaDescription = replicaDescription;
-  }
-
-  public void unsetReplicaDescription() {
-    this.replicaDescription = null;
-  }
-
-  /** Returns true if field replicaDescription is set (has been assigned a value) and false otherwise */
-  public boolean isSetReplicaDescription() {
-    return this.replicaDescription != null;
-  }
-
-  public void setReplicaDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.replicaDescription = null;
-    }
-  }
-
-  public String getStorageHostname() {
-    return this.storageHostname;
-  }
-
-  public void setStorageHostname(String storageHostname) {
-    this.storageHostname = storageHostname;
-  }
-
-  public void unsetStorageHostname() {
-    this.storageHostname = null;
-  }
-
-  /** Returns true if field storageHostname is set (has been assigned a value) and false otherwise */
-  public boolean isSetStorageHostname() {
-    return this.storageHostname != null;
-  }
-
-  public void setStorageHostnameIsSet(boolean value) {
-    if (!value) {
-      this.storageHostname = null;
-    }
-  }
-
-  public String getStorageResourceId() {
-    return this.storageResourceId;
-  }
-
-  public void setStorageResourceId(String storageResourceId) {
-    this.storageResourceId = storageResourceId;
-  }
-
-  public void unsetStorageResourceId() {
-    this.storageResourceId = null;
-  }
-
-  /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
-  public boolean isSetStorageResourceId() {
-    return this.storageResourceId != null;
-  }
-
-  public void setStorageResourceIdIsSet(boolean value) {
-    if (!value) {
-      this.storageResourceId = null;
-    }
-  }
-
-  public String getFilePath() {
-    return this.filePath;
-  }
-
-  public void setFilePath(String filePath) {
-    this.filePath = filePath;
-  }
-
-  public void unsetFilePath() {
-    this.filePath = null;
-  }
-
-  /** Returns true if field filePath is set (has been assigned a value) and false otherwise */
-  public boolean isSetFilePath() {
-    return this.filePath != null;
-  }
-
-  public void setFilePathIsSet(boolean value) {
-    if (!value) {
-      this.filePath = 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 long getValidUntilTime() {
-    return this.validUntilTime;
-  }
-
-  public void setValidUntilTime(long validUntilTime) {
-    this.validUntilTime = validUntilTime;
-    setValidUntilTimeIsSet(true);
-  }
-
-  public void unsetValidUntilTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID);
-  }
-
-  /** Returns true if field validUntilTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetValidUntilTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID);
-  }
-
-  public void setValidUntilTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID, value);
-  }
-
-  /**
-   * 
-   * @see StorageResourceType
-   */
-  public StorageResourceType getStorageResourceType() {
-    return this.storageResourceType;
-  }
-
-  /**
-   * 
-   * @see StorageResourceType
-   */
-  public void setStorageResourceType(StorageResourceType storageResourceType) {
-    this.storageResourceType = storageResourceType;
-  }
-
-  public void unsetStorageResourceType() {
-    this.storageResourceType = null;
-  }
-
-  /** Returns true if field storageResourceType is set (has been assigned a value) and false otherwise */
-  public boolean isSetStorageResourceType() {
-    return this.storageResourceType != null;
-  }
-
-  public void setStorageResourceTypeIsSet(boolean value) {
-    if (!value) {
-      this.storageResourceType = null;
-    }
-  }
-
-  /**
-   * 
-   * @see ReplicaPersistentType
-   */
-  public ReplicaPersistentType getReplicaPersistentType() {
-    return this.replicaPersistentType;
-  }
-
-  /**
-   * 
-   * @see ReplicaPersistentType
-   */
-  public void setReplicaPersistentType(ReplicaPersistentType replicaPersistentType) {
-    this.replicaPersistentType = replicaPersistentType;
-  }
-
-  public void unsetReplicaPersistentType() {
-    this.replicaPersistentType = null;
-  }
-
-  /** Returns true if field replicaPersistentType is set (has been assigned a value) and false otherwise */
-  public boolean isSetReplicaPersistentType() {
-    return this.replicaPersistentType != null;
-  }
-
-  public void setReplicaPersistentTypeIsSet(boolean value) {
-    if (!value) {
-      this.replicaPersistentType = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case REPLICA_NAME:
-      if (value == null) {
-        unsetReplicaName();
-      } else {
-        setReplicaName((String)value);
-      }
-      break;
-
-    case REPLICA_DESCRIPTION:
-      if (value == null) {
-        unsetReplicaDescription();
-      } else {
-        setReplicaDescription((String)value);
-      }
-      break;
-
-    case STORAGE_HOSTNAME:
-      if (value == null) {
-        unsetStorageHostname();
-      } else {
-        setStorageHostname((String)value);
-      }
-      break;
-
-    case STORAGE_RESOURCE_ID:
-      if (value == null) {
-        unsetStorageResourceId();
-      } else {
-        setStorageResourceId((String)value);
-      }
-      break;
-
-    case FILE_PATH:
-      if (value == null) {
-        unsetFilePath();
-      } else {
-        setFilePath((String)value);
-      }
-      break;
-
-    case CREATION_TIME:
-      if (value == null) {
-        unsetCreationTime();
-      } else {
-        setCreationTime((Long)value);
-      }
-      break;
-
-    case VALID_UNTIL_TIME:
-      if (value == null) {
-        unsetValidUntilTime();
-      } else {
-        setValidUntilTime((Long)value);
-      }
-      break;
-
-    case STORAGE_RESOURCE_TYPE:
-      if (value == null) {
-        unsetStorageResourceType();
-      } else {
-        setStorageResourceType((StorageResourceType)value);
-      }
-      break;
-
-    case REPLICA_PERSISTENT_TYPE:
-      if (value == null) {
-        unsetReplicaPersistentType();
-      } else {
-        setReplicaPersistentType((ReplicaPersistentType)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case REPLICA_NAME:
-      return getReplicaName();
-
-    case REPLICA_DESCRIPTION:
-      return getReplicaDescription();
-
-    case STORAGE_HOSTNAME:
-      return getStorageHostname();
-
-    case STORAGE_RESOURCE_ID:
-      return getStorageResourceId();
-
-    case FILE_PATH:
-      return getFilePath();
-
-    case CREATION_TIME:
-      return getCreationTime();
-
-    case VALID_UNTIL_TIME:
-      return getValidUntilTime();
-
-    case STORAGE_RESOURCE_TYPE:
-      return getStorageResourceType();
-
-    case REPLICA_PERSISTENT_TYPE:
-      return getReplicaPersistentType();
-
-    }
-    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 REPLICA_NAME:
-      return isSetReplicaName();
-    case REPLICA_DESCRIPTION:
-      return isSetReplicaDescription();
-    case STORAGE_HOSTNAME:
-      return isSetStorageHostname();
-    case STORAGE_RESOURCE_ID:
-      return isSetStorageResourceId();
-    case FILE_PATH:
-      return isSetFilePath();
-    case CREATION_TIME:
-      return isSetCreationTime();
-    case VALID_UNTIL_TIME:
-      return isSetValidUntilTime();
-    case STORAGE_RESOURCE_TYPE:
-      return isSetStorageResourceType();
-    case REPLICA_PERSISTENT_TYPE:
-      return isSetReplicaPersistentType();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof FileReplicaModel)
-      return this.equals((FileReplicaModel)that);
-    return false;
-  }
-
-  public boolean equals(FileReplicaModel that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_replicaName = true && this.isSetReplicaName();
-    boolean that_present_replicaName = true && that.isSetReplicaName();
-    if (this_present_replicaName || that_present_replicaName) {
-      if (!(this_present_replicaName && that_present_replicaName))
-        return false;
-      if (!this.replicaName.equals(that.replicaName))
-        return false;
-    }
-
-    boolean this_present_replicaDescription = true && this.isSetReplicaDescription();
-    boolean that_present_replicaDescription = true && that.isSetReplicaDescription();
-    if (this_present_replicaDescription || that_present_replicaDescription) {
-      if (!(this_present_replicaDescription && that_present_replicaDescription))
-        return false;
-      if (!this.replicaDescription.equals(that.replicaDescription))
-        return false;
-    }
-
-    boolean this_present_storageHostname = true && this.isSetStorageHostname();
-    boolean that_present_storageHostname = true && that.isSetStorageHostname();
-    if (this_present_storageHostname || that_present_storageHostname) {
-      if (!(this_present_storageHostname && that_present_storageHostname))
-        return false;
-      if (!this.storageHostname.equals(that.storageHostname))
-        return false;
-    }
-
-    boolean this_present_storageResourceId = true && this.isSetStorageResourceId();
-    boolean that_present_storageResourceId = true && that.isSetStorageResourceId();
-    if (this_present_storageResourceId || that_present_storageResourceId) {
-      if (!(this_present_storageResourceId && that_present_storageResourceId))
-        return false;
-      if (!this.storageResourceId.equals(that.storageResourceId))
-        return false;
-    }
-
-    boolean this_present_filePath = true && this.isSetFilePath();
-    boolean that_present_filePath = true && that.isSetFilePath();
-    if (this_present_filePath || that_present_filePath) {
-      if (!(this_present_filePath && that_present_filePath))
-        return false;
-      if (!this.filePath.equals(that.filePath))
-        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_validUntilTime = true && this.isSetValidUntilTime();
-    boolean that_present_validUntilTime = true && that.isSetValidUntilTime();
-    if (this_present_validUntilTime || that_present_validUntilTime) {
-      if (!(this_present_validUntilTime && that_present_validUntilTime))
-        return false;
-      if (this.validUntilTime != that.validUntilTime)
-        return false;
-    }
-
-    boolean this_present_storageResourceType = true && this.isSetStorageResourceType();
-    boolean that_present_storageResourceType = true && that.isSetStorageResourceType();
-    if (this_present_storageResourceType || that_present_storageResourceType) {
-      if (!(this_present_storageResourceType && that_present_storageResourceType))
-        return false;
-      if (!this.storageResourceType.equals(that.storageResourceType))
-        return false;
-    }
-
-    boolean this_present_replicaPersistentType = true && this.isSetReplicaPersistentType();
-    boolean that_present_replicaPersistentType = true && that.isSetReplicaPersistentType();
-    if (this_present_replicaPersistentType || that_present_replicaPersistentType) {
-      if (!(this_present_replicaPersistentType && that_present_replicaPersistentType))
-        return false;
-      if (!this.replicaPersistentType.equals(that.replicaPersistentType))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    List<Object> list = new ArrayList<Object>();
-
-    boolean present_replicaName = true && (isSetReplicaName());
-    list.add(present_replicaName);
-    if (present_replicaName)
-      list.add(replicaName);
-
-    boolean present_replicaDescription = true && (isSetReplicaDescription());
-    list.add(present_replicaDescription);
-    if (present_replicaDescription)
-      list.add(replicaDescription);
-
-    boolean present_storageHostname = true && (isSetStorageHostname());
-    list.add(present_storageHostname);
-    if (present_storageHostname)
-      list.add(storageHostname);
-
-    boolean present_storageResourceId = true && (isSetStorageResourceId());
-    list.add(present_storageResourceId);
-    if (present_storageResourceId)
-      list.add(storageResourceId);
-
-    boolean present_filePath = true && (isSetFilePath());
-    list.add(present_filePath);
-    if (present_filePath)
-      list.add(filePath);
-
-    boolean present_creationTime = true && (isSetCreationTime());
-    list.add(present_creationTime);
-    if (present_creationTime)
-      list.add(creationTime);
-
-    boolean present_validUntilTime = true && (isSetValidUntilTime());
-    list.add(present_validUntilTime);
-    if (present_validUntilTime)
-      list.add(validUntilTime);
-
-    boolean present_storageResourceType = true && (isSetStorageResourceType());
-    list.add(present_storageResourceType);
-    if (present_storageResourceType)
-      list.add(storageResourceType.getValue());
-
-    boolean present_replicaPersistentType = true && (isSetReplicaPersistentType());
-    list.add(present_replicaPersistentType);
-    if (present_replicaPersistentType)
-      list.add(replicaPersistentType.getValue());
-
-    return list.hashCode();
-  }
-
-  @Override
-  public int compareTo(FileReplicaModel other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetReplicaName()).compareTo(other.isSetReplicaName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReplicaName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaName, other.replicaName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetReplicaDescription()).compareTo(other.isSetReplicaDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReplicaDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaDescription, other.replicaDescription);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetStorageHostname()).compareTo(other.isSetStorageHostname());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetStorageHostname()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageHostname, other.storageHostname);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetStorageResourceId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetFilePath()).compareTo(other.isSetFilePath());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFilePath()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filePath, other.filePath);
-      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(isSetValidUntilTime()).compareTo(other.isSetValidUntilTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetValidUntilTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validUntilTime, other.validUntilTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetStorageResourceType()).compareTo(other.isSetStorageResourceType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetStorageResourceType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceType, other.storageResourceType);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetReplicaPersistentType()).compareTo(other.isSetReplicaPersistentType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReplicaPersistentType()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaPersistentType, other.replicaPersistentType);
-      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("FileReplicaModel(");
-    boolean first = true;
-
-    if (isSetReplicaName()) {
-      sb.append("replicaName:");
-      if (this.replicaName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.replicaName);
-      }
-      first = false;
-    }
-    if (isSetReplicaDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("replicaDescription:");
-      if (this.replicaDescription == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.replicaDescription);
-      }
-      first = false;
-    }
-    if (isSetStorageHostname()) {
-      if (!first) sb.append(", ");
-      sb.append("storageHostname:");
-      if (this.storageHostname == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.storageHostname);
-      }
-      first = false;
-    }
-    if (isSetStorageResourceId()) {
-      if (!first) sb.append(", ");
-      sb.append("storageResourceId:");
-      if (this.storageResourceId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.storageResourceId);
-      }
-      first = false;
-    }
-    if (isSetFilePath()) {
-      if (!first) sb.append(", ");
-      sb.append("filePath:");
-      if (this.filePath == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.filePath);
-      }
-      first = false;
-    }
-    if (isSetCreationTime()) {
-      if (!first) sb.append(", ");
-      sb.append("creationTime:");
-      sb.append(this.creationTime);
-      first = false;
-    }
-    if (isSetValidUntilTime()) {
-      if (!first) sb.append(", ");
-      sb.append("validUntilTime:");
-      sb.append(this.validUntilTime);
-      first = false;
-    }
-    if (isSetStorageResourceType()) {
-      if (!first) sb.append(", ");
-      sb.append("storageResourceType:");
-      if (this.storageResourceType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.storageResourceType);
-      }
-      first = false;
-    }
-    if (isSetReplicaPersistentType()) {
-      if (!first) sb.append(", ");
-      sb.append("replicaPersistentType:");
-      if (this.replicaPersistentType == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.replicaPersistentType);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // 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 FileReplicaModelStandardSchemeFactory implements SchemeFactory {
-    public FileReplicaModelStandardScheme getScheme() {
-      return new FileReplicaModelStandardScheme();
-    }
-  }
-
-  private static class FileReplicaModelStandardScheme extends StandardScheme<FileReplicaModel> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, FileReplicaModel 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: // REPLICA_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.replicaName = iprot.readString();
-              struct.setReplicaNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // REPLICA_DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.replicaDescription = iprot.readString();
-              struct.setReplicaDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // STORAGE_HOSTNAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.storageHostname = iprot.readString();
-              struct.setStorageHostnameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // STORAGE_RESOURCE_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.storageResourceId = iprot.readString();
-              struct.setStorageResourceIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // FILE_PATH
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.filePath = iprot.readString();
-              struct.setFilePathIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // 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 7: // VALID_UNTIL_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.validUntilTime = iprot.readI64();
-              struct.setValidUntilTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // STORAGE_RESOURCE_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.storageResourceType = org.apache.airavata.model.file.replica.StorageResourceType.findByValue(iprot.readI32());
-              struct.setStorageResourceTypeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 9: // REPLICA_PERSISTENT_TYPE
-            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.replicaPersistentType = org.apache.airavata.model.file.replica.ReplicaPersistentType.findByValue(iprot.readI32());
-              struct.setReplicaPersistentTypeIsSet(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, FileReplicaModel struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.replicaName != null) {
-        if (struct.isSetReplicaName()) {
-          oprot.writeFieldBegin(REPLICA_NAME_FIELD_DESC);
-          oprot.writeString(struct.replicaName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.replicaDescription != null) {
-        if (struct.isSetReplicaDescription()) {
-          oprot.writeFieldBegin(REPLICA_DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.replicaDescription);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.storageHostname != null) {
-        if (struct.isSetStorageHostname()) {
-          oprot.writeFieldBegin(STORAGE_HOSTNAME_FIELD_DESC);
-          oprot.writeString(struct.storageHostname);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.storageResourceId != null) {
-        if (struct.isSetStorageResourceId()) {
-          oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
-          oprot.writeString(struct.storageResourceId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.filePath != null) {
-        if (struct.isSetFilePath()) {
-          oprot.writeFieldBegin(FILE_PATH_FIELD_DESC);
-          oprot.writeString(struct.filePath);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetCreationTime()) {
-        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
-        oprot.writeI64(struct.creationTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetValidUntilTime()) {
-        oprot.writeFieldBegin(VALID_UNTIL_TIME_FIELD_DESC);
-        oprot.writeI64(struct.validUntilTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.storageResourceType != null) {
-        if (struct.isSetStorageResourceType()) {
-          oprot.writeFieldBegin(STORAGE_RESOURCE_TYPE_FIELD_DESC);
-          oprot.writeI32(struct.storageResourceType.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.replicaPersistentType != null) {
-        if (struct.isSetReplicaPersistentType()) {
-          oprot.writeFieldBegin(REPLICA_PERSISTENT_TYPE_FIELD_DESC);
-          oprot.writeI32(struct.replicaPersistentType.getValue());
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class FileReplicaModelTupleSchemeFactory implements SchemeFactory {
-    public FileReplicaModelTupleScheme getScheme() {
-      return new FileReplicaModelTupleScheme();
-    }
-  }
-
-  private static class FileReplicaModelTupleScheme extends TupleScheme<FileReplicaModel> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, FileReplicaModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      BitSet optionals = new BitSet();
-      if (struct.isSetReplicaName()) {
-        optionals.set(0);
-      }
-      if (struct.isSetReplicaDescription()) {
-        optionals.set(1);
-      }
-      if (struct.isSetStorageHostname()) {
-        optionals.set(2);
-      }
-      if (struct.isSetStorageResourceId()) {
-        optionals.set(3);
-      }
-      if (struct.isSetFilePath()) {
-        optionals.set(4);
-      }
-      if (struct.isSetCreationTime()) {
-        optionals.set(5);
-      }
-      if (struct.isSetValidUntilTime()) {
-        optionals.set(6);
-      }
-      if (struct.isSetStorageResourceType()) {
-        optionals.set(7);
-      }
-      if (struct.isSetReplicaPersistentType()) {
-        optionals.set(8);
-      }
-      oprot.writeBitSet(optionals, 9);
-      if (struct.isSetReplicaName()) {
-        oprot.writeString(struct.replicaName);
-      }
-      if (struct.isSetReplicaDescription()) {
-        oprot.writeString(struct.replicaDescription);
-      }
-      if (struct.isSetStorageHostname()) {
-        oprot.writeString(struct.storageHostname);
-      }
-      if (struct.isSetStorageResourceId()) {
-        oprot.writeString(struct.storageResourceId);
-      }
-      if (struct.isSetFilePath()) {
-        oprot.writeString(struct.filePath);
-      }
-      if (struct.isSetCreationTime()) {
-        oprot.writeI64(struct.creationTime);
-      }
-      if (struct.isSetValidUntilTime()) {
-        oprot.writeI64(struct.validUntilTime);
-      }
-      if (struct.isSetStorageResourceType()) {
-        oprot.writeI32(struct.storageResourceType.getValue());
-      }
-      if (struct.isSetReplicaPersistentType()) {
-        oprot.writeI32(struct.replicaPersistentType.getValue());
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, FileReplicaModel struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(9);
-      if (incoming.get(0)) {
-        struct.replicaName = iprot.readString();
-        struct.setReplicaNameIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.replicaDescription = iprot.readString();
-        struct.setReplicaDescriptionIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.storageHostname = iprot.readString();
-        struct.setStorageHostnameIsSet(true);
-      }
-      if (incoming.get(3)) {
-        struct.storageResourceId = iprot.readString();
-        struct.setStorageResourceIdIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.filePath = iprot.readString();
-        struct.setFilePathIsSet(true);
-      }
-      if (incoming.get(5)) {
-        struct.creationTime = iprot.readI64();
-        struct.setCreationTimeIsSet(true);
-      }
-      if (incoming.get(6)) {
-        struct.validUntilTime = iprot.readI64();
-        struct.setValidUntilTimeIsSet(true);
-      }
-      if (incoming.get(7)) {
-        struct.storageResourceType = org.apache.airavata.model.file.replica.StorageResourceType.findByValue(iprot.readI32());
-        struct.setStorageResourceTypeIsSet(true);
-      }
-      if (incoming.get(8)) {
-        struct.replicaPersistentType = org.apache.airavata.model.file.replica.ReplicaPersistentType.findByValue(iprot.readI32());
-        struct.setReplicaPersistentTypeIsSet(true);
-      }
-    }
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/ReplicaPersistentType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/ReplicaPersistentType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/ReplicaPersistentType.java
deleted file mode 100644
index 6a20191..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/ReplicaPersistentType.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.replica;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum ReplicaPersistentType implements org.apache.thrift.TEnum {
-  TRANSIENT(0),
-  PERSISTENT(1);
-
-  private final int value;
-
-  private ReplicaPersistentType(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 ReplicaPersistentType findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return TRANSIENT;
-      case 1:
-        return PERSISTENT;
-      default:
-        return null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/StorageResourceType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/StorageResourceType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/StorageResourceType.java
deleted file mode 100644
index f963ad7..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/replica/StorageResourceType.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.replica;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum StorageResourceType implements org.apache.thrift.TEnum {
-  GATEWAY_DATA_STORE(0),
-  BACKUP_GATEWAY_DATA_STORE(1),
-  COMPUTE_RESOURCE(2),
-  LONG_TERM_STORAGE_RESOURCE(3),
-  OTHER(4);
-
-  private final int value;
-
-  private StorageResourceType(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 StorageResourceType findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return GATEWAY_DATA_STORE;
-      case 1:
-        return BACKUP_GATEWAY_DATA_STORE;
-      case 2:
-        return COMPUTE_RESOURCE;
-      case 3:
-        return LONG_TERM_STORAGE_RESOURCE;
-      case 4:
-        return OTHER;
-      default:
-        return null;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferMode.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferMode.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferMode.java
deleted file mode 100644
index 49b8eef..0000000
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/file/transfer/FileTransferMode.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * 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.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.model.file.transfer;
-
-
-import java.util.Map;
-import java.util.HashMap;
-import org.apache.thrift.TEnum;
-
-public enum FileTransferMode implements org.apache.thrift.TEnum {
-  SYNC(0),
-  ASYNC(1);
-
-  private final int value;
-
-  private FileTransferMode(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 FileTransferMode findByValue(int value) { 
-    switch (value) {
-      case 0:
-        return SYNC;
-      case 1:
-        return ASYNC;
-      default:
-        return null;
-    }
-  }
-}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Group.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Group.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Group.java
new file mode 100644
index 0000000..11b5357
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Group.java
@@ -0,0 +1,519 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.workspace;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class Group implements org.apache.thrift.TBase<Group, Group._Fields>, java.io.Serializable, Cloneable, Comparable<Group> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Group");
+
+  private static final org.apache.thrift.protocol.TField GROUP_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("groupName", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new GroupStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GroupTupleSchemeFactory());
+  }
+
+  public String groupName; // required
+  public String description; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    GROUP_NAME((short)1, "groupName"),
+    DESCRIPTION((short)2, "description");
+
+    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: // GROUP_NAME
+          return GROUP_NAME;
+        case 2: // DESCRIPTION
+          return DESCRIPTION;
+        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 _Fields optionals[] = {_Fields.DESCRIPTION};
+  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.GROUP_NAME, new org.apache.thrift.meta_data.FieldMetaData("groupName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("description", 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(Group.class, metaDataMap);
+  }
+
+  public Group() {
+  }
+
+  public Group(
+    String groupName)
+  {
+    this();
+    this.groupName = groupName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Group(Group other) {
+    if (other.isSetGroupName()) {
+      this.groupName = other.groupName;
+    }
+    if (other.isSetDescription()) {
+      this.description = other.description;
+    }
+  }
+
+  public Group deepCopy() {
+    return new Group(this);
+  }
+
+  @Override
+  public void clear() {
+    this.groupName = null;
+    this.description = null;
+  }
+
+  public String getGroupName() {
+    return this.groupName;
+  }
+
+  public Group setGroupName(String groupName) {
+    this.groupName = groupName;
+    return this;
+  }
+
+  public void unsetGroupName() {
+    this.groupName = null;
+  }
+
+  /** Returns true if field groupName is set (has been assigned a value) and false otherwise */
+  public boolean isSetGroupName() {
+    return this.groupName != null;
+  }
+
+  public void setGroupNameIsSet(boolean value) {
+    if (!value) {
+      this.groupName = null;
+    }
+  }
+
+  public String getDescription() {
+    return this.description;
+  }
+
+  public Group setDescription(String description) {
+    this.description = description;
+    return this;
+  }
+
+  public void unsetDescription() {
+    this.description = null;
+  }
+
+  /** Returns true if field description is set (has been assigned a value) and false otherwise */
+  public boolean isSetDescription() {
+    return this.description != null;
+  }
+
+  public void setDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.description = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case GROUP_NAME:
+      if (value == null) {
+        unsetGroupName();
+      } else {
+        setGroupName((String)value);
+      }
+      break;
+
+    case DESCRIPTION:
+      if (value == null) {
+        unsetDescription();
+      } else {
+        setDescription((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case GROUP_NAME:
+      return getGroupName();
+
+    case DESCRIPTION:
+      return getDescription();
+
+    }
+    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 GROUP_NAME:
+      return isSetGroupName();
+    case DESCRIPTION:
+      return isSetDescription();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Group)
+      return this.equals((Group)that);
+    return false;
+  }
+
+  public boolean equals(Group that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_groupName = true && this.isSetGroupName();
+    boolean that_present_groupName = true && that.isSetGroupName();
+    if (this_present_groupName || that_present_groupName) {
+      if (!(this_present_groupName && that_present_groupName))
+        return false;
+      if (!this.groupName.equals(that.groupName))
+        return false;
+    }
+
+    boolean this_present_description = true && this.isSetDescription();
+    boolean that_present_description = true && that.isSetDescription();
+    if (this_present_description || that_present_description) {
+      if (!(this_present_description && that_present_description))
+        return false;
+      if (!this.description.equals(that.description))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_groupName = true && (isSetGroupName());
+    list.add(present_groupName);
+    if (present_groupName)
+      list.add(groupName);
+
+    boolean present_description = true && (isSetDescription());
+    list.add(present_description);
+    if (present_description)
+      list.add(description);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(Group other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetGroupName()).compareTo(other.isSetGroupName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGroupName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupName, other.groupName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDescription()).compareTo(other.isSetDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.description, other.description);
+      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("Group(");
+    boolean first = true;
+
+    sb.append("groupName:");
+    if (this.groupName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.groupName);
+    }
+    first = false;
+    if (isSetDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("description:");
+      if (this.description == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.description);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (groupName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupName' was not present! 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 GroupStandardSchemeFactory implements SchemeFactory {
+    public GroupStandardScheme getScheme() {
+      return new GroupStandardScheme();
+    }
+  }
+
+  private static class GroupStandardScheme extends StandardScheme<Group> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Group 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: // GROUP_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.groupName = iprot.readString();
+              struct.setGroupNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.description = iprot.readString();
+              struct.setDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, Group struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.groupName != null) {
+        oprot.writeFieldBegin(GROUP_NAME_FIELD_DESC);
+        oprot.writeString(struct.groupName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.description != null) {
+        if (struct.isSetDescription()) {
+          oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.description);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GroupTupleSchemeFactory implements SchemeFactory {
+    public GroupTupleScheme getScheme() {
+      return new GroupTupleScheme();
+    }
+  }
+
+  private static class GroupTupleScheme extends TupleScheme<Group> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Group struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.groupName);
+      BitSet optionals = new BitSet();
+      if (struct.isSetDescription()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetDescription()) {
+        oprot.writeString(struct.description);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Group struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.groupName = iprot.readString();
+      struct.setGroupNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.description = iprot.readString();
+        struct.setDescriptionIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Project.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Project.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Project.java
new file mode 100644
index 0000000..5afd99e
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/Project.java
@@ -0,0 +1,1140 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.workspace;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class Project implements org.apache.thrift.TBase<Project, Project._Fields>, java.io.Serializable, Cloneable, Comparable<Project> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Project");
+
+  private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectID", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField OWNER_FIELD_DESC = new org.apache.thrift.protocol.TField("owner", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)4);
+  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)5);
+  private static final org.apache.thrift.protocol.TField SHARED_USERS_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedUsers", org.apache.thrift.protocol.TType.LIST, (short)6);
+  private static final org.apache.thrift.protocol.TField SHARED_GROUPS_FIELD_DESC = new org.apache.thrift.protocol.TField("sharedGroups", org.apache.thrift.protocol.TType.LIST, (short)7);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ProjectStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ProjectTupleSchemeFactory());
+  }
+
+  public String projectID; // required
+  public String owner; // required
+  public String name; // required
+  public String description; // optional
+  public long creationTime; // optional
+  public List<String> sharedUsers; // optional
+  public List<String> sharedGroups; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    PROJECT_ID((short)1, "projectID"),
+    OWNER((short)2, "owner"),
+    NAME((short)3, "name"),
+    DESCRIPTION((short)4, "description"),
+    CREATION_TIME((short)5, "creationTime"),
+    SHARED_USERS((short)6, "sharedUsers"),
+    SHARED_GROUPS((short)7, "sharedGroups");
+
+    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: // PROJECT_ID
+          return PROJECT_ID;
+        case 2: // OWNER
+          return OWNER;
+        case 3: // NAME
+          return NAME;
+        case 4: // DESCRIPTION
+          return DESCRIPTION;
+        case 5: // CREATION_TIME
+          return CREATION_TIME;
+        case 6: // SHARED_USERS
+          return SHARED_USERS;
+        case 7: // SHARED_GROUPS
+          return SHARED_GROUPS;
+        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 static final _Fields optionals[] = {_Fields.DESCRIPTION,_Fields.CREATION_TIME,_Fields.SHARED_USERS,_Fields.SHARED_GROUPS};
+  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.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OWNER, new org.apache.thrift.meta_data.FieldMetaData("owner", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("description", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        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.SHARED_USERS, new org.apache.thrift.meta_data.FieldMetaData("sharedUsers", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.SHARED_GROUPS, new org.apache.thrift.meta_data.FieldMetaData("sharedGroups", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Project.class, metaDataMap);
+  }
+
+  public Project() {
+    this.projectID = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public Project(
+    String projectID,
+    String owner,
+    String name)
+  {
+    this();
+    this.projectID = projectID;
+    this.owner = owner;
+    this.name = name;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Project(Project other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetProjectID()) {
+      this.projectID = other.projectID;
+    }
+    if (other.isSetOwner()) {
+      this.owner = other.owner;
+    }
+    if (other.isSetName()) {
+      this.name = other.name;
+    }
+    if (other.isSetDescription()) {
+      this.description = other.description;
+    }
+    this.creationTime = other.creationTime;
+    if (other.isSetSharedUsers()) {
+      List<String> __this__sharedUsers = new ArrayList<String>(other.sharedUsers);
+      this.sharedUsers = __this__sharedUsers;
+    }
+    if (other.isSetSharedGroups()) {
+      List<String> __this__sharedGroups = new ArrayList<String>(other.sharedGroups);
+      this.sharedGroups = __this__sharedGroups;
+    }
+  }
+
+  public Project deepCopy() {
+    return new Project(this);
+  }
+
+  @Override
+  public void clear() {
+    this.projectID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.owner = null;
+    this.name = null;
+    this.description = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    this.sharedUsers = null;
+    this.sharedGroups = null;
+  }
+
+  public String getProjectID() {
+    return this.projectID;
+  }
+
+  public Project setProjectID(String projectID) {
+    this.projectID = projectID;
+    return this;
+  }
+
+  public void unsetProjectID() {
+    this.projectID = null;
+  }
+
+  /** Returns true if field projectID is set (has been assigned a value) and false otherwise */
+  public boolean isSetProjectID() {
+    return this.projectID != null;
+  }
+
+  public void setProjectIDIsSet(boolean value) {
+    if (!value) {
+      this.projectID = null;
+    }
+  }
+
+  public String getOwner() {
+    return this.owner;
+  }
+
+  public Project setOwner(String owner) {
+    this.owner = owner;
+    return this;
+  }
+
+  public void unsetOwner() {
+    this.owner = null;
+  }
+
+  /** Returns true if field owner is set (has been assigned a value) and false otherwise */
+  public boolean isSetOwner() {
+    return this.owner != null;
+  }
+
+  public void setOwnerIsSet(boolean value) {
+    if (!value) {
+      this.owner = null;
+    }
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public Project setName(String name) {
+    this.name = name;
+    return this;
+  }
+
+  public void unsetName() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false otherwise */
+  public boolean isSetName() {
+    return this.name != null;
+  }
+
+  public void setNameIsSet(boolean value) {
+    if (!value) {
+      this.name = null;
+    }
+  }
+
+  public String getDescription() {
+    return this.description;
+  }
+
+  public Project setDescription(String description) {
+    this.description = description;
+    return this;
+  }
+
+  public void unsetDescription() {
+    this.description = null;
+  }
+
+  /** Returns true if field description is set (has been assigned a value) and false otherwise */
+  public boolean isSetDescription() {
+    return this.description != null;
+  }
+
+  public void setDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.description = null;
+    }
+  }
+
+  public long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public Project setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetCreationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  public void setCreationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
+  }
+
+  public int getSharedUsersSize() {
+    return (this.sharedUsers == null) ? 0 : this.sharedUsers.size();
+  }
+
+  public java.util.Iterator<String> getSharedUsersIterator() {
+    return (this.sharedUsers == null) ? null : this.sharedUsers.iterator();
+  }
+
+  public void addToSharedUsers(String elem) {
+    if (this.sharedUsers == null) {
+      this.sharedUsers = new ArrayList<String>();
+    }
+    this.sharedUsers.add(elem);
+  }
+
+  public List<String> getSharedUsers() {
+    return this.sharedUsers;
+  }
+
+  public Project setSharedUsers(List<String> sharedUsers) {
+    this.sharedUsers = sharedUsers;
+    return this;
+  }
+
+  public void unsetSharedUsers() {
+    this.sharedUsers = null;
+  }
+
+  /** Returns true if field sharedUsers is set (has been assigned a value) and false otherwise */
+  public boolean isSetSharedUsers() {
+    return this.sharedUsers != null;
+  }
+
+  public void setSharedUsersIsSet(boolean value) {
+    if (!value) {
+      this.sharedUsers = null;
+    }
+  }
+
+  public int getSharedGroupsSize() {
+    return (this.sharedGroups == null) ? 0 : this.sharedGroups.size();
+  }
+
+  public java.util.Iterator<String> getSharedGroupsIterator() {
+    return (this.sharedGroups == null) ? null : this.sharedGroups.iterator();
+  }
+
+  public void addToSharedGroups(String elem) {
+    if (this.sharedGroups == null) {
+      this.sharedGroups = new ArrayList<String>();
+    }
+    this.sharedGroups.add(elem);
+  }
+
+  public List<String> getSharedGroups() {
+    return this.sharedGroups;
+  }
+
+  public Project setSharedGroups(List<String> sharedGroups) {
+    this.sharedGroups = sharedGroups;
+    return this;
+  }
+
+  public void unsetSharedGroups() {
+    this.sharedGroups = null;
+  }
+
+  /** Returns true if field sharedGroups is set (has been assigned a value) and false otherwise */
+  public boolean isSetSharedGroups() {
+    return this.sharedGroups != null;
+  }
+
+  public void setSharedGroupsIsSet(boolean value) {
+    if (!value) {
+      this.sharedGroups = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case PROJECT_ID:
+      if (value == null) {
+        unsetProjectID();
+      } else {
+        setProjectID((String)value);
+      }
+      break;
+
+    case OWNER:
+      if (value == null) {
+        unsetOwner();
+      } else {
+        setOwner((String)value);
+      }
+      break;
+
+    case NAME:
+      if (value == null) {
+        unsetName();
+      } else {
+        setName((String)value);
+      }
+      break;
+
+    case DESCRIPTION:
+      if (value == null) {
+        unsetDescription();
+      } else {
+        setDescription((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case SHARED_USERS:
+      if (value == null) {
+        unsetSharedUsers();
+      } else {
+        setSharedUsers((List<String>)value);
+      }
+      break;
+
+    case SHARED_GROUPS:
+      if (value == null) {
+        unsetSharedGroups();
+      } else {
+        setSharedGroups((List<String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case PROJECT_ID:
+      return getProjectID();
+
+    case OWNER:
+      return getOwner();
+
+    case NAME:
+      return getName();
+
+    case DESCRIPTION:
+      return getDescription();
+
+    case CREATION_TIME:
+      return Long.valueOf(getCreationTime());
+
+    case SHARED_USERS:
+      return getSharedUsers();
+
+    case SHARED_GROUPS:
+      return getSharedGroups();
+
+    }
+    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 PROJECT_ID:
+      return isSetProjectID();
+    case OWNER:
+      return isSetOwner();
+    case NAME:
+      return isSetName();
+    case DESCRIPTION:
+      return isSetDescription();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case SHARED_USERS:
+      return isSetSharedUsers();
+    case SHARED_GROUPS:
+      return isSetSharedGroups();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Project)
+      return this.equals((Project)that);
+    return false;
+  }
+
+  public boolean equals(Project that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_projectID = true && this.isSetProjectID();
+    boolean that_present_projectID = true && that.isSetProjectID();
+    if (this_present_projectID || that_present_projectID) {
+      if (!(this_present_projectID && that_present_projectID))
+        return false;
+      if (!this.projectID.equals(that.projectID))
+        return false;
+    }
+
+    boolean this_present_owner = true && this.isSetOwner();
+    boolean that_present_owner = true && that.isSetOwner();
+    if (this_present_owner || that_present_owner) {
+      if (!(this_present_owner && that_present_owner))
+        return false;
+      if (!this.owner.equals(that.owner))
+        return false;
+    }
+
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
+        return false;
+      if (!this.name.equals(that.name))
+        return false;
+    }
+
+    boolean this_present_description = true && this.isSetDescription();
+    boolean that_present_description = true && that.isSetDescription();
+    if (this_present_description || that_present_description) {
+      if (!(this_present_description && that_present_description))
+        return false;
+      if (!this.description.equals(that.description))
+        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_sharedUsers = true && this.isSetSharedUsers();
+    boolean that_present_sharedUsers = true && that.isSetSharedUsers();
+    if (this_present_sharedUsers || that_present_sharedUsers) {
+      if (!(this_present_sharedUsers && that_present_sharedUsers))
+        return false;
+      if (!this.sharedUsers.equals(that.sharedUsers))
+        return false;
+    }
+
+    boolean this_present_sharedGroups = true && this.isSetSharedGroups();
+    boolean that_present_sharedGroups = true && that.isSetSharedGroups();
+    if (this_present_sharedGroups || that_present_sharedGroups) {
+      if (!(this_present_sharedGroups && that_present_sharedGroups))
+        return false;
+      if (!this.sharedGroups.equals(that.sharedGroups))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_projectID = true && (isSetProjectID());
+    list.add(present_projectID);
+    if (present_projectID)
+      list.add(projectID);
+
+    boolean present_owner = true && (isSetOwner());
+    list.add(present_owner);
+    if (present_owner)
+      list.add(owner);
+
+    boolean present_name = true && (isSetName());
+    list.add(present_name);
+    if (present_name)
+      list.add(name);
+
+    boolean present_description = true && (isSetDescription());
+    list.add(present_description);
+    if (present_description)
+      list.add(description);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_sharedUsers = true && (isSetSharedUsers());
+    list.add(present_sharedUsers);
+    if (present_sharedUsers)
+      list.add(sharedUsers);
+
+    boolean present_sharedGroups = true && (isSetSharedGroups());
+    list.add(present_sharedGroups);
+    if (present_sharedGroups)
+      list.add(sharedGroups);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(Project other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetProjectID()).compareTo(other.isSetProjectID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProjectID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.projectID, other.projectID);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOwner()).compareTo(other.isSetOwner());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOwner()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.owner, other.owner);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDescription()).compareTo(other.isSetDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.description, other.description);
+      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(isSetSharedUsers()).compareTo(other.isSetSharedUsers());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSharedUsers()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedUsers, other.sharedUsers);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetSharedGroups()).compareTo(other.isSetSharedGroups());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSharedGroups()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sharedGroups, other.sharedGroups);
+      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("Project(");
+    boolean first = true;
+
+    sb.append("projectID:");
+    if (this.projectID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.projectID);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("owner:");
+    if (this.owner == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.owner);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("name:");
+    if (this.name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.name);
+    }
+    first = false;
+    if (isSetDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("description:");
+      if (this.description == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.description);
+      }
+      first = false;
+    }
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetSharedUsers()) {
+      if (!first) sb.append(", ");
+      sb.append("sharedUsers:");
+      if (this.sharedUsers == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.sharedUsers);
+      }
+      first = false;
+    }
+    if (isSetSharedGroups()) {
+      if (!first) sb.append(", ");
+      sb.append("sharedGroups:");
+      if (this.sharedGroups == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.sharedGroups);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (projectID == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'projectID' was not present! Struct: " + toString());
+    }
+    if (owner == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'owner' was not present! Struct: " + toString());
+    }
+    if (name == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! 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 ProjectStandardSchemeFactory implements SchemeFactory {
+    public ProjectStandardScheme getScheme() {
+      return new ProjectStandardScheme();
+    }
+  }
+
+  private static class ProjectStandardScheme extends StandardScheme<Project> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Project 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: // PROJECT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.projectID = iprot.readString();
+              struct.setProjectIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // OWNER
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.owner = iprot.readString();
+              struct.setOwnerIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.description = iprot.readString();
+              struct.setDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // 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 6: // SHARED_USERS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.sharedUsers = new ArrayList<String>(_list0.size);
+                String _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = iprot.readString();
+                  struct.sharedUsers.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setSharedUsersIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // SHARED_GROUPS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.sharedGroups = new ArrayList<String>(_list3.size);
+                String _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = iprot.readString();
+                  struct.sharedGroups.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
+              struct.setSharedGroupsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, Project struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.projectID != null) {
+        oprot.writeFieldBegin(PROJECT_ID_FIELD_DESC);
+        oprot.writeString(struct.projectID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.owner != null) {
+        oprot.writeFieldBegin(OWNER_FIELD_DESC);
+        oprot.writeString(struct.owner);
+        oprot.writeFieldEnd();
+      }
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        oprot.writeFieldEnd();
+      }
+      if (struct.description != null) {
+        if (struct.isSetDescription()) {
+          oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.description);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.sharedUsers != null) {
+        if (struct.isSetSharedUsers()) {
+          oprot.writeFieldBegin(SHARED_USERS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.sharedUsers.size()));
+            for (String _iter6 : struct.sharedUsers)
+            {
+              oprot.writeString(_iter6);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.sharedGroups != null) {
+        if (struct.isSetSharedGroups()) {
+          oprot.writeFieldBegin(SHARED_GROUPS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.sharedGroups.size()));
+            for (String _iter7 : struct.sharedGroups)
+            {
+              oprot.writeString(_iter7);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ProjectTupleSchemeFactory implements SchemeFactory {
+    public ProjectTupleScheme getScheme() {
+      return new ProjectTupleScheme();
+    }
+  }
+
+  private static class ProjectTupleScheme extends TupleScheme<Project> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Project struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.projectID);
+      oprot.writeString(struct.owner);
+      oprot.writeString(struct.name);
+      BitSet optionals = new BitSet();
+      if (struct.isSetDescription()) {
+        optionals.set(0);
+      }
+      if (struct.isSetCreationTime()) {
+        optionals.set(1);
+      }
+      if (struct.isSetSharedUsers()) {
+        optionals.set(2);
+      }
+      if (struct.isSetSharedGroups()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
+      if (struct.isSetDescription()) {
+        oprot.writeString(struct.description);
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetSharedUsers()) {
+        {
+          oprot.writeI32(struct.sharedUsers.size());
+          for (String _iter8 : struct.sharedUsers)
+          {
+            oprot.writeString(_iter8);
+          }
+        }
+      }
+      if (struct.isSetSharedGroups()) {
+        {
+          oprot.writeI32(struct.sharedGroups.size());
+          for (String _iter9 : struct.sharedGroups)
+          {
+            oprot.writeString(_iter9);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Project struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.projectID = iprot.readString();
+      struct.setProjectIDIsSet(true);
+      struct.owner = iprot.readString();
+      struct.setOwnerIsSet(true);
+      struct.name = iprot.readString();
+      struct.setNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(4);
+      if (incoming.get(0)) {
+        struct.description = iprot.readString();
+        struct.setDescriptionIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.sharedUsers = new ArrayList<String>(_list10.size);
+          String _elem11;
+          for (int _i12 = 0; _i12 < _list10.size; ++_i12)
+          {
+            _elem11 = iprot.readString();
+            struct.sharedUsers.add(_elem11);
+          }
+        }
+        struct.setSharedUsersIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.sharedGroups = new ArrayList<String>(_list13.size);
+          String _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+          {
+            _elem14 = iprot.readString();
+            struct.sharedGroups.add(_elem14);
+          }
+        }
+        struct.setSharedGroupsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/User.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/User.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/User.java
new file mode 100644
index 0000000..115e2c4
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/workspace/User.java
@@ -0,0 +1,573 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.workspace;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class User implements org.apache.thrift.TBase<User, User._Fields>, java.io.Serializable, Cloneable, Comparable<User> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("User");
+
+  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField GROUP_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("groupList", org.apache.thrift.protocol.TType.LIST, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UserStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UserTupleSchemeFactory());
+  }
+
+  public String userName; // required
+  public List<Group> groupList; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    USER_NAME((short)1, "userName"),
+    GROUP_LIST((short)2, "groupList");
+
+    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: // USER_NAME
+          return USER_NAME;
+        case 2: // GROUP_LIST
+          return GROUP_LIST;
+        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 _Fields optionals[] = {_Fields.GROUP_LIST};
+  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.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GROUP_LIST, new org.apache.thrift.meta_data.FieldMetaData("groupList", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Group.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(User.class, metaDataMap);
+  }
+
+  public User() {
+  }
+
+  public User(
+    String userName)
+  {
+    this();
+    this.userName = userName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public User(User other) {
+    if (other.isSetUserName()) {
+      this.userName = other.userName;
+    }
+    if (other.isSetGroupList()) {
+      List<Group> __this__groupList = new ArrayList<Group>(other.groupList.size());
+      for (Group other_element : other.groupList) {
+        __this__groupList.add(new Group(other_element));
+      }
+      this.groupList = __this__groupList;
+    }
+  }
+
+  public User deepCopy() {
+    return new User(this);
+  }
+
+  @Override
+  public void clear() {
+    this.userName = null;
+    this.groupList = null;
+  }
+
+  public String getUserName() {
+    return this.userName;
+  }
+
+  public User setUserName(String userName) {
+    this.userName = userName;
+    return this;
+  }
+
+  public void unsetUserName() {
+    this.userName = null;
+  }
+
+  /** Returns true if field userName is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserName() {
+    return this.userName != null;
+  }
+
+  public void setUserNameIsSet(boolean value) {
+    if (!value) {
+      this.userName = null;
+    }
+  }
+
+  public int getGroupListSize() {
+    return (this.groupList == null) ? 0 : this.groupList.size();
+  }
+
+  public java.util.Iterator<Group> getGroupListIterator() {
+    return (this.groupList == null) ? null : this.groupList.iterator();
+  }
+
+  public void addToGroupList(Group elem) {
+    if (this.groupList == null) {
+      this.groupList = new ArrayList<Group>();
+    }
+    this.groupList.add(elem);
+  }
+
+  public List<Group> getGroupList() {
+    return this.groupList;
+  }
+
+  public User setGroupList(List<Group> groupList) {
+    this.groupList = groupList;
+    return this;
+  }
+
+  public void unsetGroupList() {
+    this.groupList = null;
+  }
+
+  /** Returns true if field groupList is set (has been assigned a value) and false otherwise */
+  public boolean isSetGroupList() {
+    return this.groupList != null;
+  }
+
+  public void setGroupListIsSet(boolean value) {
+    if (!value) {
+      this.groupList = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case USER_NAME:
+      if (value == null) {
+        unsetUserName();
+      } else {
+        setUserName((String)value);
+      }
+      break;
+
+    case GROUP_LIST:
+      if (value == null) {
+        unsetGroupList();
+      } else {
+        setGroupList((List<Group>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case USER_NAME:
+      return getUserName();
+
+    case GROUP_LIST:
+      return getGroupList();
+
+    }
+    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 USER_NAME:
+      return isSetUserName();
+    case GROUP_LIST:
+      return isSetGroupList();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof User)
+      return this.equals((User)that);
+    return false;
+  }
+
+  public boolean equals(User that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_userName = true && this.isSetUserName();
+    boolean that_present_userName = true && that.isSetUserName();
+    if (this_present_userName || that_present_userName) {
+      if (!(this_present_userName && that_present_userName))
+        return false;
+      if (!this.userName.equals(that.userName))
+        return false;
+    }
+
+    boolean this_present_groupList = true && this.isSetGroupList();
+    boolean that_present_groupList = true && that.isSetGroupList();
+    if (this_present_groupList || that_present_groupList) {
+      if (!(this_present_groupList && that_present_groupList))
+        return false;
+      if (!this.groupList.equals(that.groupList))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_userName = true && (isSetUserName());
+    list.add(present_userName);
+    if (present_userName)
+      list.add(userName);
+
+    boolean present_groupList = true && (isSetGroupList());
+    list.add(present_groupList);
+    if (present_groupList)
+      list.add(groupList);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(User other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGroupList()).compareTo(other.isSetGroupList());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGroupList()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.groupList, other.groupList);
+      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("User(");
+    boolean first = true;
+
+    sb.append("userName:");
+    if (this.userName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.userName);
+    }
+    first = false;
+    if (isSetGroupList()) {
+      if (!first) sb.append(", ");
+      sb.append("groupList:");
+      if (this.groupList == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.groupList);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (userName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userName' was not present! 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 UserStandardSchemeFactory implements SchemeFactory {
+    public UserStandardScheme getScheme() {
+      return new UserStandardScheme();
+    }
+  }
+
+  private static class UserStandardScheme extends StandardScheme<User> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, User 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: // USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userName = iprot.readString();
+              struct.setUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // GROUP_LIST
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list16 = iprot.readListBegin();
+                struct.groupList = new ArrayList<Group>(_list16.size);
+                Group _elem17;
+                for (int _i18 = 0; _i18 < _list16.size; ++_i18)
+                {
+                  _elem17 = new Group();
+                  _elem17.read(iprot);
+                  struct.groupList.add(_elem17);
+                }
+                iprot.readListEnd();
+              }
+              struct.setGroupListIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, User struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.userName != null) {
+        oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
+        oprot.writeString(struct.userName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.groupList != null) {
+        if (struct.isSetGroupList()) {
+          oprot.writeFieldBegin(GROUP_LIST_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.groupList.size()));
+            for (Group _iter19 : struct.groupList)
+            {
+              _iter19.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UserTupleSchemeFactory implements SchemeFactory {
+    public UserTupleScheme getScheme() {
+      return new UserTupleScheme();
+    }
+  }
+
+  private static class UserTupleScheme extends TupleScheme<User> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, User struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.userName);
+      BitSet optionals = new BitSet();
+      if (struct.isSetGroupList()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetGroupList()) {
+        {
+          oprot.writeI32(struct.groupList.size());
+          for (Group _iter20 : struct.groupList)
+          {
+            _iter20.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, User struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.userName = iprot.readString();
+      struct.setUserNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TList _list21 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.groupList = new ArrayList<Group>(_list21.size);
+          Group _elem22;
+          for (int _i23 = 0; _i23 < _list21.size; ++_i23)
+          {
+            _elem22 = new Group();
+            _elem22.read(iprot);
+            struct.groupList.add(_elem22);
+          }
+        }
+        struct.setGroupListIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_constants.cpp
new file mode 100644
index 0000000..c4fb5fd
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_constants.cpp
@@ -0,0 +1,34 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "data_resource_models_constants.h"
+
+namespace apache { namespace airavata { namespace model { namespace data { namespace resource {
+
+const data_resource_modelsConstants g_data_resource_models_constants;
+
+data_resource_modelsConstants::data_resource_modelsConstants() {
+}
+
+}}}}} // namespace
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_constants.h
new file mode 100644
index 0000000..62881c7
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/data_resource_models_constants.h
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef data_resource_models_CONSTANTS_H
+#define data_resource_models_CONSTANTS_H
+
+#include "data_resource_models_types.h"
+
+namespace apache { namespace airavata { namespace model { namespace data { namespace resource {
+
+class data_resource_modelsConstants {
+ public:
+  data_resource_modelsConstants();
+
+};
+
+extern const data_resource_modelsConstants g_data_resource_models_constants;
+
+}}}}} // namespace
+
+#endif


[27/65] [abbrv] airavata git commit: updating thrift generated files

Posted by sc...@apache.org.
updating thrift generated files


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/078f6558
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/078f6558
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/078f6558

Branch: refs/heads/data-manager
Commit: 078f65584251b59c693a36a350ff201cd630c9bd
Parents: 25da582
Author: scnakandala <su...@gmail.com>
Authored: Wed Dec 2 18:03:15 2015 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Tue Jan 12 10:56:04 2016 -0500

----------------------------------------------------------------------
 .../gatewayprofile/DataStoragePreference.java   | 728 +++++++++++++++++++
 .../gatewayprofile/GatewayResourceProfile.java  | 152 ++--
 2 files changed, 804 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/078f6558/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/DataStoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/DataStoragePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/DataStoragePreference.java
new file mode 100644
index 0000000..aea5ac2
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/DataStoragePreference.java
@@ -0,0 +1,728 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.gatewayprofile;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class DataStoragePreference implements org.apache.thrift.TBase<DataStoragePreference, DataStoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<DataStoragePreference> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataStoragePreference");
+
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMEMT_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovememtResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField LOGIN_USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("loginUserName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField FILE_SYSTEM_ROOT_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("fileSystemRootLocation", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceSpecificCredentialStoreToken", 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 DataStoragePreferenceStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new DataStoragePreferenceTupleSchemeFactory());
+  }
+
+  private String dataMovememtResourceId; // required
+  private String loginUserName; // optional
+  private String fileSystemRootLocation; // optional
+  private String resourceSpecificCredentialStoreToken; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    DATA_MOVEMEMT_RESOURCE_ID((short)1, "dataMovememtResourceId"),
+    LOGIN_USER_NAME((short)2, "loginUserName"),
+    FILE_SYSTEM_ROOT_LOCATION((short)3, "fileSystemRootLocation"),
+    RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN((short)4, "resourceSpecificCredentialStoreToken");
+
+    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: // DATA_MOVEMEMT_RESOURCE_ID
+          return DATA_MOVEMEMT_RESOURCE_ID;
+        case 2: // LOGIN_USER_NAME
+          return LOGIN_USER_NAME;
+        case 3: // FILE_SYSTEM_ROOT_LOCATION
+          return FILE_SYSTEM_ROOT_LOCATION;
+        case 4: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+          return RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN;
+        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 _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.FILE_SYSTEM_ROOT_LOCATION,_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN};
+  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.DATA_MOVEMEMT_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("dataMovememtResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.LOGIN_USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("loginUserName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_SYSTEM_ROOT_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("fileSystemRootLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("resourceSpecificCredentialStoreToken", 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(DataStoragePreference.class, metaDataMap);
+  }
+
+  public DataStoragePreference() {
+  }
+
+  public DataStoragePreference(
+    String dataMovememtResourceId)
+  {
+    this();
+    this.dataMovememtResourceId = dataMovememtResourceId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public DataStoragePreference(DataStoragePreference other) {
+    if (other.isSetDataMovememtResourceId()) {
+      this.dataMovememtResourceId = other.dataMovememtResourceId;
+    }
+    if (other.isSetLoginUserName()) {
+      this.loginUserName = other.loginUserName;
+    }
+    if (other.isSetFileSystemRootLocation()) {
+      this.fileSystemRootLocation = other.fileSystemRootLocation;
+    }
+    if (other.isSetResourceSpecificCredentialStoreToken()) {
+      this.resourceSpecificCredentialStoreToken = other.resourceSpecificCredentialStoreToken;
+    }
+  }
+
+  public DataStoragePreference deepCopy() {
+    return new DataStoragePreference(this);
+  }
+
+  @Override
+  public void clear() {
+    this.dataMovememtResourceId = null;
+    this.loginUserName = null;
+    this.fileSystemRootLocation = null;
+    this.resourceSpecificCredentialStoreToken = null;
+  }
+
+  public String getDataMovememtResourceId() {
+    return this.dataMovememtResourceId;
+  }
+
+  public void setDataMovememtResourceId(String dataMovememtResourceId) {
+    this.dataMovememtResourceId = dataMovememtResourceId;
+  }
+
+  public void unsetDataMovememtResourceId() {
+    this.dataMovememtResourceId = null;
+  }
+
+  /** Returns true if field dataMovememtResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovememtResourceId() {
+    return this.dataMovememtResourceId != null;
+  }
+
+  public void setDataMovememtResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.dataMovememtResourceId = null;
+    }
+  }
+
+  public String getLoginUserName() {
+    return this.loginUserName;
+  }
+
+  public void setLoginUserName(String loginUserName) {
+    this.loginUserName = loginUserName;
+  }
+
+  public void unsetLoginUserName() {
+    this.loginUserName = null;
+  }
+
+  /** Returns true if field loginUserName is set (has been assigned a value) and false otherwise */
+  public boolean isSetLoginUserName() {
+    return this.loginUserName != null;
+  }
+
+  public void setLoginUserNameIsSet(boolean value) {
+    if (!value) {
+      this.loginUserName = null;
+    }
+  }
+
+  public String getFileSystemRootLocation() {
+    return this.fileSystemRootLocation;
+  }
+
+  public void setFileSystemRootLocation(String fileSystemRootLocation) {
+    this.fileSystemRootLocation = fileSystemRootLocation;
+  }
+
+  public void unsetFileSystemRootLocation() {
+    this.fileSystemRootLocation = null;
+  }
+
+  /** Returns true if field fileSystemRootLocation is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileSystemRootLocation() {
+    return this.fileSystemRootLocation != null;
+  }
+
+  public void setFileSystemRootLocationIsSet(boolean value) {
+    if (!value) {
+      this.fileSystemRootLocation = null;
+    }
+  }
+
+  public String getResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken;
+  }
+
+  public void setResourceSpecificCredentialStoreToken(String resourceSpecificCredentialStoreToken) {
+    this.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken;
+  }
+
+  public void unsetResourceSpecificCredentialStoreToken() {
+    this.resourceSpecificCredentialStoreToken = null;
+  }
+
+  /** Returns true if field resourceSpecificCredentialStoreToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken != null;
+  }
+
+  public void setResourceSpecificCredentialStoreTokenIsSet(boolean value) {
+    if (!value) {
+      this.resourceSpecificCredentialStoreToken = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case DATA_MOVEMEMT_RESOURCE_ID:
+      if (value == null) {
+        unsetDataMovememtResourceId();
+      } else {
+        setDataMovememtResourceId((String)value);
+      }
+      break;
+
+    case LOGIN_USER_NAME:
+      if (value == null) {
+        unsetLoginUserName();
+      } else {
+        setLoginUserName((String)value);
+      }
+      break;
+
+    case FILE_SYSTEM_ROOT_LOCATION:
+      if (value == null) {
+        unsetFileSystemRootLocation();
+      } else {
+        setFileSystemRootLocation((String)value);
+      }
+      break;
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      if (value == null) {
+        unsetResourceSpecificCredentialStoreToken();
+      } else {
+        setResourceSpecificCredentialStoreToken((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case DATA_MOVEMEMT_RESOURCE_ID:
+      return getDataMovememtResourceId();
+
+    case LOGIN_USER_NAME:
+      return getLoginUserName();
+
+    case FILE_SYSTEM_ROOT_LOCATION:
+      return getFileSystemRootLocation();
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return getResourceSpecificCredentialStoreToken();
+
+    }
+    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 DATA_MOVEMEMT_RESOURCE_ID:
+      return isSetDataMovememtResourceId();
+    case LOGIN_USER_NAME:
+      return isSetLoginUserName();
+    case FILE_SYSTEM_ROOT_LOCATION:
+      return isSetFileSystemRootLocation();
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return isSetResourceSpecificCredentialStoreToken();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof DataStoragePreference)
+      return this.equals((DataStoragePreference)that);
+    return false;
+  }
+
+  public boolean equals(DataStoragePreference that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_dataMovememtResourceId = true && this.isSetDataMovememtResourceId();
+    boolean that_present_dataMovememtResourceId = true && that.isSetDataMovememtResourceId();
+    if (this_present_dataMovememtResourceId || that_present_dataMovememtResourceId) {
+      if (!(this_present_dataMovememtResourceId && that_present_dataMovememtResourceId))
+        return false;
+      if (!this.dataMovememtResourceId.equals(that.dataMovememtResourceId))
+        return false;
+    }
+
+    boolean this_present_loginUserName = true && this.isSetLoginUserName();
+    boolean that_present_loginUserName = true && that.isSetLoginUserName();
+    if (this_present_loginUserName || that_present_loginUserName) {
+      if (!(this_present_loginUserName && that_present_loginUserName))
+        return false;
+      if (!this.loginUserName.equals(that.loginUserName))
+        return false;
+    }
+
+    boolean this_present_fileSystemRootLocation = true && this.isSetFileSystemRootLocation();
+    boolean that_present_fileSystemRootLocation = true && that.isSetFileSystemRootLocation();
+    if (this_present_fileSystemRootLocation || that_present_fileSystemRootLocation) {
+      if (!(this_present_fileSystemRootLocation && that_present_fileSystemRootLocation))
+        return false;
+      if (!this.fileSystemRootLocation.equals(that.fileSystemRootLocation))
+        return false;
+    }
+
+    boolean this_present_resourceSpecificCredentialStoreToken = true && this.isSetResourceSpecificCredentialStoreToken();
+    boolean that_present_resourceSpecificCredentialStoreToken = true && that.isSetResourceSpecificCredentialStoreToken();
+    if (this_present_resourceSpecificCredentialStoreToken || that_present_resourceSpecificCredentialStoreToken) {
+      if (!(this_present_resourceSpecificCredentialStoreToken && that_present_resourceSpecificCredentialStoreToken))
+        return false;
+      if (!this.resourceSpecificCredentialStoreToken.equals(that.resourceSpecificCredentialStoreToken))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_dataMovememtResourceId = true && (isSetDataMovememtResourceId());
+    list.add(present_dataMovememtResourceId);
+    if (present_dataMovememtResourceId)
+      list.add(dataMovememtResourceId);
+
+    boolean present_loginUserName = true && (isSetLoginUserName());
+    list.add(present_loginUserName);
+    if (present_loginUserName)
+      list.add(loginUserName);
+
+    boolean present_fileSystemRootLocation = true && (isSetFileSystemRootLocation());
+    list.add(present_fileSystemRootLocation);
+    if (present_fileSystemRootLocation)
+      list.add(fileSystemRootLocation);
+
+    boolean present_resourceSpecificCredentialStoreToken = true && (isSetResourceSpecificCredentialStoreToken());
+    list.add(present_resourceSpecificCredentialStoreToken);
+    if (present_resourceSpecificCredentialStoreToken)
+      list.add(resourceSpecificCredentialStoreToken);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(DataStoragePreference other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetDataMovememtResourceId()).compareTo(other.isSetDataMovememtResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovememtResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovememtResourceId, other.dataMovememtResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLoginUserName()).compareTo(other.isSetLoginUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLoginUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.loginUserName, other.loginUserName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileSystemRootLocation()).compareTo(other.isSetFileSystemRootLocation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileSystemRootLocation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileSystemRootLocation, other.fileSystemRootLocation);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceSpecificCredentialStoreToken()).compareTo(other.isSetResourceSpecificCredentialStoreToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceSpecificCredentialStoreToken, other.resourceSpecificCredentialStoreToken);
+      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("DataStoragePreference(");
+    boolean first = true;
+
+    sb.append("dataMovememtResourceId:");
+    if (this.dataMovememtResourceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dataMovememtResourceId);
+    }
+    first = false;
+    if (isSetLoginUserName()) {
+      if (!first) sb.append(", ");
+      sb.append("loginUserName:");
+      if (this.loginUserName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.loginUserName);
+      }
+      first = false;
+    }
+    if (isSetFileSystemRootLocation()) {
+      if (!first) sb.append(", ");
+      sb.append("fileSystemRootLocation:");
+      if (this.fileSystemRootLocation == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileSystemRootLocation);
+      }
+      first = false;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceSpecificCredentialStoreToken:");
+      if (this.resourceSpecificCredentialStoreToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceSpecificCredentialStoreToken);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetDataMovememtResourceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovememtResourceId' 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 DataStoragePreferenceStandardSchemeFactory implements SchemeFactory {
+    public DataStoragePreferenceStandardScheme getScheme() {
+      return new DataStoragePreferenceStandardScheme();
+    }
+  }
+
+  private static class DataStoragePreferenceStandardScheme extends StandardScheme<DataStoragePreference> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, DataStoragePreference 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: // DATA_MOVEMEMT_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataMovememtResourceId = iprot.readString();
+              struct.setDataMovememtResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // LOGIN_USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.loginUserName = iprot.readString();
+              struct.setLoginUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // FILE_SYSTEM_ROOT_LOCATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.fileSystemRootLocation = iprot.readString();
+              struct.setFileSystemRootLocationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceSpecificCredentialStoreToken = iprot.readString();
+              struct.setResourceSpecificCredentialStoreTokenIsSet(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, DataStoragePreference struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.dataMovememtResourceId != null) {
+        oprot.writeFieldBegin(DATA_MOVEMEMT_RESOURCE_ID_FIELD_DESC);
+        oprot.writeString(struct.dataMovememtResourceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.loginUserName != null) {
+        if (struct.isSetLoginUserName()) {
+          oprot.writeFieldBegin(LOGIN_USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.loginUserName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.fileSystemRootLocation != null) {
+        if (struct.isSetFileSystemRootLocation()) {
+          oprot.writeFieldBegin(FILE_SYSTEM_ROOT_LOCATION_FIELD_DESC);
+          oprot.writeString(struct.fileSystemRootLocation);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceSpecificCredentialStoreToken != null) {
+        if (struct.isSetResourceSpecificCredentialStoreToken()) {
+          oprot.writeFieldBegin(RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class DataStoragePreferenceTupleSchemeFactory implements SchemeFactory {
+    public DataStoragePreferenceTupleScheme getScheme() {
+      return new DataStoragePreferenceTupleScheme();
+    }
+  }
+
+  private static class DataStoragePreferenceTupleScheme extends TupleScheme<DataStoragePreference> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, DataStoragePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.dataMovememtResourceId);
+      BitSet optionals = new BitSet();
+      if (struct.isSetLoginUserName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetFileSystemRootLocation()) {
+        optionals.set(1);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetLoginUserName()) {
+        oprot.writeString(struct.loginUserName);
+      }
+      if (struct.isSetFileSystemRootLocation()) {
+        oprot.writeString(struct.fileSystemRootLocation);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, DataStoragePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.dataMovememtResourceId = iprot.readString();
+      struct.setDataMovememtResourceIdIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.loginUserName = iprot.readString();
+        struct.setLoginUserNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.fileSystemRootLocation = iprot.readString();
+        struct.setFileSystemRootLocationIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.resourceSpecificCredentialStoreToken = iprot.readString();
+        struct.setResourceSpecificCredentialStoreTokenIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/078f6558/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
index 7a1048c..35d71ed 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@ -71,7 +71,7 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
   private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayID", org.apache.thrift.protocol.TType.STRING, (short)1);
   private static final org.apache.thrift.protocol.TField CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("credentialStoreToken", org.apache.thrift.protocol.TType.STRING, (short)2);
   private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourcePreferences", org.apache.thrift.protocol.TType.LIST, (short)3);
-  private static final org.apache.thrift.protocol.TField STORAGE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("storagePreferences", org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField DATA_STORAGE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("dataStoragePreferences", org.apache.thrift.protocol.TType.LIST, (short)4);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -82,14 +82,14 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
   private String gatewayID; // required
   private String credentialStoreToken; // optional
   private List<ComputeResourcePreference> computeResourcePreferences; // optional
-  private List<StoragePreference> storagePreferences; // optional
+  private List<DataStoragePreference> dataStoragePreferences; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     GATEWAY_ID((short)1, "gatewayID"),
     CREDENTIAL_STORE_TOKEN((short)2, "credentialStoreToken"),
     COMPUTE_RESOURCE_PREFERENCES((short)3, "computeResourcePreferences"),
-    STORAGE_PREFERENCES((short)4, "storagePreferences");
+    DATA_STORAGE_PREFERENCES((short)4, "dataStoragePreferences");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -110,8 +110,8 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
           return CREDENTIAL_STORE_TOKEN;
         case 3: // COMPUTE_RESOURCE_PREFERENCES
           return COMPUTE_RESOURCE_PREFERENCES;
-        case 4: // STORAGE_PREFERENCES
-          return STORAGE_PREFERENCES;
+        case 4: // DATA_STORAGE_PREFERENCES
+          return DATA_STORAGE_PREFERENCES;
         default:
           return null;
       }
@@ -152,7 +152,7 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
   }
 
   // isset id assignments
-  private static final _Fields optionals[] = {_Fields.CREDENTIAL_STORE_TOKEN,_Fields.COMPUTE_RESOURCE_PREFERENCES,_Fields.STORAGE_PREFERENCES};
+  private static final _Fields optionals[] = {_Fields.CREDENTIAL_STORE_TOKEN,_Fields.COMPUTE_RESOURCE_PREFERENCES,_Fields.DATA_STORAGE_PREFERENCES};
   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);
@@ -163,9 +163,9 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     tmpMap.put(_Fields.COMPUTE_RESOURCE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("computeResourcePreferences", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComputeResourcePreference.class))));
-    tmpMap.put(_Fields.STORAGE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("storagePreferences", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+    tmpMap.put(_Fields.DATA_STORAGE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("dataStoragePreferences", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, StoragePreference.class))));
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DataStoragePreference.class))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GatewayResourceProfile.class, metaDataMap);
   }
@@ -197,12 +197,12 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       }
       this.computeResourcePreferences = __this__computeResourcePreferences;
     }
-    if (other.isSetStoragePreferences()) {
-      List<StoragePreference> __this__storagePreferences = new ArrayList<StoragePreference>(other.storagePreferences.size());
-      for (StoragePreference other_element : other.storagePreferences) {
-        __this__storagePreferences.add(new StoragePreference(other_element));
+    if (other.isSetDataStoragePreferences()) {
+      List<DataStoragePreference> __this__dataStoragePreferences = new ArrayList<DataStoragePreference>(other.dataStoragePreferences.size());
+      for (DataStoragePreference other_element : other.dataStoragePreferences) {
+        __this__dataStoragePreferences.add(new DataStoragePreference(other_element));
       }
-      this.storagePreferences = __this__storagePreferences;
+      this.dataStoragePreferences = __this__dataStoragePreferences;
     }
   }
 
@@ -215,7 +215,7 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     this.gatewayID = null;
     this.credentialStoreToken = null;
     this.computeResourcePreferences = null;
-    this.storagePreferences = null;
+    this.dataStoragePreferences = null;
   }
 
   public String getGatewayID() {
@@ -302,41 +302,41 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     }
   }
 
-  public int getStoragePreferencesSize() {
-    return (this.storagePreferences == null) ? 0 : this.storagePreferences.size();
+  public int getDataStoragePreferencesSize() {
+    return (this.dataStoragePreferences == null) ? 0 : this.dataStoragePreferences.size();
   }
 
-  public java.util.Iterator<StoragePreference> getStoragePreferencesIterator() {
-    return (this.storagePreferences == null) ? null : this.storagePreferences.iterator();
+  public java.util.Iterator<DataStoragePreference> getDataStoragePreferencesIterator() {
+    return (this.dataStoragePreferences == null) ? null : this.dataStoragePreferences.iterator();
   }
 
-  public void addToStoragePreferences(StoragePreference elem) {
-    if (this.storagePreferences == null) {
-      this.storagePreferences = new ArrayList<StoragePreference>();
+  public void addToDataStoragePreferences(DataStoragePreference elem) {
+    if (this.dataStoragePreferences == null) {
+      this.dataStoragePreferences = new ArrayList<DataStoragePreference>();
     }
-    this.storagePreferences.add(elem);
+    this.dataStoragePreferences.add(elem);
   }
 
-  public List<StoragePreference> getStoragePreferences() {
-    return this.storagePreferences;
+  public List<DataStoragePreference> getDataStoragePreferences() {
+    return this.dataStoragePreferences;
   }
 
-  public void setStoragePreferences(List<StoragePreference> storagePreferences) {
-    this.storagePreferences = storagePreferences;
+  public void setDataStoragePreferences(List<DataStoragePreference> dataStoragePreferences) {
+    this.dataStoragePreferences = dataStoragePreferences;
   }
 
-  public void unsetStoragePreferences() {
-    this.storagePreferences = null;
+  public void unsetDataStoragePreferences() {
+    this.dataStoragePreferences = null;
   }
 
-  /** Returns true if field storagePreferences is set (has been assigned a value) and false otherwise */
-  public boolean isSetStoragePreferences() {
-    return this.storagePreferences != null;
+  /** Returns true if field dataStoragePreferences is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataStoragePreferences() {
+    return this.dataStoragePreferences != null;
   }
 
-  public void setStoragePreferencesIsSet(boolean value) {
+  public void setDataStoragePreferencesIsSet(boolean value) {
     if (!value) {
-      this.storagePreferences = null;
+      this.dataStoragePreferences = null;
     }
   }
 
@@ -366,11 +366,11 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       }
       break;
 
-    case STORAGE_PREFERENCES:
+    case DATA_STORAGE_PREFERENCES:
       if (value == null) {
-        unsetStoragePreferences();
+        unsetDataStoragePreferences();
       } else {
-        setStoragePreferences((List<StoragePreference>)value);
+        setDataStoragePreferences((List<DataStoragePreference>)value);
       }
       break;
 
@@ -388,8 +388,8 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     case COMPUTE_RESOURCE_PREFERENCES:
       return getComputeResourcePreferences();
 
-    case STORAGE_PREFERENCES:
-      return getStoragePreferences();
+    case DATA_STORAGE_PREFERENCES:
+      return getDataStoragePreferences();
 
     }
     throw new IllegalStateException();
@@ -408,8 +408,8 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       return isSetCredentialStoreToken();
     case COMPUTE_RESOURCE_PREFERENCES:
       return isSetComputeResourcePreferences();
-    case STORAGE_PREFERENCES:
-      return isSetStoragePreferences();
+    case DATA_STORAGE_PREFERENCES:
+      return isSetDataStoragePreferences();
     }
     throw new IllegalStateException();
   }
@@ -454,12 +454,12 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
         return false;
     }
 
-    boolean this_present_storagePreferences = true && this.isSetStoragePreferences();
-    boolean that_present_storagePreferences = true && that.isSetStoragePreferences();
-    if (this_present_storagePreferences || that_present_storagePreferences) {
-      if (!(this_present_storagePreferences && that_present_storagePreferences))
+    boolean this_present_dataStoragePreferences = true && this.isSetDataStoragePreferences();
+    boolean that_present_dataStoragePreferences = true && that.isSetDataStoragePreferences();
+    if (this_present_dataStoragePreferences || that_present_dataStoragePreferences) {
+      if (!(this_present_dataStoragePreferences && that_present_dataStoragePreferences))
         return false;
-      if (!this.storagePreferences.equals(that.storagePreferences))
+      if (!this.dataStoragePreferences.equals(that.dataStoragePreferences))
         return false;
     }
 
@@ -485,10 +485,10 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
     if (present_computeResourcePreferences)
       list.add(computeResourcePreferences);
 
-    boolean present_storagePreferences = true && (isSetStoragePreferences());
-    list.add(present_storagePreferences);
-    if (present_storagePreferences)
-      list.add(storagePreferences);
+    boolean present_dataStoragePreferences = true && (isSetDataStoragePreferences());
+    list.add(present_dataStoragePreferences);
+    if (present_dataStoragePreferences)
+      list.add(dataStoragePreferences);
 
     return list.hashCode();
   }
@@ -531,12 +531,12 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetStoragePreferences()).compareTo(other.isSetStoragePreferences());
+    lastComparison = Boolean.valueOf(isSetDataStoragePreferences()).compareTo(other.isSetDataStoragePreferences());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetStoragePreferences()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storagePreferences, other.storagePreferences);
+    if (isSetDataStoragePreferences()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataStoragePreferences, other.dataStoragePreferences);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -588,13 +588,13 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       }
       first = false;
     }
-    if (isSetStoragePreferences()) {
+    if (isSetDataStoragePreferences()) {
       if (!first) sb.append(", ");
-      sb.append("storagePreferences:");
-      if (this.storagePreferences == null) {
+      sb.append("dataStoragePreferences:");
+      if (this.dataStoragePreferences == null) {
         sb.append("null");
       } else {
-        sb.append(this.storagePreferences);
+        sb.append(this.dataStoragePreferences);
       }
       first = false;
     }
@@ -680,21 +680,21 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 4: // STORAGE_PREFERENCES
+          case 4: // DATA_STORAGE_PREFERENCES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
-                struct.storagePreferences = new ArrayList<StoragePreference>(_list3.size);
-                StoragePreference _elem4;
+                struct.dataStoragePreferences = new ArrayList<DataStoragePreference>(_list3.size);
+                DataStoragePreference _elem4;
                 for (int _i5 = 0; _i5 < _list3.size; ++_i5)
                 {
-                  _elem4 = new StoragePreference();
+                  _elem4 = new DataStoragePreference();
                   _elem4.read(iprot);
-                  struct.storagePreferences.add(_elem4);
+                  struct.dataStoragePreferences.add(_elem4);
                 }
                 iprot.readListEnd();
               }
-              struct.setStoragePreferencesIsSet(true);
+              struct.setDataStoragePreferencesIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -738,12 +738,12 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
           oprot.writeFieldEnd();
         }
       }
-      if (struct.storagePreferences != null) {
-        if (struct.isSetStoragePreferences()) {
-          oprot.writeFieldBegin(STORAGE_PREFERENCES_FIELD_DESC);
+      if (struct.dataStoragePreferences != null) {
+        if (struct.isSetDataStoragePreferences()) {
+          oprot.writeFieldBegin(DATA_STORAGE_PREFERENCES_FIELD_DESC);
           {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.storagePreferences.size()));
-            for (StoragePreference _iter7 : struct.storagePreferences)
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.dataStoragePreferences.size()));
+            for (DataStoragePreference _iter7 : struct.dataStoragePreferences)
             {
               _iter7.write(oprot);
             }
@@ -777,7 +777,7 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       if (struct.isSetComputeResourcePreferences()) {
         optionals.set(1);
       }
-      if (struct.isSetStoragePreferences()) {
+      if (struct.isSetDataStoragePreferences()) {
         optionals.set(2);
       }
       oprot.writeBitSet(optionals, 3);
@@ -793,10 +793,10 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
           }
         }
       }
-      if (struct.isSetStoragePreferences()) {
+      if (struct.isSetDataStoragePreferences()) {
         {
-          oprot.writeI32(struct.storagePreferences.size());
-          for (StoragePreference _iter9 : struct.storagePreferences)
+          oprot.writeI32(struct.dataStoragePreferences.size());
+          for (DataStoragePreference _iter9 : struct.dataStoragePreferences)
           {
             _iter9.write(oprot);
           }
@@ -831,16 +831,16 @@ public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayRe
       if (incoming.get(2)) {
         {
           org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.storagePreferences = new ArrayList<StoragePreference>(_list13.size);
-          StoragePreference _elem14;
+          struct.dataStoragePreferences = new ArrayList<DataStoragePreference>(_list13.size);
+          DataStoragePreference _elem14;
           for (int _i15 = 0; _i15 < _list13.size; ++_i15)
           {
-            _elem14 = new StoragePreference();
+            _elem14 = new DataStoragePreference();
             _elem14.read(iprot);
-            struct.storagePreferences.add(_elem14);
+            struct.dataStoragePreferences.add(_elem14);
           }
         }
-        struct.setStoragePreferencesIsSet(true);
+        struct.setDataStoragePreferencesIsSet(true);
       }
     }
   }


[03/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileTransferRequestDao.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileTransferRequestDao.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileTransferRequestDao.java
deleted file mode 100644
index 6bfb40e..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/FileTransferRequestDao.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.dao;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.mongodb.*;
-import com.mongodb.util.JSON;
-import org.apache.airavata.file.manager.core.db.conversion.ModelConversionHelper;
-import org.apache.airavata.file.manager.core.db.utils.MongoUtils;
-import org.apache.airavata.model.file.transfer.FileTransferRequestModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.UUID;
-
-public class FileTransferRequestDao {
-    private final static Logger logger = LoggerFactory.getLogger(FileTransferRequestDao.class);
-
-    private static final String FILE_TRANSFER_REQUESTS_COLLECTION_NAME = "file-transfer-requests";
-    private DBCollection collection;
-    private ModelConversionHelper modelConversionHelper;
-
-    private static final String TRANSFER_ID = "transfer_id";
-
-    public FileTransferRequestDao() throws IOException {
-        collection = MongoUtils.getFileManagerRegistry().getCollection(FILE_TRANSFER_REQUESTS_COLLECTION_NAME);
-        modelConversionHelper = new ModelConversionHelper();
-        collection.dropIndexes();
-        initIndexes();
-    }
-
-    /**
-     * If indexes are already defined this will simply ignore them
-     */
-    private void initIndexes() {
-        collection.createIndex(new BasicDBObject(TRANSFER_ID, 1), new BasicDBObject("unique", true));
-    }
-
-    public String createFileTransferRequest(FileTransferRequestModel fileTransferRequestModel) throws JsonProcessingException {
-        fileTransferRequestModel.setTransferId(UUID.randomUUID().toString());
-        WriteResult result = collection.insert((DBObject) JSON.parse(
-                modelConversionHelper.serializeObject(fileTransferRequestModel)));
-        logger.debug("No of inserted results " + result.getN());
-        return fileTransferRequestModel.getTransferId();
-    }
-
-    public void updateFileTransferRequest(FileTransferRequestModel fileTransferRequestModel) throws JsonProcessingException {
-        DBObject query = BasicDBObjectBuilder.start().add(
-                TRANSFER_ID, fileTransferRequestModel.getTransferId()).get();
-        WriteResult result = collection.update(query, (DBObject) JSON.parse(
-                modelConversionHelper.serializeObject(fileTransferRequestModel)));
-        logger.debug("No of updated results " + result.getN());
-    }
-
-    public void deleteFileTransferRequest(String trasnferId){
-        DBObject query = BasicDBObjectBuilder.start().add(
-                TRANSFER_ID, trasnferId).get();
-        WriteResult result = collection.remove(query);
-        logger.debug("No of removed file transfer requests " + result.getN());
-    }
-
-    public FileTransferRequestModel getFileTransferRequest(String transferId) throws IOException {
-
-        DBObject criteria = new BasicDBObject(TRANSFER_ID, transferId);
-        DBObject doc = collection.findOne(criteria);
-        if (doc != null) {
-            String json = doc.toString();
-            return (FileTransferRequestModel) modelConversionHelper.deserializeObject(
-                    FileTransferRequestModel.class, json);
-        }
-        return null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/MetadataDao.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/MetadataDao.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/MetadataDao.java
deleted file mode 100644
index 9f9d494..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/dao/MetadataDao.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.dao;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.mongodb.*;
-import com.mongodb.util.JSON;
-import org.apache.airavata.file.manager.core.db.conversion.ModelConversionHelper;
-import org.apache.airavata.file.manager.core.db.utils.MongoUtils;
-import org.apache.airavata.file.manager.cpi.FileManagerConstants;
-import org.apache.airavata.model.file.metadata.MetadataModel;
-import org.apache.airavata.model.file.replica.FileModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.UUID;
-
-public class MetadataDao {
-    private final static Logger logger = LoggerFactory.getLogger(MetadataDao.class);
-
-    private static final String METADATA_COLLECTION_NAME = "metadata-models";
-    private DBCollection collection;
-    private ModelConversionHelper modelConversionHelper;
-
-    private static final String METADATA_ID = "metadata_id";
-
-    public MetadataDao() throws IOException {
-        collection = MongoUtils.getFileManagerRegistry().getCollection(METADATA_COLLECTION_NAME);
-        modelConversionHelper = new ModelConversionHelper();
-        collection.dropIndexes();
-        initIndexes();
-    }
-
-    /**
-     * If indexes are already defined this will simply ignore them
-     */
-    private void initIndexes() {
-        collection.createIndex(new BasicDBObject(METADATA_ID, 1), new BasicDBObject("unique", true));
-    }
-
-    public String createMetadata(MetadataModel metadataModel) throws JsonProcessingException {
-        metadataModel.setMetadataId(FileManagerConstants.AIRAVATA_METADATA_ID_PREFIX + UUID.randomUUID().toString());
-        WriteResult result = collection.insert((DBObject) JSON.parse(
-                modelConversionHelper.serializeObject(metadataModel)));
-        logger.debug("No of inserted results " + result.getN());
-        return metadataModel.getMetadataId();
-    }
-
-    public void updateMetadata(MetadataModel metadataModel) throws JsonProcessingException {
-        DBObject query = BasicDBObjectBuilder.start().add(
-                METADATA_ID, metadataModel.getMetadataId()).get();
-        WriteResult result = collection.update(query, (DBObject) JSON.parse(
-                modelConversionHelper.serializeObject(metadataModel)));
-        logger.debug("No of updated results " + result.getN());
-    }
-
-    public void deleteMetadata(String metadataId){
-        DBObject query = BasicDBObjectBuilder.start().add(
-                METADATA_ID,metadataId).get();
-        WriteResult result = collection.remove(query);
-        logger.debug("No of removed metadata model requests " + result.getN());
-    }
-
-    public MetadataModel getMetadata(String metadataId) throws IOException {
-
-        DBObject criteria = new BasicDBObject(METADATA_ID, metadataId);
-        DBObject doc = collection.findOne(criteria);
-        if (doc != null) {
-            String json = doc.toString();
-            return (MetadataModel) modelConversionHelper.deserializeObject(
-                    MetadataModel.class, json);
-        }
-        return null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/utils/MongoUtils.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/utils/MongoUtils.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/utils/MongoUtils.java
deleted file mode 100644
index 5148dd3..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/db/utils/MongoUtils.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.db.utils;
-
-import org.apache.airavata.file.manager.core.utils.FileManagerConstants;
-import org.apache.airavata.file.manager.core.utils.FileManagerProperties;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.mongodb.DB;
-import com.mongodb.MongoClient;
-
-import java.io.IOException;
-
-public class MongoUtils {
-    private final static Logger logger = LoggerFactory.getLogger(MongoUtils.class);
-
-    private static int port;
-    private static String host;
-    private static MongoClient mongoClient = null;
-    private static DB fileManagerRegistry;
-    private static String FILE_MANAGER_REGISTRY_NAME;
-
-    public static MongoClient getMongoClient() throws IOException {
-        if (mongoClient == null) {
-            FileManagerProperties fileManagerProperties = FileManagerProperties.getInstance();
-            host = fileManagerProperties.getProperty(FileManagerConstants.MONGODB_HOST, "localhost");
-            port = Integer.parseInt(fileManagerProperties.getProperty(FileManagerConstants.MONGODB_PORT, "27017"));
-            FILE_MANAGER_REGISTRY_NAME = fileManagerProperties.getProperty(FileManagerConstants.MONGODB_DB_NAME,
-                    "file-manager-db");
-            mongoClient = new MongoClient(host, port);
-            logger.debug("New Mongo Client created with [" + host + "] and ["
-                    + port + "]");
-
-        }
-        return mongoClient;
-    }
-
-    public static DB getFileManagerRegistry() throws IOException {
-        if (fileManagerRegistry == null) {
-            fileManagerRegistry = getMongoClient().getDB(FILE_MANAGER_REGISTRY_NAME);
-        }
-        return fileManagerRegistry;
-    }
-
-    public static void dropFileManagerRegistry() throws IOException {
-        getMongoClient().dropDatabase(FILE_MANAGER_REGISTRY_NAME);
-        logger.debug("Dropped File Manager Registry");
-
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/RemoteStorageClient.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/RemoteStorageClient.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/RemoteStorageClient.java
deleted file mode 100644
index a9e743c..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/RemoteStorageClient.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client;
-
-import org.apache.airavata.model.file.transfer.LSEntryModel;
-
-import java.io.File;
-import java.util.List;
-
-public interface RemoteStorageClient {
-
-    /**
-     * Reads a remote file, write it to local temporary directory and returns a file pointer to it
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    File readFile(String filePath) throws Exception;
-
-    /**
-     * Writes the source file in the local storage to specified path in the remote storage
-     * @param sourceFile
-     * @return
-     * @throws Exception
-     */
-    void writeFile(File sourceFile, String filePath) throws Exception;
-
-    /**
-     * Returns a directory listing of the specified directory
-     * @param directoryPath
-     * @return
-     * @throws Exception
-     */
-    List<LSEntryModel> getDirectoryListing(String directoryPath) throws Exception;
-
-    /**
-     * Move the specified file from source to destination within the same storage resource
-     * @param currentPath
-     * @param newPath
-     * @throws Exception
-     */
-    void moveFile(String currentPath, String newPath) throws Exception;
-
-    /**
-     *
-     * @param sourcePath
-     * @param destinationPath
-     * @throws Exception
-     */
-    void copyFile(String sourcePath, String destinationPath) throws Exception;
-
-    /**
-     * Rename file with the given name
-     * @param filePath
-     * @param newFileName
-     * @throws Exception
-     */
-    void renameFile(String filePath, String newFileName) throws Exception;
-
-    /**
-     * Delete the specified file
-     * @param filePath
-     * @throws Exception
-     */
-    void deleteFile(String filePath) throws Exception;
-
-    /**
-     * Create new directory in the specified file
-     * @param newDirPath
-     * @throws Exception
-     */
-    void mkdir(String newDirPath) throws Exception;
-
-    /**
-     * Checks whether specified file exists in the remote storage system
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    boolean checkFileExists(String filePath) throws Exception;
-
-    /**
-     * Checks whether the given path is a directory
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    boolean checkIsDirectory(String filePath) throws Exception;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/ExecutionContext.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/ExecutionContext.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/ExecutionContext.java
deleted file mode 100644
index 37da5f9..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/ExecutionContext.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.gridftp;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Properties;
-
-@SuppressWarnings("UnusedDeclaration")
-public class ExecutionContext {
-
-    private String testingHost;
-
-    private String loneStarGridFTP;
-    private String rangerGridFTP;
-    private String trestlesGridFTP;
-
-    private String gridFTPServerSource;
-    private String sourceDataLocation;
-    private String gridFTPServerDestination;
-    private String destinationDataLocation;
-    private String uploadingFilePath;
-
-    public static final String PROPERTY_FILE = "airavata-myproxy-client.properties";
-
-    public ExecutionContext() throws IOException {
-        loadConfigurations();
-    }
-
-    private void loadConfigurations() throws IOException {
-        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-        InputStream propertyStream = classLoader.getResourceAsStream(PROPERTY_FILE);
-
-        Properties properties = new Properties();
-        if (propertyStream != null) {
-            properties.load(propertyStream);
-
-            String testingHost = properties.getProperty(GridFTPConstants.TESTINGHOST);
-
-            String loneStarGridFtp = properties.getProperty(GridFTPConstants.LONESTARGRIDFTPEPR);
-            String rangerGridFtp = properties.getProperty(GridFTPConstants.RANGERGRIDFTPEPR);
-            String trestlesGridFtp = properties.getProperty(GridFTPConstants.TRESTLESGRIDFTPEPR);
-
-            String gridFTPServerSource = properties.getProperty(GridFTPConstants.GRIDFTPSERVERSOURCE);
-            String gridFTPSourcePath = properties.getProperty(GridFTPConstants.GRIDFTPSOURCEPATH);
-            String gridFTPServerDestination = properties.getProperty(GridFTPConstants.GRIDFTPSERVERDEST);
-            String gridFTPDestinationPath = properties.getProperty(GridFTPConstants.GRIDFTPDESTPATH);
-            String gridFTPUploadingPath = properties.getProperty(GridFTPConstants.UPLOADING_FILE_PATH);
-
-            if (testingHost != null) {
-                this.testingHost = testingHost;
-            }
-
-            if (loneStarGridFtp != null) {
-                this.loneStarGridFTP = loneStarGridFtp;
-            }
-            if (rangerGridFtp != null) {
-                this.rangerGridFTP= rangerGridFtp;
-            }
-            if (trestlesGridFtp != null) {
-                this.trestlesGridFTP = trestlesGridFtp;
-            }
-
-            if (gridFTPServerSource != null && !gridFTPServerSource.isEmpty()) {
-                this.gridFTPServerSource = gridFTPServerSource;
-            }
-            if (gridFTPSourcePath != null && !gridFTPSourcePath.isEmpty()) {
-                this.sourceDataLocation = gridFTPSourcePath;
-            }
-            if (gridFTPServerDestination != null && !gridFTPServerDestination.isEmpty()) {
-                this.gridFTPServerDestination = gridFTPServerDestination;
-            }
-            if (gridFTPDestinationPath != null && !gridFTPDestinationPath.isEmpty()) {
-                this.destinationDataLocation = gridFTPDestinationPath;
-            }
-            if (gridFTPUploadingPath != null && !gridFTPUploadingPath.isEmpty()) {
-                this.uploadingFilePath = gridFTPUploadingPath;
-            }
-
-        }
-    }
-
-    public String getTestingHost() {
-        return testingHost;
-    }
-
-    public void setTestingHost(String testingHost) {
-        this.testingHost = testingHost;
-    }
-
-    public String getLoneStarGridFTP() {
-        return loneStarGridFTP;
-    }
-
-    public void setLoneStarGridFTP(String loneStarGridFTP) {
-        this.loneStarGridFTP = loneStarGridFTP;
-    }
-
-    public String getRangerGridFTP() {
-        return rangerGridFTP;
-    }
-
-    public void setRangerGridFTP(String rangerGridFTP) {
-        this.rangerGridFTP = rangerGridFTP;
-    }
-
-    public String getTrestlesGridFTP() {
-        return trestlesGridFTP;
-    }
-
-    public void setTrestlesGridFTP(String trestlesGridFTP) {
-        this.trestlesGridFTP = trestlesGridFTP;
-    }
-
-    public String getGridFTPServerSource() {
-        return gridFTPServerSource;
-    }
-
-    public void setGridFTPServerSource(String gridFTPServerSource) {
-        this.gridFTPServerSource = gridFTPServerSource;
-    }
-
-    public URI getSourceDataFileUri() throws URISyntaxException {
-        String file = gridFTPServerSource + getSourceDataLocation();
-        return new URI(file);
-    }
-
-    public URI getUploadingFilePathUri() throws URISyntaxException {
-        String file = gridFTPServerSource + getUploadingFilePath();
-        return new URI(file);
-    }
-
-    public String getUploadingFilePath() {
-        return uploadingFilePath;
-    }
-
-    public void setUploadingFilePath(String uploadingFilePath) {
-        this.uploadingFilePath = uploadingFilePath;
-    }
-
-    public String getSourceDataLocation() {
-        return sourceDataLocation;
-    }
-
-    public void setSourceDataLocation(String sourceDataLocation) {
-        this.sourceDataLocation = sourceDataLocation;
-    }
-
-    public String getGridFTPServerDestination() {
-        return gridFTPServerDestination;
-    }
-
-    public void setGridFTPServerDestination(String gridFTPServerDestination) {
-        this.gridFTPServerDestination = gridFTPServerDestination;
-    }
-
-    public String getDestinationDataLocation() {
-        return destinationDataLocation;
-    }
-
-    public void setDestinationDataLocation(String destinationDataLocation) {
-        this.destinationDataLocation = destinationDataLocation;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTP.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTP.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTP.java
deleted file mode 100644
index 89bfba3..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTP.java
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.gridftp;
-
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import org.apache.log4j.Logger;
-import org.globus.ftp.DataChannelAuthentication;
-import org.globus.ftp.DataSourceStream;
-import org.globus.ftp.GridFTPClient;
-import org.globus.ftp.HostPort;
-import org.globus.ftp.Marker;
-import org.globus.ftp.MarkerListener;
-import org.globus.ftp.Session;
-import org.globus.ftp.exception.ClientException;
-import org.globus.ftp.exception.ServerException;
-import org.globus.gsi.gssapi.auth.HostAuthorization;
-import org.ietf.jgss.GSSCredential;
-
-/**
- * GridFTP tools
- */
-public class GridFTP {
-
-    public static final String GSIFTP_SCHEME = "gsiftp";
-    private static final Logger log = Logger.getLogger(GridFTP.class);
-
-    /**
-     * Make directory at remote location
-     *
-     * @param destURI Directory name and server location to create the directory.
-     * @param gssCred Credentials to authenticate with remote server.
-     * @throws ServerException If an error occurred while authenticating.
-     * @throws IOException If an error occurred while creating the directory.
-     */
-    public void makeDir(URI destURI, GSSCredential gssCred) throws Exception {
-        GridFTPClient destClient = null;
-        GridFTPContactInfo destHost = new GridFTPContactInfo(destURI.getHost(), destURI.getPort());
-        try {
-
-            String destPath = destURI.getPath();
-            log.info(("Creating Directory = " + destHost + "=" + destPath));
-
-            destClient = new GridFTPClient(destHost.hostName, destHost.port);
-
-            int tryCount = 0;
-            while (true) {
-                try {
-                    destClient.setAuthorization(new HostAuthorization("host"));
-                    destClient.authenticate(gssCred);
-                    destClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
-
-                    if (!destClient.exists(destPath)) {
-                        destClient.makeDir(destPath);
-                    }
-                    break;
-                } catch (ServerException e) {
-                    tryCount++;
-                    if (tryCount >= 3) {
-                        throw new Exception(e.getMessage(), e);
-                    }
-                    Thread.sleep(10000);
-                } catch (IOException e) {
-                    tryCount++;
-                    if (tryCount >= 3) {
-                        throw new Exception(e.getMessage(), e);
-                    }
-                    Thread.sleep(10000);
-                }
-            }
-        } catch (ServerException e) {
-            throw new Exception("Cannot Create GridFTP Client to:" + destHost.toString(), e);
-        } catch (IOException e) {
-            throw new Exception("Cannot Create GridFTP Client to:" + destHost.toString(), e);
-        } catch (InterruptedException e) {
-            throw new Exception("Internal Error cannot sleep", e);
-        } finally {
-            if (destClient != null) {
-                try {
-                    destClient.close();
-                } catch (Exception e) {
-                    log.info("Cannot close GridFTP client connection");
-                }
-            }
-        }
-    }
-
-    /**
-     * Upload file from stream
-     *
-     * @param destURI Name of the file to be uploaded.
-     * @param gsCredential Credentials to authenticate.
-     */
-    public void updateFile(URI destURI, GSSCredential gsCredential, InputStream io) throws Exception {
-        GridFTPClient ftpClient = null;
-        GridFTPContactInfo contactInfo = new GridFTPContactInfo(destURI.getHost(), destURI.getPort());
-
-        try {
-
-            String remoteFile = destURI.getPath();
-            log.info("The remote file is " + remoteFile);
-
-            log.info("Setup GridFTP Client");
-
-            ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
-            ftpClient.setAuthorization(new HostAuthorization("host"));
-            ftpClient.authenticate(gsCredential);
-            ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
-
-            log.info("Uploading file");
-
-            ftpClient.put(remoteFile, new DataSourceStream(io), new MarkerListener() {
-                public void markerArrived(Marker marker) {
-                }
-            });
-
-            log.info("Upload file to:" + remoteFile + " is done");
-
-        } catch (ServerException e) {
-            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
-        } catch (IOException e) {
-            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
-        } catch (ClientException e) {
-            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
-        } finally {
-            if (ftpClient != null) {
-                try {
-                    ftpClient.close();
-                } catch (Exception e) {
-                    log.info("Cannot close GridFTP client connection");
-                }
-            }
-        }
-    }
-
-    /**
-     * Upload file to remote location
-     *
-     * @param destURI Name of the file to be uploaded.
-     * @param gsCredential Credentials used to upload the file.
-     * @param localFile Local file to be uploaded.
-     */
-    public void updateFile(URI destURI, GSSCredential gsCredential, File localFile) throws Exception {
-        GridFTPClient ftpClient = null;
-        GridFTPContactInfo contactInfo = new GridFTPContactInfo(destURI.getHost(), destURI.getPort());
-        try {
-
-            String remoteFile = destURI.getPath();
-
-            log.info("The local temp file is " + localFile);
-            log.info("the remote file is " + remoteFile);
-
-            log.info("Setup GridFTP Client");
-
-            ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
-            ftpClient.setAuthorization(new HostAuthorization("host"));
-            ftpClient.authenticate(gsCredential);
-            ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
-
-            log.info("Uploading file");
-
-            ftpClient.put(localFile, remoteFile, false);
-
-
-            log.info("Upload file to:" + remoteFile + " is done");
-
-        } catch (ServerException e) {
-            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
-        } catch (IOException e) {
-            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
-        } catch (ClientException e) {
-            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
-        } finally {
-            if (ftpClient != null) {
-                try {
-                    ftpClient.close();
-                } catch (Exception e) {
-                    log.info("Cannot close GridFTP client connection");
-                }
-            }
-        }
-    }
-
-    /**
-     * Download File from remote location
-     *
-     * @param destURI  File to be downloaded.
-     * @param gsCredential To authenticate user to remote machine.
-     * @param localFile The downloaded file name.
-     */
-    public void downloadFile(URI destURI, GSSCredential gsCredential, File localFile) throws Exception {
-        GridFTPClient ftpClient = null;
-        GridFTPContactInfo contactInfo = new GridFTPContactInfo(destURI.getHost(), destURI.getPort());
-        try {
-            String remoteFile = destURI.getPath();
-
-            log.info("The local temp file is " + localFile);
-            log.info("the remote file is " + remoteFile);
-
-            log.info("Setup GridFTP Client");
-
-            ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
-            ftpClient.setAuthorization(new HostAuthorization("host"));
-            ftpClient.authenticate(gsCredential);
-            ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
-
-            log.info("Downloading file");
-
-            ftpClient.get(remoteFile, localFile);
-
-            log.info("Download file to:" + remoteFile + " is done");
-
-        } catch (ServerException e) {
-            throw new Exception("Cannot download file from GridFTP:" + contactInfo.toString(), e);
-        } catch (IOException e) {
-            throw new Exception("Cannot download file from GridFTP:" + contactInfo.toString(), e);
-        } catch (ClientException e) {
-            throw new Exception("Cannot download file from GridFTP:" + contactInfo.toString(), e);
-        } finally {
-            if (ftpClient != null) {
-                try {
-                    ftpClient.close();
-                } catch (Exception e) {
-                    log.info("Cannot close GridFTP client connection");
-                }
-            }
-        }
-    }
-
-    /**
-     * Checks whether files exists.
-     *
-     * @param destURI Name of the file to check existence.
-     * @param gsCredential Credentials to authenticate user.
-     */
-    public boolean exists(URI destURI, GSSCredential gsCredential) throws Exception {
-        GridFTPClient ftpClient = null;
-        GridFTPContactInfo contactInfo = new GridFTPContactInfo(destURI.getHost(), destURI.getPort());
-        try {
-            String remoteFile = destURI.getPath();
-
-            log.info("the remote file is " + remoteFile);
-
-            log.info("Setup GridFTP Client");
-
-            ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
-            ftpClient.setAuthorization(new HostAuthorization("host"));
-            ftpClient.authenticate(gsCredential);
-            ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
-
-            log.info("Checking whether file exists");
-
-            return ftpClient.exists(destURI.getPath());
-
-        } catch (ServerException e) {
-            throw new Exception("Cannot download file from GridFTP:" + contactInfo.toString(), e);
-        } catch (IOException e) {
-            throw new Exception("Cannot download file from GridFTP:" + contactInfo.toString(), e);
-        } finally {
-            if (ftpClient != null) {
-                try {
-                    ftpClient.close();
-                } catch (Exception e) {
-                    log.info("Cannot close GridFTP client connection");
-                }
-            }
-        }
-    }
-
-    /**
-     * Stream remote file
-     *
-     * @param destURI Remote file to be read.
-     * @param gsCredential Credentials to authenticate user.
-     * @param localFile Downloaded local file name.
-     * @return  The content of the downloaded file.
-     */
-    public String readRemoteFile(URI destURI, GSSCredential gsCredential, File localFile) throws Exception {
-        BufferedReader instream = null;
-        File localTempfile = null;
-        try {
-
-            if (localFile == null) {
-                localTempfile = File.createTempFile("stderr", "err");
-            } else {
-                localTempfile = localFile;
-            }
-
-            log.info("Loca temporary file:" + localTempfile);
-
-            downloadFile(destURI, gsCredential, localTempfile);
-
-            instream = new BufferedReader(new FileReader(localTempfile));
-            StringBuffer buff = new StringBuffer();
-            String temp = null;
-            while ((temp = instream.readLine()) != null) {
-                buff.append(temp);
-                buff.append(System.getProperty("line.separator"));
-            }
-
-            log.info("finish read file:" + localTempfile);
-
-            return buff.toString();
-        } catch (FileNotFoundException e) {
-            throw new Exception("Cannot read localfile file:" + localTempfile, e);
-        } catch (IOException e) {
-            throw new Exception("Cannot read localfile file:" + localTempfile, e);
-        } finally {
-            if (instream != null) {
-                try {
-                    instream.close();
-                } catch (Exception e) {
-                    log.info("Cannot close GridFTP client connection");
-                }
-            }
-        }
-    }
-
-    /**
-     * Transfer data from one GridFTp Endpoint to another GridFTP Endpoint
-     *
-     * @param srchost Source file and host.
-     * @param desthost Destination file and host.
-     * @param gssCred Credentials to be authenticate user.
-     * @param srcActive Tells source to be active. i.e. asking src to connect destination.
-     * @throws ServerException If an error occurred while transferring data.
-     * @throws ClientException If an error occurred while transferring data.
-     * @throws IOException If an error occurred while transferring data.
-     */
-    public void transfer(URI srchost, URI desthost, GSSCredential gssCred, boolean srcActive) throws Exception {
-        GridFTPClient destClient = null;
-        GridFTPClient srcClient = null;
-
-        try {
-            destClient = new GridFTPClient(desthost.getHost(), desthost.getPort());
-            destClient.setAuthorization(new HostAuthorization("host"));
-            destClient.authenticate(gssCred);
-            destClient.setType(Session.TYPE_IMAGE);
-
-            srcClient = new GridFTPClient(srchost.getHost(), srchost.getPort());
-            srcClient.setAuthorization(new HostAuthorization("host"));
-            srcClient.authenticate(gssCred);
-            srcClient.setType(Session.TYPE_IMAGE);
-
-            if (srcActive) {
-                log.info("Set src active");
-                HostPort hp = destClient.setPassive();
-                srcClient.setActive(hp);
-            } else {
-                log.info("Set dst active");
-                HostPort hp = srcClient.setPassive();
-                destClient.setActive(hp);
-            }
-
-            log.info("Start transfer file from GridFTP:" + srchost.toString() + " to " + desthost.toString());
-
-            /**
-             * Transfer a file. The transfer() function blocks until the transfer is complete.
-             */
-            srcClient.transfer(srchost.getPath(), destClient, desthost.getPath(), false, null);
-            if (srcClient.getSize(srchost.getPath()) == destClient.getSize(desthost.getPath())) {
-                log.info("CHECK SUM OK");
-            } else {
-                log.info("****CHECK SUM FAILED****");
-            }
-
-        } catch (ServerException e) {
-            throw new Exception("Cannot transfer file from GridFTP:" + srchost.toString() + " to "
-                    + desthost.toString(), e);
-        } catch (IOException e) {
-            throw new Exception("Cannot transfer file from GridFTP:" + srchost.toString() + " to "
-                    + desthost.toString(), e);
-        } catch (ClientException e) {
-            throw new Exception("Cannot transfer file from GridFTP:" + srchost.toString() + " to "
-                    + desthost.toString(), e);
-        } finally {
-            if (destClient != null) {
-                try {
-                    destClient.close();
-                } catch (Exception e) {
-                    log.info("Cannot close GridFTP client connection at Desitnation:" + desthost.toString());
-                }
-            }
-            if (srcClient != null) {
-                try {
-                    srcClient.close();
-                } catch (Exception e) {
-                    log.info("Cannot close GridFTP client connection at Source:" + srchost.toString());
-                }
-            }
-        }
-    }
-
-    public static URI createGsiftpURI(String host, String localPath) throws URISyntaxException {
-        StringBuffer buf = new StringBuffer();
-        if (!host.startsWith("gsiftp://"))
-            buf.append("gsiftp://");
-        buf.append(host);
-        if (!host.endsWith("/"))
-            buf.append("/");
-        buf.append(localPath);
-        return new URI(buf.toString());
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTPConstants.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTPConstants.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTPConstants.java
deleted file mode 100644
index 5e00df0..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTPConstants.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.gridftp;
-
-public class GridFTPConstants {
-
-    public static final String MYPROXY_SERVER = "myproxyServer";
-    public static final String MYPROXY_PORT = "myproxyPort";
-    public static final String MYPROXY_LIFETIME = "myproxy_lifetime";
-    public static final String MYPROXY_USERNAME = "myproxyUserName";
-    public static final String MYPROXY_PASSWD = "myproxyPasswd";
-    public static final String TRUSTED_CERTS_FILE = "trustedCertsFile";
-    public static final String HOSTCERTS_KEY_FILE = "hostcertsKeyFile";
-
-    public static final String TESTINGHOST = "testing.host";
-
-    public static final String LONESTARGRIDFTPEPR = "lonestar.gridftp.endpoint";
-    public static final String RANGERGRIDFTPEPR = "ranger.gridftp.endpoint";
-    public static final String TRESTLESGRIDFTPEPR = "trestles.gridftp.endpoint";
-
-    public static final String GRIDFTPSERVERSOURCE = "gridftpserverSource";
-    public static final String GRIDFTPSOURCEPATH = "gridftpSourcePath";
-    public static final String GRIDFTPSERVERDEST = "gridftpserverDest";
-    public static final String GRIDFTPDESTPATH = "gridftpDestPath";
-    public static final String UPLOADING_FILE_PATH = "gridftpUploadingFilePath";
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTPContactInfo.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTPContactInfo.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTPContactInfo.java
deleted file mode 100644
index 060f015..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/GridFTPContactInfo.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.gridftp;
-
-/**
-* Class represents GridFTP Endpoint
-*
-*/
-public class GridFTPContactInfo {
-    public static final int DEFAULT_GSI_FTP_PORT = 2811;
-    public String hostName;
-    public int port;
-
-    public GridFTPContactInfo(String hostName, int port) {
-        if (port <= 0 || port == 80) {
-            port = DEFAULT_GSI_FTP_PORT;
-        }
-        this.hostName = hostName;
-        this.port = port;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (obj instanceof GridFTPContactInfo) {
-            return hostName.equals(((GridFTPContactInfo) obj).hostName) && port == ((GridFTPContactInfo) obj).port;
-        } else {
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode() {
-        return hostName.hashCode();
-    }
-
-    @Override
-    public String toString() {
-        StringBuffer buf = new StringBuffer();
-        buf.append(hostName).append(":").append(port);
-        return buf.toString();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/CertificateManager.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/CertificateManager.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/CertificateManager.java
deleted file mode 100644
index 00d9343..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/CertificateManager.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.gridftp.myproxy;
-
-import java.io.InputStream;
-import java.security.GeneralSecurityException;
-import java.security.cert.X509Certificate;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.globus.gsi.util.CertificateLoadUtil;
-import org.globus.util.ClassLoaderUtils;
-
-public class CertificateManager {
-
-    private static X509Certificate[] trustedCertificates;
-
-    /**
-     * Load CA certificates from a file included in the XBaya jar.
-     *
-     * @return The trusted certificates.
-     */
-    public static X509Certificate[] getTrustedCertificate(String certificate) {
-        if (trustedCertificates != null) {
-            return trustedCertificates;
-        }
-
-        List<X509Certificate> extremeTrustedCertificates = getTrustedCertificates(certificate);
-
-        List<X509Certificate> allTrustedCertificates = new ArrayList<X509Certificate>();
-        allTrustedCertificates.addAll(extremeTrustedCertificates);
-
-        trustedCertificates = allTrustedCertificates.toArray(new X509Certificate[allTrustedCertificates.size()]);
-        return trustedCertificates;
-    }
-
-    private static List<X509Certificate> getTrustedCertificates(String pass) {
-        // ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); //**
-        // InputStream stream = classLoader.getResourceAsStream(pass); //**
-        InputStream stream = ClassLoaderUtils.getResourceAsStream(pass); // **
-        if (stream == null) {
-            throw new RuntimeException("Failed to get InputStream to " + pass);
-        }
-        return readTrustedCertificates(stream);
-    }
-
-    /**
-     * @param stream
-     * @return List of X509Certificate
-     */
-    public static List<X509Certificate> readTrustedCertificates(InputStream stream) {
-        ArrayList<X509Certificate> certificates = new ArrayList<X509Certificate>();
-        while (true) {
-            X509Certificate certificate;
-            try {
-                certificate = CertificateLoadUtil.loadCertificate(stream);
-            } catch (GeneralSecurityException e) {
-                String message = "Certificates are invalid";
-                throw new RuntimeException(message, e);
-            }
-            if (certificate == null) {
-                break;
-            }
-            certificates.add(certificate);
-        }
-        return certificates;
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/MyProxyCredentials.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/MyProxyCredentials.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/MyProxyCredentials.java
deleted file mode 100644
index 23dfd5e..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/MyProxyCredentials.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.gridftp.myproxy;
-
-import java.io.*;
-import java.security.PrivateKey;
-import java.security.cert.X509Certificate;
-
-import org.apache.log4j.Logger;
-import org.globus.gsi.X509Credential;
-import org.globus.gsi.gssapi.GlobusGSSCredentialImpl;
-import org.globus.myproxy.GetParams;
-import org.globus.myproxy.MyProxy;
-import org.ietf.jgss.GSSCredential;
-
-/**
- * Class to manipulate my proxy credentials. Responsible for retrieving, creating
- * my proxy credentials.
- */
-public class MyProxyCredentials implements Serializable {
-
-    private static final long serialVersionUID = -2471014486509046212L;
-    protected String myProxyHostname;
-    protected String myProxyUserName;
-    protected String myProxyPassword;
-    protected int myProxyPortNumber;
-    protected int myProxyLifeTime = 14400;
-    protected String trustedCertificatePath;
-
-    private static final Logger log = Logger.getLogger(MyProxyCredentials.class);
-
-    /**
-     * Default constructor.
-     */
-    public MyProxyCredentials() {
-    }
-
-    /**
-     * Constructor.
-     * @param myProxyServer Ip address of the my proxy server.
-     * @param myProxyPort Port which my proxy server is running.
-     * @param myProxyUsername User name to connect to my proxy server.
-     * @param myProxyPassPhrase Password for my proxy authentication.
-     * @param myProxyLifetime Lifetime of the retrieving credentials.
-     * @param trustedCerts Trusted certificate location for SSL communication.
-     */
-    public MyProxyCredentials(String myProxyServer, int myProxyPort, String myProxyUsername, String myProxyPassPhrase,
-                              int myProxyLifetime, String trustedCerts) {
-
-        this.myProxyHostname = myProxyServer;
-        this.myProxyPortNumber = myProxyPort;
-        this.myProxyUserName = myProxyUsername;
-        this.myProxyPassword = myProxyPassPhrase;
-        this.myProxyLifeTime = myProxyLifetime;
-        this.trustedCertificatePath = trustedCerts;
-
-        init();
-
-    }
-
-    /**
-     * Gets the default proxy certificate.
-     * @return Default my proxy credentials.
-     * @throws Exception If an error occurred while retrieving credentials.
-     */
-    public GSSCredential getDefaultCredentials() throws Exception {
-        MyProxy myproxy = new MyProxy(this.myProxyHostname, this.myProxyPortNumber);
-        return myproxy.get(this.myProxyUserName, this.myProxyPassword, this.myProxyLifeTime);
-    }
-
-    /**
-     * Gets a new proxy certificate given current credentials.
-     * @param credential The new proxy credentials.
-     * @return The short lived GSSCredentials
-     * @throws Exception If an error is occurred while retrieving credentials.
-     */
-    public GSSCredential getProxyCredentials(GSSCredential credential) throws Exception {
-
-        MyProxy myproxy = new MyProxy(this.myProxyHostname, this.myProxyPortNumber);
-        return myproxy.get(credential, this.myProxyUserName, this.myProxyPassword, this.myProxyLifeTime);
-    }
-
-    /**
-     * Renew GSSCredentials.
-     * @param credential Credentials to be renewed.
-     * @return  Renewed credentials.
-     * @throws Exception If an error occurred while renewing credentials.
-     */
-    public GSSCredential renewCredentials(GSSCredential credential) throws Exception {
-        MyProxy myproxy = new MyProxy(this.myProxyHostname, this.myProxyPortNumber);
-
-        GetParams getParams = new GetParams();
-        getParams.setAuthzCreds(credential);
-        getParams.setUserName(this.myProxyUserName);
-        getParams.setLifetime(this.getMyProxyLifeTime());
-
-        return myproxy.get(credential, getParams);
-    }
-
-    public GSSCredential createCredentials(X509Certificate[] x509Certificates, PrivateKey privateKey) throws Exception {
-        X509Credential newCredential = new X509Credential(privateKey,
-                x509Certificates);
-
-        return new GlobusGSSCredentialImpl(newCredential,
-                GSSCredential.INITIATE_AND_ACCEPT);
-
-    }
-
-    public GSSCredential createCredentials(X509Certificate x509Certificate, PrivateKey privateKey) throws Exception {
-
-        X509Certificate[] x509Certificates = new X509Certificate[1];
-        x509Certificates[0] = x509Certificate;
-
-        return createCredentials(x509Certificates, privateKey);
-
-    }
-
-    public void init() {
-        validateTrustedCertificatePath();
-    }
-
-    private void validateTrustedCertificatePath() {
-
-        File file = new File(this.trustedCertificatePath);
-
-        if (!file.exists() || !file.canRead()) {
-            File f = new File(".");
-            System.out.println("Current directory " + f.getAbsolutePath());
-            throw new RuntimeException("Cannot read trusted certificate path " + this.trustedCertificatePath);
-        } else {
-            System.setProperty("X509_CERT_DIR", file.getAbsolutePath());
-        }
-    }
-
-
-    /**
-     * @return the myProxyHostname
-     */
-    public String getMyProxyHostname() {
-        return myProxyHostname;
-    }
-
-    /**
-     * @param myProxyHostname the myProxyHostname to set
-     */
-    public void setMyProxyHostname(String myProxyHostname) {
-        this.myProxyHostname = myProxyHostname;
-    }
-
-    /**
-     * @return the myProxyUserName
-     */
-    public String getMyProxyUserName() {
-        return myProxyUserName;
-    }
-
-    /**
-     * @param myProxyUserName the myProxyUserName to set
-     */
-    public void setMyProxyUserName(String myProxyUserName) {
-        this.myProxyUserName = myProxyUserName;
-    }
-
-    /**
-     * @return the myProxyPassword
-     */
-    public String getMyProxyPassword() {
-        return myProxyPassword;
-    }
-
-    /**
-     * @param myProxyPassword the myProxyPassword to set
-     */
-    public void setMyProxyPassword(String myProxyPassword) {
-        this.myProxyPassword = myProxyPassword;
-    }
-
-    /**
-     * @return the myProxyLifeTime
-     */
-    public int getMyProxyLifeTime() {
-        return myProxyLifeTime;
-    }
-
-    /**
-     * @param myProxyLifeTime the myProxyLifeTime to set
-     */
-    public void setMyProxyLifeTime(int myProxyLifeTime) {
-        this.myProxyLifeTime = myProxyLifeTime;
-    }
-
-    /**
-     * @return the myProxyPortNumber
-     */
-    public int getMyProxyPortNumber() {
-        return myProxyPortNumber;
-    }
-
-    /**
-     * @param myProxyPortNumber the myProxyPortNumber to set
-     */
-    public void setMyProxyPortNumber(int myProxyPortNumber) {
-        this.myProxyPortNumber = myProxyPortNumber;
-    }
-
-    public String getTrustedCertificatePath() {
-        return trustedCertificatePath;
-    }
-
-    public void setTrustedCertificatePath(String trustedCertificatePath) {
-        this.trustedCertificatePath = trustedCertificatePath;
-    }
-
-    /**
-     * @return the portalUserName
-     */
-    /*public String getPortalUserName() {
-        return portalUserName;
-    }*/
-
-    /**
-     * @param portalUserName
-     *            the portalUserName to set
-     */
-    /*public void setPortalUserName(String portalUserName) {
-        this.portalUserName = portalUserName;
-    }*/
-
-    /**
-     * Returns the initialized.
-     *
-     * @return The initialized
-     */
-    /*public boolean isInitialized() {
-        return this.initialized;
-    }*/
-
-    /**
-     * Sets initialized.
-     *
-     * @param initialized
-     *            The initialized to set.
-     */
-   /* public void setInitialized(boolean initialized) {
-        this.initialized = initialized;
-    }*/
-
-    /**
-     * @param hostcertsKeyFile
-     *            the hostcertsKeyFile to set
-     */
-    /*public void setHostcertsKeyFile(String hostcertsKeyFile) {
-        this.hostcertsKeyFile = hostcertsKeyFile;
-    }*/
-
-    /**
-     * @return the hostcertsKeyFile
-     */
-    /*public String getHostcertsKeyFile() {
-        return hostcertsKeyFile;
-    }*/
-
-    /**
-     * @param trustedCertsFile
-     *            the trustedCertsFile to set
-     */
-    /*public void setTrustedCertsFile(String trustedCertsFile) {
-        this.trustedCertsFile = trustedCertsFile;
-    }*/
-
-    /**
-     * @return the trustedCertsFile
-     */
-    /*public String getTrustedCertsFile() {
-        return trustedCertsFile;
-    }*/
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/SecurityContext.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/SecurityContext.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/SecurityContext.java
deleted file mode 100644
index eb1a541..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/gridftp/myproxy/SecurityContext.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.gridftp.myproxy;
-
-import java.io.File;
-import java.io.InputStream;
-import java.util.Properties;
-
-import org.apache.airavata.file.manager.core.remote.client.gridftp.GridFTPConstants;
-import org.apache.log4j.Logger;
-import org.globus.myproxy.MyProxy;
-import org.ietf.jgss.GSSCredential;
-
-public class SecurityContext {
-
-    /**
-     *
-     */
-    public static final String GRIDFTP_CLIENT_PROPERTY = "gridftp-client.properties";
-    private Properties properties;
-    protected GSSCredential gssCredential;
-
-    private MyProxyCredentials myProxyCredentials;
-    private static final Logger log = Logger.getLogger(SecurityContext.class);
-
-    private String userName = null;
-    private String password = null;
-
-    /**
-     *
-     * Constructs a ApplicationGlobalContext.
-     *
-     * @throws Exception
-     */
-
-    public SecurityContext() throws Exception {
-        log.setLevel(org.apache.log4j.Level.INFO);
-        loadConfiguration();
-
-    }
-
-    public SecurityContext(String user, String pwd) throws Exception {
-
-        this.userName = user;
-        this.password = pwd;
-
-        log.setLevel(org.apache.log4j.Level.INFO);
-        loadConfiguration();
-
-    }
-
-    /**
-     *
-     * @throws Exception
-     */
-    public void login() throws Exception {
-        gssCredential = myProxyCredentials.getDefaultCredentials();
-    }
-
-    public GSSCredential getProxyCredentials(GSSCredential credential) throws Exception {
-        return myProxyCredentials.getProxyCredentials(credential);
-    }
-
-    public GSSCredential renewCredentials(GSSCredential credential) throws Exception {
-        return myProxyCredentials.renewCredentials(credential);
-    }
-
-    public static String getProperty(String name) {
-        try {
-            SecurityContext context = new SecurityContext();
-            return context.getProperties().getProperty(name);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-
-    }
-
-    /**
-     * Load the configration file
-     *
-     * @throws Exception
-     */
-    private void loadConfiguration() throws Exception {
-        try {
-
-            System.out.println("In the load configurations method .....");
-
-            if (properties == null) {
-                ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-
-                InputStream propertyStream = classLoader.getResourceAsStream(GRIDFTP_CLIENT_PROPERTY);
-                properties = new Properties();
-                if (myProxyCredentials == null) {
-                    this.myProxyCredentials = new MyProxyCredentials();
-                }
-                if (propertyStream != null) {
-                    properties.load(propertyStream);
-                    String myproxyServerTmp = properties.getProperty(GridFTPConstants.MYPROXY_SERVER);
-                    if (myproxyServerTmp != null) {
-                        this.myProxyCredentials.setMyProxyHostname(myproxyServerTmp.trim());
-                    }
-                    String myproxyPortTemp = properties.getProperty(GridFTPConstants.MYPROXY_PORT);
-                    if (myproxyPortTemp != null && myproxyPortTemp.trim().length() > 0) {
-                        this.myProxyCredentials.setMyProxyPortNumber(Integer.parseInt(myproxyPortTemp.trim()));
-                    } else {
-                        this.myProxyCredentials.setMyProxyPortNumber(MyProxy.DEFAULT_PORT);
-                    }
-
-                    this.myProxyCredentials.setMyProxyUserName(userName);
-                    this.myProxyCredentials.setMyProxyPassword(password);
-
-                    String myproxytime = properties.getProperty(GridFTPConstants.MYPROXY_LIFETIME);
-                    if (myproxytime != null) {
-                        this.myProxyCredentials.setMyProxyLifeTime(Integer.parseInt(myproxytime));
-                    }
-
-                    String currentDirectory = System.getProperty("projectDirectory");
-                    String certificatePath = currentDirectory + File.separatorChar
-                            + properties.getProperty(GridFTPConstants.TRUSTED_CERTS_FILE);
-
-                    this.myProxyCredentials.setTrustedCertificatePath(certificatePath);
-
-                    System.out.println("Certificate path - " + certificatePath);
-
-                    this.myProxyCredentials.init();
-                }
-            }
-
-        } catch (Exception e) {
-            e.printStackTrace();
-            log.error(e.getLocalizedMessage());
-            throw new Exception(e);
-        }
-
-    }
-
-    /**
-     * @return the properties
-     */
-    public Properties getProperties() {
-        return properties;
-    }
-
-    /**
-     * @param properties
-     *            the properties to set
-     */
-    public void setProperties(Properties properties) {
-        this.properties = properties;
-    }
-
-    /**
-     * Returns the raw gssCredential, without creating a proxy.
-     *
-     * @return The gssCredential
-     */
-    public GSSCredential getRawCredential() throws Exception{
-
-        return gssCredential;
-    }
-
-    /**
-     * Returns the gssCredential.
-     *
-     * @return The gssCredential
-     */
-    public GSSCredential getGssCredential() throws Exception{
-
-        if (this.gssCredential == null)
-            return null;
-
-        return renewCredentials(gssCredential);
-    }
-
-    /**
-     * Sets gssCredential.
-     *
-     * @param gssCredential
-     *            The gssCredential to set.
-     */
-    public void setGssCredential(GSSCredential gssCredential) {
-        this.gssCredential = gssCredential;
-    }
-
-    public MyProxyCredentials getMyProxyCredentials() {
-        return myProxyCredentials;
-    }
-
-    public void setMyProxyCredentials(MyProxyCredentials myProxyCredentials) {
-        this.myProxyCredentials = myProxyCredentials;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/http/HTTPStorageClient.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/http/HTTPStorageClient.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/http/HTTPStorageClient.java
deleted file mode 100644
index e829c3b..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/http/HTTPStorageClient.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.http;
-
-import org.apache.airavata.file.manager.core.remote.client.RemoteStorageClient;
-import org.apache.airavata.model.file.transfer.LSEntryModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.channels.Channels;
-import java.nio.channels.ReadableByteChannel;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.util.List;
-import java.util.UUID;
-
-public class HTTPStorageClient implements RemoteStorageClient {
-    private final static Logger logger = LoggerFactory.getLogger(HTTPStorageClient.class);
-
-    public static enum Protocol {
-        HTTP, HTTPS
-    }
-
-    private String host;
-    private int port;
-    private Protocol protocol;
-
-    public HTTPStorageClient(Protocol protocol, String host, int port) throws KeyManagementException, NoSuchAlgorithmException {
-        this.protocol = protocol;
-        this.host = host;
-        this.port = port;
-
-        // Create a new trust manager that trust all certificates
-        TrustManager[] trustAllCerts = new TrustManager[]{
-                new X509TrustManager() {
-                    public java.security.cert.X509Certificate[] getAcceptedIssuers() {
-                        return null;
-                    }
-
-                    public void checkClientTrusted(
-                            java.security.cert.X509Certificate[] certs, String authType) {
-                    }
-
-                    public void checkServerTrusted(
-                            java.security.cert.X509Certificate[] certs, String authType) {
-                    }
-                }
-        };
-
-        // Activate the new trust manager
-        SSLContext sc = SSLContext.getInstance("SSL");
-        sc.init(null, trustAllCerts, new java.security.SecureRandom());
-        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
-    }
-
-    /**
-     * Reads a remote file, write it to local temporary directory and returns a file pointer to it
-     *
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public File readFile(String filePath) throws Exception {
-        String url = "";
-        if (protocol == Protocol.HTTP)
-            url += "http://";
-        else
-            url += "https://";
-        url += host + ":" + port;
-        if (!filePath.startsWith("/"))
-            filePath += "/" + filePath;
-        url += filePath;
-
-        URL fileUrl = new URL(url);
-        URLConnection urlConnection = fileUrl.openConnection();
-        ReadableByteChannel rbc = Channels.newChannel(urlConnection.getInputStream());
-        String localFilePath = System.getProperty("java.io.tmpdir") + File.separator + UUID.randomUUID().toString();
-        FileOutputStream fos = new FileOutputStream(localFilePath);
-        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
-
-        return new File(localFilePath);
-    }
-
-    /**
-     * Writes the source file in the local storage to specified path in the remote storage
-     *
-     * @param sourceFile
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public void writeFile(File sourceFile, String filePath) throws Exception {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Returns a directory listing of the specified directory
-     *
-     * @param directoryPath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public List<LSEntryModel> getDirectoryListing(String directoryPath) throws Exception {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Move the specified file from source to destination within the same storage resource
-     *
-     * @param currentPath
-     * @param newPath
-     * @throws Exception
-     */
-    @Override
-    public void moveFile(String currentPath, String newPath) throws Exception {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * @param sourcePath
-     * @param destinationPath
-     * @throws Exception
-     */
-    @Override
-    public void copyFile(String sourcePath, String destinationPath) throws Exception {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Rename file with the given name
-     *
-     * @param filePath
-     * @param newFileName
-     * @throws Exception
-     */
-    @Override
-    public void renameFile(String filePath, String newFileName) throws Exception {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Delete the specified file
-     *
-     * @param filePath
-     * @throws Exception
-     */
-    @Override
-    public void deleteFile(String filePath) throws Exception {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Create new directory in the specified file
-     *
-     * @param newDirPath
-     * @throws Exception
-     */
-    @Override
-    public void mkdir(String newDirPath) throws Exception {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Checks whether specified file exists in the remote storage system
-     *
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public boolean checkFileExists(String filePath) throws Exception {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Checks whether the given path is a directory
-     *
-     * @param filePath
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public boolean checkIsDirectory(String filePath) throws Exception {
-        return false;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/CommandOutput.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/CommandOutput.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/CommandOutput.java
deleted file mode 100644
index 5fd2b52..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/CommandOutput.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.scp;
-
-import com.jcraft.jsch.Channel;
-import java.io.OutputStream;
-
-public interface CommandOutput {
-    void onOutput(Channel var1);
-
-    OutputStream getStandardError();
-
-    void exitCode(int var1);
-
-    int getExitCode();
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPApiException.java
----------------------------------------------------------------------
diff --git a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPApiException.java b/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPApiException.java
deleted file mode 100644
index 0f07707..0000000
--- a/modules/file-manager/file-manager-core/src/main/java/org/apache/airavata/file/manager/core/remote/client/scp/SCPApiException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-package org.apache.airavata.file.manager.core.remote.client.scp;
-
-public class SCPApiException extends Exception {
-
-    public SCPApiException(String message) {
-        super(message);
-    }
-
-    public SCPApiException(String message, Exception e) {
-        super(message, e);
-    }
-
-}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
new file mode 100644
index 0000000..ba911fd
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
@@ -0,0 +1,2504 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.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 javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * A structure holding the experiment metadata and its child models.
+ * 
+ * userName:
+ *   The user name of the targeted gateway end user on whose behalf the experiment is being created.
+ *     the associated gateway identity can only be inferred from the security hand-shake so as to avoid
+ *     authorized Airavata Clients mimicking an unauthorized request. If a gateway is not registered with
+ *     Airavata, an authorization exception is thrown.
+ * 
+ * experimentName:
+ *   The name of the experiment as defined by the user. The name need not be unique as uniqueness is enforced
+ *      by the generated experiment id.
+ * 
+ * experimentDescription:
+ *    The verbose description of the experiment. This is an optional parameter.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel, ExperimentModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentModel");
+
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentType", org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentName", org.apache.thrift.protocol.TType.STRING, (short)6);
+  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)7);
+  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField EXECUTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("executionId", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField GATEWAY_EXECUTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayExecutionId", org.apache.thrift.protocol.TType.STRING, (short)10);
+  private static final org.apache.thrift.protocol.TField ENABLE_EMAIL_NOTIFICATION_FIELD_DESC = new org.apache.thrift.protocol.TField("enableEmailNotification", org.apache.thrift.protocol.TType.BOOL, (short)11);
+  private static final org.apache.thrift.protocol.TField EMAIL_ADDRESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("emailAddresses", org.apache.thrift.protocol.TType.LIST, (short)12);
+  private static final org.apache.thrift.protocol.TField USER_CONFIGURATION_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("userConfigurationData", org.apache.thrift.protocol.TType.STRUCT, (short)13);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentInputs", org.apache.thrift.protocol.TType.LIST, (short)14);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentOutputs", org.apache.thrift.protocol.TType.LIST, (short)15);
+  private static final org.apache.thrift.protocol.TField EXPERIMENT_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentStatus", org.apache.thrift.protocol.TType.STRUCT, (short)16);
+  private static final org.apache.thrift.protocol.TField ERRORS_FIELD_DESC = new org.apache.thrift.protocol.TField("errors", org.apache.thrift.protocol.TType.LIST, (short)17);
+  private static final org.apache.thrift.protocol.TField PROCESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("processes", org.apache.thrift.protocol.TType.LIST, (short)18);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ExperimentModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ExperimentModelTupleSchemeFactory());
+  }
+
+  public String experimentId; // required
+  public String projectId; // required
+  public String gatewayId; // required
+  /**
+   * 
+   * @see ExperimentType
+   */
+  public ExperimentType experimentType; // required
+  public String userName; // required
+  public String experimentName; // required
+  public long creationTime; // optional
+  public String description; // optional
+  public String executionId; // optional
+  public String gatewayExecutionId; // optional
+  public boolean enableEmailNotification; // optional
+  public List<String> emailAddresses; // optional
+  public UserConfigurationDataModel userConfigurationData; // optional
+  public List<org.apache.airavata.model.application.io.InputDataObjectType> experimentInputs; // optional
+  public List<org.apache.airavata.model.application.io.OutputDataObjectType> experimentOutputs; // optional
+  public org.apache.airavata.model.status.ExperimentStatus experimentStatus; // optional
+  public List<org.apache.airavata.model.commons.ErrorModel> errors; // optional
+  public List<org.apache.airavata.model.process.ProcessModel> processes; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    EXPERIMENT_ID((short)1, "experimentId"),
+    PROJECT_ID((short)2, "projectId"),
+    GATEWAY_ID((short)3, "gatewayId"),
+    /**
+     * 
+     * @see ExperimentType
+     */
+    EXPERIMENT_TYPE((short)4, "experimentType"),
+    USER_NAME((short)5, "userName"),
+    EXPERIMENT_NAME((short)6, "experimentName"),
+    CREATION_TIME((short)7, "creationTime"),
+    DESCRIPTION((short)8, "description"),
+    EXECUTION_ID((short)9, "executionId"),
+    GATEWAY_EXECUTION_ID((short)10, "gatewayExecutionId"),
+    ENABLE_EMAIL_NOTIFICATION((short)11, "enableEmailNotification"),
+    EMAIL_ADDRESSES((short)12, "emailAddresses"),
+    USER_CONFIGURATION_DATA((short)13, "userConfigurationData"),
+    EXPERIMENT_INPUTS((short)14, "experimentInputs"),
+    EXPERIMENT_OUTPUTS((short)15, "experimentOutputs"),
+    EXPERIMENT_STATUS((short)16, "experimentStatus"),
+    ERRORS((short)17, "errors"),
+    PROCESSES((short)18, "processes");
+
+    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: // EXPERIMENT_ID
+          return EXPERIMENT_ID;
+        case 2: // PROJECT_ID
+          return PROJECT_ID;
+        case 3: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 4: // EXPERIMENT_TYPE
+          return EXPERIMENT_TYPE;
+        case 5: // USER_NAME
+          return USER_NAME;
+        case 6: // EXPERIMENT_NAME
+          return EXPERIMENT_NAME;
+        case 7: // CREATION_TIME
+          return CREATION_TIME;
+        case 8: // DESCRIPTION
+          return DESCRIPTION;
+        case 9: // EXECUTION_ID
+          return EXECUTION_ID;
+        case 10: // GATEWAY_EXECUTION_ID
+          return GATEWAY_EXECUTION_ID;
+        case 11: // ENABLE_EMAIL_NOTIFICATION
+          return ENABLE_EMAIL_NOTIFICATION;
+        case 12: // EMAIL_ADDRESSES
+          return EMAIL_ADDRESSES;
+        case 13: // USER_CONFIGURATION_DATA
+          return USER_CONFIGURATION_DATA;
+        case 14: // EXPERIMENT_INPUTS
+          return EXPERIMENT_INPUTS;
+        case 15: // EXPERIMENT_OUTPUTS
+          return EXPERIMENT_OUTPUTS;
+        case 16: // EXPERIMENT_STATUS
+          return EXPERIMENT_STATUS;
+        case 17: // ERRORS
+          return ERRORS;
+        case 18: // PROCESSES
+          return PROCESSES;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __CREATIONTIME_ISSET_ID = 0;
+  private static final int __ENABLEEMAILNOTIFICATION_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.DESCRIPTION,_Fields.EXECUTION_ID,_Fields.GATEWAY_EXECUTION_ID,_Fields.ENABLE_EMAIL_NOTIFICATION,_Fields.EMAIL_ADDRESSES,_Fields.USER_CONFIGURATION_DATA,_Fields.EXPERIMENT_INPUTS,_Fields.EXPERIMENT_OUTPUTS,_Fields.EXPERIMENT_STATUS,_Fields.ERRORS,_Fields.PROCESSES};
+  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.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXPERIMENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("experimentType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ExperimentType.class)));
+    tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXPERIMENT_NAME, new org.apache.thrift.meta_data.FieldMetaData("experimentName", 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.DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("description", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EXECUTION_ID, new org.apache.thrift.meta_data.FieldMetaData("executionId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GATEWAY_EXECUTION_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayExecutionId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.ENABLE_EMAIL_NOTIFICATION, new org.apache.thrift.meta_data.FieldMetaData("enableEmailNotification", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.EMAIL_ADDRESSES, new org.apache.thrift.meta_data.FieldMetaData("emailAddresses", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.USER_CONFIGURATION_DATA, new org.apache.thrift.meta_data.FieldMetaData("userConfigurationData", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UserConfigurationDataModel.class)));
+    tmpMap.put(_Fields.EXPERIMENT_INPUTS, new org.apache.thrift.meta_data.FieldMetaData("experimentInputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.InputDataObjectType.class))));
+    tmpMap.put(_Fields.EXPERIMENT_OUTPUTS, new org.apache.thrift.meta_data.FieldMetaData("experimentOutputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.OutputDataObjectType.class))));
+    tmpMap.put(_Fields.EXPERIMENT_STATUS, new org.apache.thrift.meta_data.FieldMetaData("experimentStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ExperimentStatus.class)));
+    tmpMap.put(_Fields.ERRORS, new org.apache.thrift.meta_data.FieldMetaData("errors", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class))));
+    tmpMap.put(_Fields.PROCESSES, new org.apache.thrift.meta_data.FieldMetaData("processes", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.process.ProcessModel.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExperimentModel.class, metaDataMap);
+  }
+
+  public ExperimentModel() {
+    this.experimentId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.experimentType = org.apache.airavata.model.experiment.ExperimentType.SINGLE_APPLICATION;
+
+  }
+
+  public ExperimentModel(
+    String experimentId,
+    String projectId,
+    String gatewayId,
+    ExperimentType experimentType,
+    String userName,
+    String experimentName)
+  {
+    this();
+    this.experimentId = experimentId;
+    this.projectId = projectId;
+    this.gatewayId = gatewayId;
+    this.experimentType = experimentType;
+    this.userName = userName;
+    this.experimentName = experimentName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ExperimentModel(ExperimentModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetExperimentId()) {
+      this.experimentId = other.experimentId;
+    }
+    if (other.isSetProjectId()) {
+      this.projectId = other.projectId;
+    }
+    if (other.isSetGatewayId()) {
+      this.gatewayId = other.gatewayId;
+    }
+    if (other.isSetExperimentType()) {
+      this.experimentType = other.experimentType;
+    }
+    if (other.isSetUserName()) {
+      this.userName = other.userName;
+    }
+    if (other.isSetExperimentName()) {
+      this.experimentName = other.experimentName;
+    }
+    this.creationTime = other.creationTime;
+    if (other.isSetDescription()) {
+      this.description = other.description;
+    }
+    if (other.isSetExecutionId()) {
+      this.executionId = other.executionId;
+    }
+    if (other.isSetGatewayExecutionId()) {
+      this.gatewayExecutionId = other.gatewayExecutionId;
+    }
+    this.enableEmailNotification = other.enableEmailNotification;
+    if (other.isSetEmailAddresses()) {
+      List<String> __this__emailAddresses = new ArrayList<String>(other.emailAddresses);
+      this.emailAddresses = __this__emailAddresses;
+    }
+    if (other.isSetUserConfigurationData()) {
+      this.userConfigurationData = new UserConfigurationDataModel(other.userConfigurationData);
+    }
+    if (other.isSetExperimentInputs()) {
+      List<org.apache.airavata.model.application.io.InputDataObjectType> __this__experimentInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(other.experimentInputs.size());
+      for (org.apache.airavata.model.application.io.InputDataObjectType other_element : other.experimentInputs) {
+        __this__experimentInputs.add(new org.apache.airavata.model.application.io.InputDataObjectType(other_element));
+      }
+      this.experimentInputs = __this__experimentInputs;
+    }
+    if (other.isSetExperimentOutputs()) {
+      List<org.apache.airavata.model.application.io.OutputDataObjectType> __this__experimentOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(other.experimentOutputs.size());
+      for (org.apache.airavata.model.application.io.OutputDataObjectType other_element : other.experimentOutputs) {
+        __this__experimentOutputs.add(new org.apache.airavata.model.application.io.OutputDataObjectType(other_element));
+      }
+      this.experimentOutputs = __this__experimentOutputs;
+    }
+    if (other.isSetExperimentStatus()) {
+      this.experimentStatus = new org.apache.airavata.model.status.ExperimentStatus(other.experimentStatus);
+    }
+    if (other.isSetErrors()) {
+      List<org.apache.airavata.model.commons.ErrorModel> __this__errors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(other.errors.size());
+      for (org.apache.airavata.model.commons.ErrorModel other_element : other.errors) {
+        __this__errors.add(new org.apache.airavata.model.commons.ErrorModel(other_element));
+      }
+      this.errors = __this__errors;
+    }
+    if (other.isSetProcesses()) {
+      List<org.apache.airavata.model.process.ProcessModel> __this__processes = new ArrayList<org.apache.airavata.model.process.ProcessModel>(other.processes.size());
+      for (org.apache.airavata.model.process.ProcessModel other_element : other.processes) {
+        __this__processes.add(new org.apache.airavata.model.process.ProcessModel(other_element));
+      }
+      this.processes = __this__processes;
+    }
+  }
+
+  public ExperimentModel deepCopy() {
+    return new ExperimentModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.experimentId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.projectId = null;
+    this.gatewayId = null;
+    this.experimentType = org.apache.airavata.model.experiment.ExperimentType.SINGLE_APPLICATION;
+
+    this.userName = null;
+    this.experimentName = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    this.description = null;
+    this.executionId = null;
+    this.gatewayExecutionId = null;
+    setEnableEmailNotificationIsSet(false);
+    this.enableEmailNotification = false;
+    this.emailAddresses = null;
+    this.userConfigurationData = null;
+    this.experimentInputs = null;
+    this.experimentOutputs = null;
+    this.experimentStatus = null;
+    this.errors = null;
+    this.processes = null;
+  }
+
+  public String getExperimentId() {
+    return this.experimentId;
+  }
+
+  public ExperimentModel setExperimentId(String experimentId) {
+    this.experimentId = experimentId;
+    return this;
+  }
+
+  public void unsetExperimentId() {
+    this.experimentId = null;
+  }
+
+  /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentId() {
+    return this.experimentId != null;
+  }
+
+  public void setExperimentIdIsSet(boolean value) {
+    if (!value) {
+      this.experimentId = null;
+    }
+  }
+
+  public String getProjectId() {
+    return this.projectId;
+  }
+
+  public ExperimentModel setProjectId(String projectId) {
+    this.projectId = projectId;
+    return this;
+  }
+
+  public void unsetProjectId() {
+    this.projectId = null;
+  }
+
+  /** Returns true if field projectId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProjectId() {
+    return this.projectId != null;
+  }
+
+  public void setProjectIdIsSet(boolean value) {
+    if (!value) {
+      this.projectId = null;
+    }
+  }
+
+  public String getGatewayId() {
+    return this.gatewayId;
+  }
+
+  public ExperimentModel setGatewayId(String gatewayId) {
+    this.gatewayId = gatewayId;
+    return this;
+  }
+
+  public void unsetGatewayId() {
+    this.gatewayId = null;
+  }
+
+  /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayId() {
+    return this.gatewayId != null;
+  }
+
+  public void setGatewayIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see ExperimentType
+   */
+  public ExperimentType getExperimentType() {
+    return this.experimentType;
+  }
+
+  /**
+   * 
+   * @see ExperimentType
+   */
+  public ExperimentModel setExperimentType(ExperimentType experimentType) {
+    this.experimentType = experimentType;
+    return this;
+  }
+
+  public void unsetExperimentType() {
+    this.experimentType = null;
+  }
+
+  /** Returns true if field experimentType is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentType() {
+    return this.experimentType != null;
+  }
+
+  public void setExperimentTypeIsSet(boolean value) {
+    if (!value) {
+      this.experimentType = null;
+    }
+  }
+
+  public String getUserName() {
+    return this.userName;
+  }
+
+  public ExperimentModel setUserName(String userName) {
+    this.userName = userName;
+    return this;
+  }
+
+  public void unsetUserName() {
+    this.userName = null;
+  }
+
+  /** Returns true if field userName is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserName() {
+    return this.userName != null;
+  }
+
+  public void setUserNameIsSet(boolean value) {
+    if (!value) {
+      this.userName = null;
+    }
+  }
+
+  public String getExperimentName() {
+    return this.experimentName;
+  }
+
+  public ExperimentModel setExperimentName(String experimentName) {
+    this.experimentName = experimentName;
+    return this;
+  }
+
+  public void unsetExperimentName() {
+    this.experimentName = null;
+  }
+
+  /** Returns true if field experimentName is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentName() {
+    return this.experimentName != null;
+  }
+
+  public void setExperimentNameIsSet(boolean value) {
+    if (!value) {
+      this.experimentName = null;
+    }
+  }
+
+  public long getCreationTime() {
+    return this.creationTime;
+  }
+
+  public ExperimentModel setCreationTime(long creationTime) {
+    this.creationTime = creationTime;
+    setCreationTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetCreationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetCreationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __CREATIONTIME_ISSET_ID);
+  }
+
+  public void setCreationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
+  }
+
+  public String getDescription() {
+    return this.description;
+  }
+
+  public ExperimentModel setDescription(String description) {
+    this.description = description;
+    return this;
+  }
+
+  public void unsetDescription() {
+    this.description = null;
+  }
+
+  /** Returns true if field description is set (has been assigned a value) and false otherwise */
+  public boolean isSetDescription() {
+    return this.description != null;
+  }
+
+  public void setDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.description = null;
+    }
+  }
+
+  public String getExecutionId() {
+    return this.executionId;
+  }
+
+  public ExperimentModel setExecutionId(String executionId) {
+    this.executionId = executionId;
+    return this;
+  }
+
+  public void unsetExecutionId() {
+    this.executionId = null;
+  }
+
+  /** Returns true if field executionId is set (has been assigned a value) and false otherwise */
+  public boolean isSetExecutionId() {
+    return this.executionId != null;
+  }
+
+  public void setExecutionIdIsSet(boolean value) {
+    if (!value) {
+      this.executionId = null;
+    }
+  }
+
+  public String getGatewayExecutionId() {
+    return this.gatewayExecutionId;
+  }
+
+  public ExperimentModel setGatewayExecutionId(String gatewayExecutionId) {
+    this.gatewayExecutionId = gatewayExecutionId;
+    return this;
+  }
+
+  public void unsetGatewayExecutionId() {
+    this.gatewayExecutionId = null;
+  }
+
+  /** Returns true if field gatewayExecutionId is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayExecutionId() {
+    return this.gatewayExecutionId != null;
+  }
+
+  public void setGatewayExecutionIdIsSet(boolean value) {
+    if (!value) {
+      this.gatewayExecutionId = null;
+    }
+  }
+
+  public boolean isEnableEmailNotification() {
+    return this.enableEmailNotification;
+  }
+
+  public ExperimentModel setEnableEmailNotification(boolean enableEmailNotification) {
+    this.enableEmailNotification = enableEmailNotification;
+    setEnableEmailNotificationIsSet(true);
+    return this;
+  }
+
+  public void unsetEnableEmailNotification() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ENABLEEMAILNOTIFICATION_ISSET_ID);
+  }
+
+  /** Returns true if field enableEmailNotification is set (has been assigned a value) and false otherwise */
+  public boolean isSetEnableEmailNotification() {
+    return EncodingUtils.testBit(__isset_bitfield, __ENABLEEMAILNOTIFICATION_ISSET_ID);
+  }
+
+  public void setEnableEmailNotificationIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ENABLEEMAILNOTIFICATION_ISSET_ID, value);
+  }
+
+  public int getEmailAddressesSize() {
+    return (this.emailAddresses == null) ? 0 : this.emailAddresses.size();
+  }
+
+  public java.util.Iterator<String> getEmailAddressesIterator() {
+    return (this.emailAddresses == null) ? null : this.emailAddresses.iterator();
+  }
+
+  public void addToEmailAddresses(String elem) {
+    if (this.emailAddresses == null) {
+      this.emailAddresses = new ArrayList<String>();
+    }
+    this.emailAddresses.add(elem);
+  }
+
+  public List<String> getEmailAddresses() {
+    return this.emailAddresses;
+  }
+
+  public ExperimentModel setEmailAddresses(List<String> emailAddresses) {
+    this.emailAddresses = emailAddresses;
+    return this;
+  }
+
+  public void unsetEmailAddresses() {
+    this.emailAddresses = null;
+  }
+
+  /** Returns true if field emailAddresses is set (has been assigned a value) and false otherwise */
+  public boolean isSetEmailAddresses() {
+    return this.emailAddresses != null;
+  }
+
+  public void setEmailAddressesIsSet(boolean value) {
+    if (!value) {
+      this.emailAddresses = null;
+    }
+  }
+
+  public UserConfigurationDataModel getUserConfigurationData() {
+    return this.userConfigurationData;
+  }
+
+  public ExperimentModel setUserConfigurationData(UserConfigurationDataModel userConfigurationData) {
+    this.userConfigurationData = userConfigurationData;
+    return this;
+  }
+
+  public void unsetUserConfigurationData() {
+    this.userConfigurationData = null;
+  }
+
+  /** Returns true if field userConfigurationData is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserConfigurationData() {
+    return this.userConfigurationData != null;
+  }
+
+  public void setUserConfigurationDataIsSet(boolean value) {
+    if (!value) {
+      this.userConfigurationData = null;
+    }
+  }
+
+  public int getExperimentInputsSize() {
+    return (this.experimentInputs == null) ? 0 : this.experimentInputs.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.application.io.InputDataObjectType> getExperimentInputsIterator() {
+    return (this.experimentInputs == null) ? null : this.experimentInputs.iterator();
+  }
+
+  public void addToExperimentInputs(org.apache.airavata.model.application.io.InputDataObjectType elem) {
+    if (this.experimentInputs == null) {
+      this.experimentInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>();
+    }
+    this.experimentInputs.add(elem);
+  }
+
+  public List<org.apache.airavata.model.application.io.InputDataObjectType> getExperimentInputs() {
+    return this.experimentInputs;
+  }
+
+  public ExperimentModel setExperimentInputs(List<org.apache.airavata.model.application.io.InputDataObjectType> experimentInputs) {
+    this.experimentInputs = experimentInputs;
+    return this;
+  }
+
+  public void unsetExperimentInputs() {
+    this.experimentInputs = null;
+  }
+
+  /** Returns true if field experimentInputs is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentInputs() {
+    return this.experimentInputs != null;
+  }
+
+  public void setExperimentInputsIsSet(boolean value) {
+    if (!value) {
+      this.experimentInputs = null;
+    }
+  }
+
+  public int getExperimentOutputsSize() {
+    return (this.experimentOutputs == null) ? 0 : this.experimentOutputs.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.application.io.OutputDataObjectType> getExperimentOutputsIterator() {
+    return (this.experimentOutputs == null) ? null : this.experimentOutputs.iterator();
+  }
+
+  public void addToExperimentOutputs(org.apache.airavata.model.application.io.OutputDataObjectType elem) {
+    if (this.experimentOutputs == null) {
+      this.experimentOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>();
+    }
+    this.experimentOutputs.add(elem);
+  }
+
+  public List<org.apache.airavata.model.application.io.OutputDataObjectType> getExperimentOutputs() {
+    return this.experimentOutputs;
+  }
+
+  public ExperimentModel setExperimentOutputs(List<org.apache.airavata.model.application.io.OutputDataObjectType> experimentOutputs) {
+    this.experimentOutputs = experimentOutputs;
+    return this;
+  }
+
+  public void unsetExperimentOutputs() {
+    this.experimentOutputs = null;
+  }
+
+  /** Returns true if field experimentOutputs is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentOutputs() {
+    return this.experimentOutputs != null;
+  }
+
+  public void setExperimentOutputsIsSet(boolean value) {
+    if (!value) {
+      this.experimentOutputs = null;
+    }
+  }
+
+  public org.apache.airavata.model.status.ExperimentStatus getExperimentStatus() {
+    return this.experimentStatus;
+  }
+
+  public ExperimentModel setExperimentStatus(org.apache.airavata.model.status.ExperimentStatus experimentStatus) {
+    this.experimentStatus = experimentStatus;
+    return this;
+  }
+
+  public void unsetExperimentStatus() {
+    this.experimentStatus = null;
+  }
+
+  /** Returns true if field experimentStatus is set (has been assigned a value) and false otherwise */
+  public boolean isSetExperimentStatus() {
+    return this.experimentStatus != null;
+  }
+
+  public void setExperimentStatusIsSet(boolean value) {
+    if (!value) {
+      this.experimentStatus = null;
+    }
+  }
+
+  public int getErrorsSize() {
+    return (this.errors == null) ? 0 : this.errors.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.commons.ErrorModel> getErrorsIterator() {
+    return (this.errors == null) ? null : this.errors.iterator();
+  }
+
+  public void addToErrors(org.apache.airavata.model.commons.ErrorModel elem) {
+    if (this.errors == null) {
+      this.errors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>();
+    }
+    this.errors.add(elem);
+  }
+
+  public List<org.apache.airavata.model.commons.ErrorModel> getErrors() {
+    return this.errors;
+  }
+
+  public ExperimentModel setErrors(List<org.apache.airavata.model.commons.ErrorModel> errors) {
+    this.errors = errors;
+    return this;
+  }
+
+  public void unsetErrors() {
+    this.errors = null;
+  }
+
+  /** Returns true if field errors is set (has been assigned a value) and false otherwise */
+  public boolean isSetErrors() {
+    return this.errors != null;
+  }
+
+  public void setErrorsIsSet(boolean value) {
+    if (!value) {
+      this.errors = null;
+    }
+  }
+
+  public int getProcessesSize() {
+    return (this.processes == null) ? 0 : this.processes.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.process.ProcessModel> getProcessesIterator() {
+    return (this.processes == null) ? null : this.processes.iterator();
+  }
+
+  public void addToProcesses(org.apache.airavata.model.process.ProcessModel elem) {
+    if (this.processes == null) {
+      this.processes = new ArrayList<org.apache.airavata.model.process.ProcessModel>();
+    }
+    this.processes.add(elem);
+  }
+
+  public List<org.apache.airavata.model.process.ProcessModel> getProcesses() {
+    return this.processes;
+  }
+
+  public ExperimentModel setProcesses(List<org.apache.airavata.model.process.ProcessModel> processes) {
+    this.processes = processes;
+    return this;
+  }
+
+  public void unsetProcesses() {
+    this.processes = null;
+  }
+
+  /** Returns true if field processes is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcesses() {
+    return this.processes != null;
+  }
+
+  public void setProcessesIsSet(boolean value) {
+    if (!value) {
+      this.processes = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case EXPERIMENT_ID:
+      if (value == null) {
+        unsetExperimentId();
+      } else {
+        setExperimentId((String)value);
+      }
+      break;
+
+    case PROJECT_ID:
+      if (value == null) {
+        unsetProjectId();
+      } else {
+        setProjectId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayId();
+      } else {
+        setGatewayId((String)value);
+      }
+      break;
+
+    case EXPERIMENT_TYPE:
+      if (value == null) {
+        unsetExperimentType();
+      } else {
+        setExperimentType((ExperimentType)value);
+      }
+      break;
+
+    case USER_NAME:
+      if (value == null) {
+        unsetUserName();
+      } else {
+        setUserName((String)value);
+      }
+      break;
+
+    case EXPERIMENT_NAME:
+      if (value == null) {
+        unsetExperimentName();
+      } else {
+        setExperimentName((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case DESCRIPTION:
+      if (value == null) {
+        unsetDescription();
+      } else {
+        setDescription((String)value);
+      }
+      break;
+
+    case EXECUTION_ID:
+      if (value == null) {
+        unsetExecutionId();
+      } else {
+        setExecutionId((String)value);
+      }
+      break;
+
+    case GATEWAY_EXECUTION_ID:
+      if (value == null) {
+        unsetGatewayExecutionId();
+      } else {
+        setGatewayExecutionId((String)value);
+      }
+      break;
+
+    case ENABLE_EMAIL_NOTIFICATION:
+      if (value == null) {
+        unsetEnableEmailNotification();
+      } else {
+        setEnableEmailNotification((Boolean)value);
+      }
+      break;
+
+    case EMAIL_ADDRESSES:
+      if (value == null) {
+        unsetEmailAddresses();
+      } else {
+        setEmailAddresses((List<String>)value);
+      }
+      break;
+
+    case USER_CONFIGURATION_DATA:
+      if (value == null) {
+        unsetUserConfigurationData();
+      } else {
+        setUserConfigurationData((UserConfigurationDataModel)value);
+      }
+      break;
+
+    case EXPERIMENT_INPUTS:
+      if (value == null) {
+        unsetExperimentInputs();
+      } else {
+        setExperimentInputs((List<org.apache.airavata.model.application.io.InputDataObjectType>)value);
+      }
+      break;
+
+    case EXPERIMENT_OUTPUTS:
+      if (value == null) {
+        unsetExperimentOutputs();
+      } else {
+        setExperimentOutputs((List<org.apache.airavata.model.application.io.OutputDataObjectType>)value);
+      }
+      break;
+
+    case EXPERIMENT_STATUS:
+      if (value == null) {
+        unsetExperimentStatus();
+      } else {
+        setExperimentStatus((org.apache.airavata.model.status.ExperimentStatus)value);
+      }
+      break;
+
+    case ERRORS:
+      if (value == null) {
+        unsetErrors();
+      } else {
+        setErrors((List<org.apache.airavata.model.commons.ErrorModel>)value);
+      }
+      break;
+
+    case PROCESSES:
+      if (value == null) {
+        unsetProcesses();
+      } else {
+        setProcesses((List<org.apache.airavata.model.process.ProcessModel>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case EXPERIMENT_ID:
+      return getExperimentId();
+
+    case PROJECT_ID:
+      return getProjectId();
+
+    case GATEWAY_ID:
+      return getGatewayId();
+
+    case EXPERIMENT_TYPE:
+      return getExperimentType();
+
+    case USER_NAME:
+      return getUserName();
+
+    case EXPERIMENT_NAME:
+      return getExperimentName();
+
+    case CREATION_TIME:
+      return Long.valueOf(getCreationTime());
+
+    case DESCRIPTION:
+      return getDescription();
+
+    case EXECUTION_ID:
+      return getExecutionId();
+
+    case GATEWAY_EXECUTION_ID:
+      return getGatewayExecutionId();
+
+    case ENABLE_EMAIL_NOTIFICATION:
+      return Boolean.valueOf(isEnableEmailNotification());
+
+    case EMAIL_ADDRESSES:
+      return getEmailAddresses();
+
+    case USER_CONFIGURATION_DATA:
+      return getUserConfigurationData();
+
+    case EXPERIMENT_INPUTS:
+      return getExperimentInputs();
+
+    case EXPERIMENT_OUTPUTS:
+      return getExperimentOutputs();
+
+    case EXPERIMENT_STATUS:
+      return getExperimentStatus();
+
+    case ERRORS:
+      return getErrors();
+
+    case PROCESSES:
+      return getProcesses();
+
+    }
+    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 EXPERIMENT_ID:
+      return isSetExperimentId();
+    case PROJECT_ID:
+      return isSetProjectId();
+    case GATEWAY_ID:
+      return isSetGatewayId();
+    case EXPERIMENT_TYPE:
+      return isSetExperimentType();
+    case USER_NAME:
+      return isSetUserName();
+    case EXPERIMENT_NAME:
+      return isSetExperimentName();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case DESCRIPTION:
+      return isSetDescription();
+    case EXECUTION_ID:
+      return isSetExecutionId();
+    case GATEWAY_EXECUTION_ID:
+      return isSetGatewayExecutionId();
+    case ENABLE_EMAIL_NOTIFICATION:
+      return isSetEnableEmailNotification();
+    case EMAIL_ADDRESSES:
+      return isSetEmailAddresses();
+    case USER_CONFIGURATION_DATA:
+      return isSetUserConfigurationData();
+    case EXPERIMENT_INPUTS:
+      return isSetExperimentInputs();
+    case EXPERIMENT_OUTPUTS:
+      return isSetExperimentOutputs();
+    case EXPERIMENT_STATUS:
+      return isSetExperimentStatus();
+    case ERRORS:
+      return isSetErrors();
+    case PROCESSES:
+      return isSetProcesses();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ExperimentModel)
+      return this.equals((ExperimentModel)that);
+    return false;
+  }
+
+  public boolean equals(ExperimentModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_experimentId = true && this.isSetExperimentId();
+    boolean that_present_experimentId = true && that.isSetExperimentId();
+    if (this_present_experimentId || that_present_experimentId) {
+      if (!(this_present_experimentId && that_present_experimentId))
+        return false;
+      if (!this.experimentId.equals(that.experimentId))
+        return false;
+    }
+
+    boolean this_present_projectId = true && this.isSetProjectId();
+    boolean that_present_projectId = true && that.isSetProjectId();
+    if (this_present_projectId || that_present_projectId) {
+      if (!(this_present_projectId && that_present_projectId))
+        return false;
+      if (!this.projectId.equals(that.projectId))
+        return false;
+    }
+
+    boolean this_present_gatewayId = true && this.isSetGatewayId();
+    boolean that_present_gatewayId = true && that.isSetGatewayId();
+    if (this_present_gatewayId || that_present_gatewayId) {
+      if (!(this_present_gatewayId && that_present_gatewayId))
+        return false;
+      if (!this.gatewayId.equals(that.gatewayId))
+        return false;
+    }
+
+    boolean this_present_experimentType = true && this.isSetExperimentType();
+    boolean that_present_experimentType = true && that.isSetExperimentType();
+    if (this_present_experimentType || that_present_experimentType) {
+      if (!(this_present_experimentType && that_present_experimentType))
+        return false;
+      if (!this.experimentType.equals(that.experimentType))
+        return false;
+    }
+
+    boolean this_present_userName = true && this.isSetUserName();
+    boolean that_present_userName = true && that.isSetUserName();
+    if (this_present_userName || that_present_userName) {
+      if (!(this_present_userName && that_present_userName))
+        return false;
+      if (!this.userName.equals(that.userName))
+        return false;
+    }
+
+    boolean this_present_experimentName = true && this.isSetExperimentName();
+    boolean that_present_experimentName = true && that.isSetExperimentName();
+    if (this_present_experimentName || that_present_experimentName) {
+      if (!(this_present_experimentName && that_present_experimentName))
+        return false;
+      if (!this.experimentName.equals(that.experimentName))
+        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_description = true && this.isSetDescription();
+    boolean that_present_description = true && that.isSetDescription();
+    if (this_present_description || that_present_description) {
+      if (!(this_present_description && that_present_description))
+        return false;
+      if (!this.description.equals(that.description))
+        return false;
+    }
+
+    boolean this_present_executionId = true && this.isSetExecutionId();
+    boolean that_present_executionId = true && that.isSetExecutionId();
+    if (this_present_executionId || that_present_executionId) {
+      if (!(this_present_executionId && that_present_executionId))
+        return false;
+      if (!this.executionId.equals(that.executionId))
+        return false;
+    }
+
+    boolean this_present_gatewayExecutionId = true && this.isSetGatewayExecutionId();
+    boolean that_present_gatewayExecutionId = true && that.isSetGatewayExecutionId();
+    if (this_present_gatewayExecutionId || that_present_gatewayExecutionId) {
+      if (!(this_present_gatewayExecutionId && that_present_gatewayExecutionId))
+        return false;
+      if (!this.gatewayExecutionId.equals(that.gatewayExecutionId))
+        return false;
+    }
+
+    boolean this_present_enableEmailNotification = true && this.isSetEnableEmailNotification();
+    boolean that_present_enableEmailNotification = true && that.isSetEnableEmailNotification();
+    if (this_present_enableEmailNotification || that_present_enableEmailNotification) {
+      if (!(this_present_enableEmailNotification && that_present_enableEmailNotification))
+        return false;
+      if (this.enableEmailNotification != that.enableEmailNotification)
+        return false;
+    }
+
+    boolean this_present_emailAddresses = true && this.isSetEmailAddresses();
+    boolean that_present_emailAddresses = true && that.isSetEmailAddresses();
+    if (this_present_emailAddresses || that_present_emailAddresses) {
+      if (!(this_present_emailAddresses && that_present_emailAddresses))
+        return false;
+      if (!this.emailAddresses.equals(that.emailAddresses))
+        return false;
+    }
+
+    boolean this_present_userConfigurationData = true && this.isSetUserConfigurationData();
+    boolean that_present_userConfigurationData = true && that.isSetUserConfigurationData();
+    if (this_present_userConfigurationData || that_present_userConfigurationData) {
+      if (!(this_present_userConfigurationData && that_present_userConfigurationData))
+        return false;
+      if (!this.userConfigurationData.equals(that.userConfigurationData))
+        return false;
+    }
+
+    boolean this_present_experimentInputs = true && this.isSetExperimentInputs();
+    boolean that_present_experimentInputs = true && that.isSetExperimentInputs();
+    if (this_present_experimentInputs || that_present_experimentInputs) {
+      if (!(this_present_experimentInputs && that_present_experimentInputs))
+        return false;
+      if (!this.experimentInputs.equals(that.experimentInputs))
+        return false;
+    }
+
+    boolean this_present_experimentOutputs = true && this.isSetExperimentOutputs();
+    boolean that_present_experimentOutputs = true && that.isSetExperimentOutputs();
+    if (this_present_experimentOutputs || that_present_experimentOutputs) {
+      if (!(this_present_experimentOutputs && that_present_experimentOutputs))
+        return false;
+      if (!this.experimentOutputs.equals(that.experimentOutputs))
+        return false;
+    }
+
+    boolean this_present_experimentStatus = true && this.isSetExperimentStatus();
+    boolean that_present_experimentStatus = true && that.isSetExperimentStatus();
+    if (this_present_experimentStatus || that_present_experimentStatus) {
+      if (!(this_present_experimentStatus && that_present_experimentStatus))
+        return false;
+      if (!this.experimentStatus.equals(that.experimentStatus))
+        return false;
+    }
+
+    boolean this_present_errors = true && this.isSetErrors();
+    boolean that_present_errors = true && that.isSetErrors();
+    if (this_present_errors || that_present_errors) {
+      if (!(this_present_errors && that_present_errors))
+        return false;
+      if (!this.errors.equals(that.errors))
+        return false;
+    }
+
+    boolean this_present_processes = true && this.isSetProcesses();
+    boolean that_present_processes = true && that.isSetProcesses();
+    if (this_present_processes || that_present_processes) {
+      if (!(this_present_processes && that_present_processes))
+        return false;
+      if (!this.processes.equals(that.processes))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_experimentId = true && (isSetExperimentId());
+    list.add(present_experimentId);
+    if (present_experimentId)
+      list.add(experimentId);
+
+    boolean present_projectId = true && (isSetProjectId());
+    list.add(present_projectId);
+    if (present_projectId)
+      list.add(projectId);
+
+    boolean present_gatewayId = true && (isSetGatewayId());
+    list.add(present_gatewayId);
+    if (present_gatewayId)
+      list.add(gatewayId);
+
+    boolean present_experimentType = true && (isSetExperimentType());
+    list.add(present_experimentType);
+    if (present_experimentType)
+      list.add(experimentType.getValue());
+
+    boolean present_userName = true && (isSetUserName());
+    list.add(present_userName);
+    if (present_userName)
+      list.add(userName);
+
+    boolean present_experimentName = true && (isSetExperimentName());
+    list.add(present_experimentName);
+    if (present_experimentName)
+      list.add(experimentName);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_description = true && (isSetDescription());
+    list.add(present_description);
+    if (present_description)
+      list.add(description);
+
+    boolean present_executionId = true && (isSetExecutionId());
+    list.add(present_executionId);
+    if (present_executionId)
+      list.add(executionId);
+
+    boolean present_gatewayExecutionId = true && (isSetGatewayExecutionId());
+    list.add(present_gatewayExecutionId);
+    if (present_gatewayExecutionId)
+      list.add(gatewayExecutionId);
+
+    boolean present_enableEmailNotification = true && (isSetEnableEmailNotification());
+    list.add(present_enableEmailNotification);
+    if (present_enableEmailNotification)
+      list.add(enableEmailNotification);
+
+    boolean present_emailAddresses = true && (isSetEmailAddresses());
+    list.add(present_emailAddresses);
+    if (present_emailAddresses)
+      list.add(emailAddresses);
+
+    boolean present_userConfigurationData = true && (isSetUserConfigurationData());
+    list.add(present_userConfigurationData);
+    if (present_userConfigurationData)
+      list.add(userConfigurationData);
+
+    boolean present_experimentInputs = true && (isSetExperimentInputs());
+    list.add(present_experimentInputs);
+    if (present_experimentInputs)
+      list.add(experimentInputs);
+
+    boolean present_experimentOutputs = true && (isSetExperimentOutputs());
+    list.add(present_experimentOutputs);
+    if (present_experimentOutputs)
+      list.add(experimentOutputs);
+
+    boolean present_experimentStatus = true && (isSetExperimentStatus());
+    list.add(present_experimentStatus);
+    if (present_experimentStatus)
+      list.add(experimentStatus);
+
+    boolean present_errors = true && (isSetErrors());
+    list.add(present_errors);
+    if (present_errors)
+      list.add(errors);
+
+    boolean present_processes = true && (isSetProcesses());
+    list.add(present_processes);
+    if (present_processes)
+      list.add(processes);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ExperimentModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProjectId()).compareTo(other.isSetProjectId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProjectId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.projectId, other.projectId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentType()).compareTo(other.isSetExperimentType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentType, other.experimentType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentName()).compareTo(other.isSetExperimentName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentName, other.experimentName);
+      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(isSetDescription()).compareTo(other.isSetDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.description, other.description);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExecutionId()).compareTo(other.isSetExecutionId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExecutionId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executionId, other.executionId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayExecutionId()).compareTo(other.isSetGatewayExecutionId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayExecutionId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayExecutionId, other.gatewayExecutionId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetEnableEmailNotification()).compareTo(other.isSetEnableEmailNotification());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEnableEmailNotification()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enableEmailNotification, other.enableEmailNotification);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetEmailAddresses()).compareTo(other.isSetEmailAddresses());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEmailAddresses()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.emailAddresses, other.emailAddresses);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUserConfigurationData()).compareTo(other.isSetUserConfigurationData());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserConfigurationData()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userConfigurationData, other.userConfigurationData);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentInputs()).compareTo(other.isSetExperimentInputs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentInputs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentInputs, other.experimentInputs);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentOutputs()).compareTo(other.isSetExperimentOutputs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentOutputs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentOutputs, other.experimentOutputs);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetExperimentStatus()).compareTo(other.isSetExperimentStatus());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExperimentStatus()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentStatus, other.experimentStatus);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetErrors()).compareTo(other.isSetErrors());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetErrors()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errors, other.errors);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcesses()).compareTo(other.isSetProcesses());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcesses()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processes, other.processes);
+      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("ExperimentModel(");
+    boolean first = true;
+
+    sb.append("experimentId:");
+    if (this.experimentId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("projectId:");
+    if (this.projectId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.projectId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gatewayId:");
+    if (this.gatewayId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("experimentType:");
+    if (this.experimentType == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentType);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("userName:");
+    if (this.userName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.userName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("experimentName:");
+    if (this.experimentName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.experimentName);
+    }
+    first = false;
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("description:");
+      if (this.description == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.description);
+      }
+      first = false;
+    }
+    if (isSetExecutionId()) {
+      if (!first) sb.append(", ");
+      sb.append("executionId:");
+      if (this.executionId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.executionId);
+      }
+      first = false;
+    }
+    if (isSetGatewayExecutionId()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayExecutionId:");
+      if (this.gatewayExecutionId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayExecutionId);
+      }
+      first = false;
+    }
+    if (isSetEnableEmailNotification()) {
+      if (!first) sb.append(", ");
+      sb.append("enableEmailNotification:");
+      sb.append(this.enableEmailNotification);
+      first = false;
+    }
+    if (isSetEmailAddresses()) {
+      if (!first) sb.append(", ");
+      sb.append("emailAddresses:");
+      if (this.emailAddresses == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.emailAddresses);
+      }
+      first = false;
+    }
+    if (isSetUserConfigurationData()) {
+      if (!first) sb.append(", ");
+      sb.append("userConfigurationData:");
+      if (this.userConfigurationData == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userConfigurationData);
+      }
+      first = false;
+    }
+    if (isSetExperimentInputs()) {
+      if (!first) sb.append(", ");
+      sb.append("experimentInputs:");
+      if (this.experimentInputs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.experimentInputs);
+      }
+      first = false;
+    }
+    if (isSetExperimentOutputs()) {
+      if (!first) sb.append(", ");
+      sb.append("experimentOutputs:");
+      if (this.experimentOutputs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.experimentOutputs);
+      }
+      first = false;
+    }
+    if (isSetExperimentStatus()) {
+      if (!first) sb.append(", ");
+      sb.append("experimentStatus:");
+      if (this.experimentStatus == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.experimentStatus);
+      }
+      first = false;
+    }
+    if (isSetErrors()) {
+      if (!first) sb.append(", ");
+      sb.append("errors:");
+      if (this.errors == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.errors);
+      }
+      first = false;
+    }
+    if (isSetProcesses()) {
+      if (!first) sb.append(", ");
+      sb.append("processes:");
+      if (this.processes == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processes);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (experimentId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentId' was not present! Struct: " + toString());
+    }
+    if (projectId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'projectId' was not present! Struct: " + toString());
+    }
+    if (gatewayId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
+    }
+    if (experimentType == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentType' was not present! Struct: " + toString());
+    }
+    if (userName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userName' was not present! Struct: " + toString());
+    }
+    if (experimentName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'experimentName' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (userConfigurationData != null) {
+      userConfigurationData.validate();
+    }
+    if (experimentStatus != null) {
+      experimentStatus.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 ExperimentModelStandardSchemeFactory implements SchemeFactory {
+    public ExperimentModelStandardScheme getScheme() {
+      return new ExperimentModelStandardScheme();
+    }
+  }
+
+  private static class ExperimentModelStandardScheme extends StandardScheme<ExperimentModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ExperimentModel struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // EXPERIMENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentId = iprot.readString();
+              struct.setExperimentIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PROJECT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.projectId = iprot.readString();
+              struct.setProjectIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayId = iprot.readString();
+              struct.setGatewayIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // EXPERIMENT_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.experimentType = org.apache.airavata.model.experiment.ExperimentType.findByValue(iprot.readI32());
+              struct.setExperimentTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userName = iprot.readString();
+              struct.setUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // EXPERIMENT_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.experimentName = iprot.readString();
+              struct.setExperimentNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // 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 8: // DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.description = iprot.readString();
+              struct.setDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // EXECUTION_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.executionId = iprot.readString();
+              struct.setExecutionIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // GATEWAY_EXECUTION_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayExecutionId = iprot.readString();
+              struct.setGatewayExecutionIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // ENABLE_EMAIL_NOTIFICATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.enableEmailNotification = iprot.readBool();
+              struct.setEnableEmailNotificationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // EMAIL_ADDRESSES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.emailAddresses = new ArrayList<String>(_list0.size);
+                String _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = iprot.readString();
+                  struct.emailAddresses.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setEmailAddressesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 13: // USER_CONFIGURATION_DATA
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.userConfigurationData = new UserConfigurationDataModel();
+              struct.userConfigurationData.read(iprot);
+              struct.setUserConfigurationDataIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 14: // EXPERIMENT_INPUTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.experimentInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(_list3.size);
+                org.apache.airavata.model.application.io.InputDataObjectType _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = new org.apache.airavata.model.application.io.InputDataObjectType();
+                  _elem4.read(iprot);
+                  struct.experimentInputs.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
+              struct.setExperimentInputsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 15: // EXPERIMENT_OUTPUTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list6 = iprot.readListBegin();
+                struct.experimentOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list6.size);
+                org.apache.airavata.model.application.io.OutputDataObjectType _elem7;
+                for (int _i8 = 0; _i8 < _list6.size; ++_i8)
+                {
+                  _elem7 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+                  _elem7.read(iprot);
+                  struct.experimentOutputs.add(_elem7);
+                }
+                iprot.readListEnd();
+              }
+              struct.setExperimentOutputsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 16: // EXPERIMENT_STATUS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.experimentStatus = new org.apache.airavata.model.status.ExperimentStatus();
+              struct.experimentStatus.read(iprot);
+              struct.setExperimentStatusIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 17: // ERRORS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list9 = iprot.readListBegin();
+                struct.errors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(_list9.size);
+                org.apache.airavata.model.commons.ErrorModel _elem10;
+                for (int _i11 = 0; _i11 < _list9.size; ++_i11)
+                {
+                  _elem10 = new org.apache.airavata.model.commons.ErrorModel();
+                  _elem10.read(iprot);
+                  struct.errors.add(_elem10);
+                }
+                iprot.readListEnd();
+              }
+              struct.setErrorsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 18: // PROCESSES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list12 = iprot.readListBegin();
+                struct.processes = new ArrayList<org.apache.airavata.model.process.ProcessModel>(_list12.size);
+                org.apache.airavata.model.process.ProcessModel _elem13;
+                for (int _i14 = 0; _i14 < _list12.size; ++_i14)
+                {
+                  _elem13 = new org.apache.airavata.model.process.ProcessModel();
+                  _elem13.read(iprot);
+                  struct.processes.add(_elem13);
+                }
+                iprot.readListEnd();
+              }
+              struct.setProcessesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ExperimentModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.experimentId != null) {
+        oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
+        oprot.writeString(struct.experimentId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.projectId != null) {
+        oprot.writeFieldBegin(PROJECT_ID_FIELD_DESC);
+        oprot.writeString(struct.projectId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayId != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentType != null) {
+        oprot.writeFieldBegin(EXPERIMENT_TYPE_FIELD_DESC);
+        oprot.writeI32(struct.experimentType.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.userName != null) {
+        oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
+        oprot.writeString(struct.userName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.experimentName != null) {
+        oprot.writeFieldBegin(EXPERIMENT_NAME_FIELD_DESC);
+        oprot.writeString(struct.experimentName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.description != null) {
+        if (struct.isSetDescription()) {
+          oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.description);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.executionId != null) {
+        if (struct.isSetExecutionId()) {
+          oprot.writeFieldBegin(EXECUTION_ID_FIELD_DESC);
+          oprot.writeString(struct.executionId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.gatewayExecutionId != null) {
+        if (struct.isSetGatewayExecutionId()) {
+          oprot.writeFieldBegin(GATEWAY_EXECUTION_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayExecutionId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetEnableEmailNotification()) {
+        oprot.writeFieldBegin(ENABLE_EMAIL_NOTIFICATION_FIELD_DESC);
+        oprot.writeBool(struct.enableEmailNotification);
+        oprot.writeFieldEnd();
+      }
+      if (struct.emailAddresses != null) {
+        if (struct.isSetEmailAddresses()) {
+          oprot.writeFieldBegin(EMAIL_ADDRESSES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.emailAddresses.size()));
+            for (String _iter15 : struct.emailAddresses)
+            {
+              oprot.writeString(_iter15);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.userConfigurationData != null) {
+        if (struct.isSetUserConfigurationData()) {
+          oprot.writeFieldBegin(USER_CONFIGURATION_DATA_FIELD_DESC);
+          struct.userConfigurationData.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.experimentInputs != null) {
+        if (struct.isSetExperimentInputs()) {
+          oprot.writeFieldBegin(EXPERIMENT_INPUTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.experimentInputs.size()));
+            for (org.apache.airavata.model.application.io.InputDataObjectType _iter16 : struct.experimentInputs)
+            {
+              _iter16.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.experimentOutputs != null) {
+        if (struct.isSetExperimentOutputs()) {
+          oprot.writeFieldBegin(EXPERIMENT_OUTPUTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.experimentOutputs.size()));
+            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter17 : struct.experimentOutputs)
+            {
+              _iter17.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.experimentStatus != null) {
+        if (struct.isSetExperimentStatus()) {
+          oprot.writeFieldBegin(EXPERIMENT_STATUS_FIELD_DESC);
+          struct.experimentStatus.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.errors != null) {
+        if (struct.isSetErrors()) {
+          oprot.writeFieldBegin(ERRORS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.errors.size()));
+            for (org.apache.airavata.model.commons.ErrorModel _iter18 : struct.errors)
+            {
+              _iter18.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.processes != null) {
+        if (struct.isSetProcesses()) {
+          oprot.writeFieldBegin(PROCESSES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.processes.size()));
+            for (org.apache.airavata.model.process.ProcessModel _iter19 : struct.processes)
+            {
+              _iter19.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ExperimentModelTupleSchemeFactory implements SchemeFactory {
+    public ExperimentModelTupleScheme getScheme() {
+      return new ExperimentModelTupleScheme();
+    }
+  }
+
+  private static class ExperimentModelTupleScheme extends TupleScheme<ExperimentModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ExperimentModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.experimentId);
+      oprot.writeString(struct.projectId);
+      oprot.writeString(struct.gatewayId);
+      oprot.writeI32(struct.experimentType.getValue());
+      oprot.writeString(struct.userName);
+      oprot.writeString(struct.experimentName);
+      BitSet optionals = new BitSet();
+      if (struct.isSetCreationTime()) {
+        optionals.set(0);
+      }
+      if (struct.isSetDescription()) {
+        optionals.set(1);
+      }
+      if (struct.isSetExecutionId()) {
+        optionals.set(2);
+      }
+      if (struct.isSetGatewayExecutionId()) {
+        optionals.set(3);
+      }
+      if (struct.isSetEnableEmailNotification()) {
+        optionals.set(4);
+      }
+      if (struct.isSetEmailAddresses()) {
+        optionals.set(5);
+      }
+      if (struct.isSetUserConfigurationData()) {
+        optionals.set(6);
+      }
+      if (struct.isSetExperimentInputs()) {
+        optionals.set(7);
+      }
+      if (struct.isSetExperimentOutputs()) {
+        optionals.set(8);
+      }
+      if (struct.isSetExperimentStatus()) {
+        optionals.set(9);
+      }
+      if (struct.isSetErrors()) {
+        optionals.set(10);
+      }
+      if (struct.isSetProcesses()) {
+        optionals.set(11);
+      }
+      oprot.writeBitSet(optionals, 12);
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetDescription()) {
+        oprot.writeString(struct.description);
+      }
+      if (struct.isSetExecutionId()) {
+        oprot.writeString(struct.executionId);
+      }
+      if (struct.isSetGatewayExecutionId()) {
+        oprot.writeString(struct.gatewayExecutionId);
+      }
+      if (struct.isSetEnableEmailNotification()) {
+        oprot.writeBool(struct.enableEmailNotification);
+      }
+      if (struct.isSetEmailAddresses()) {
+        {
+          oprot.writeI32(struct.emailAddresses.size());
+          for (String _iter20 : struct.emailAddresses)
+          {
+            oprot.writeString(_iter20);
+          }
+        }
+      }
+ 

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/TaskStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/TaskStatus.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/TaskStatus.java
new file mode 100644
index 0000000..3078a3d
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/status/TaskStatus.java
@@ -0,0 +1,639 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.status;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+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 STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("state", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField TIME_OF_STATE_CHANGE_FIELD_DESC = new org.apache.thrift.protocol.TField("timeOfStateChange", org.apache.thrift.protocol.TType.I64, (short)2);
+  private static final org.apache.thrift.protocol.TField REASON_FIELD_DESC = new org.apache.thrift.protocol.TField("reason", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+  private static final 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());
+  }
+
+  /**
+   * 
+   * @see TaskState
+   */
+  public TaskState state; // required
+  public long timeOfStateChange; // optional
+  public String reason; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see TaskState
+     */
+    STATE((short)1, "state"),
+    TIME_OF_STATE_CHANGE((short)2, "timeOfStateChange"),
+    REASON((short)3, "reason");
+
+    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: // STATE
+          return STATE;
+        case 2: // TIME_OF_STATE_CHANGE
+          return TIME_OF_STATE_CHANGE;
+        case 3: // REASON
+          return REASON;
+        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 static final _Fields optionals[] = {_Fields.TIME_OF_STATE_CHANGE,_Fields.REASON};
+  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.STATE, new org.apache.thrift.meta_data.FieldMetaData("state", 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)));
+    tmpMap.put(_Fields.REASON, new org.apache.thrift.meta_data.FieldMetaData("reason", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TaskStatus.class, metaDataMap);
+  }
+
+  public TaskStatus() {
+  }
+
+  public TaskStatus(
+    TaskState state)
+  {
+    this();
+    this.state = state;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public TaskStatus(TaskStatus other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetState()) {
+      this.state = other.state;
+    }
+    this.timeOfStateChange = other.timeOfStateChange;
+    if (other.isSetReason()) {
+      this.reason = other.reason;
+    }
+  }
+
+  public TaskStatus deepCopy() {
+    return new TaskStatus(this);
+  }
+
+  @Override
+  public void clear() {
+    this.state = null;
+    setTimeOfStateChangeIsSet(false);
+    this.timeOfStateChange = 0;
+    this.reason = null;
+  }
+
+  /**
+   * 
+   * @see TaskState
+   */
+  public TaskState getState() {
+    return this.state;
+  }
+
+  /**
+   * 
+   * @see TaskState
+   */
+  public TaskStatus setState(TaskState state) {
+    this.state = state;
+    return this;
+  }
+
+  public void unsetState() {
+    this.state = null;
+  }
+
+  /** Returns true if field state is set (has been assigned a value) and false otherwise */
+  public boolean isSetState() {
+    return this.state != null;
+  }
+
+  public void setStateIsSet(boolean value) {
+    if (!value) {
+      this.state = null;
+    }
+  }
+
+  public long getTimeOfStateChange() {
+    return this.timeOfStateChange;
+  }
+
+  public TaskStatus setTimeOfStateChange(long timeOfStateChange) {
+    this.timeOfStateChange = timeOfStateChange;
+    setTimeOfStateChangeIsSet(true);
+    return this;
+  }
+
+  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 String getReason() {
+    return this.reason;
+  }
+
+  public TaskStatus setReason(String reason) {
+    this.reason = reason;
+    return this;
+  }
+
+  public void unsetReason() {
+    this.reason = null;
+  }
+
+  /** Returns true if field reason is set (has been assigned a value) and false otherwise */
+  public boolean isSetReason() {
+    return this.reason != null;
+  }
+
+  public void setReasonIsSet(boolean value) {
+    if (!value) {
+      this.reason = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STATE:
+      if (value == null) {
+        unsetState();
+      } else {
+        setState((TaskState)value);
+      }
+      break;
+
+    case TIME_OF_STATE_CHANGE:
+      if (value == null) {
+        unsetTimeOfStateChange();
+      } else {
+        setTimeOfStateChange((Long)value);
+      }
+      break;
+
+    case REASON:
+      if (value == null) {
+        unsetReason();
+      } else {
+        setReason((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STATE:
+      return getState();
+
+    case TIME_OF_STATE_CHANGE:
+      return Long.valueOf(getTimeOfStateChange());
+
+    case REASON:
+      return getReason();
+
+    }
+    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 STATE:
+      return isSetState();
+    case TIME_OF_STATE_CHANGE:
+      return isSetTimeOfStateChange();
+    case REASON:
+      return isSetReason();
+    }
+    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_state = true && this.isSetState();
+    boolean that_present_state = true && that.isSetState();
+    if (this_present_state || that_present_state) {
+      if (!(this_present_state && that_present_state))
+        return false;
+      if (!this.state.equals(that.state))
+        return false;
+    }
+
+    boolean this_present_timeOfStateChange = true && this.isSetTimeOfStateChange();
+    boolean that_present_timeOfStateChange = true && that.isSetTimeOfStateChange();
+    if (this_present_timeOfStateChange || that_present_timeOfStateChange) {
+      if (!(this_present_timeOfStateChange && that_present_timeOfStateChange))
+        return false;
+      if (this.timeOfStateChange != that.timeOfStateChange)
+        return false;
+    }
+
+    boolean this_present_reason = true && this.isSetReason();
+    boolean that_present_reason = true && that.isSetReason();
+    if (this_present_reason || that_present_reason) {
+      if (!(this_present_reason && that_present_reason))
+        return false;
+      if (!this.reason.equals(that.reason))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_state = true && (isSetState());
+    list.add(present_state);
+    if (present_state)
+      list.add(state.getValue());
+
+    boolean present_timeOfStateChange = true && (isSetTimeOfStateChange());
+    list.add(present_timeOfStateChange);
+    if (present_timeOfStateChange)
+      list.add(timeOfStateChange);
+
+    boolean present_reason = true && (isSetReason());
+    list.add(present_reason);
+    if (present_reason)
+      list.add(reason);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(TaskStatus other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetState()).compareTo(other.isSetState());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetState()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state, other.state);
+      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;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReason()).compareTo(other.isSetReason());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReason()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reason, other.reason);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    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("state:");
+    if (this.state == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.state);
+    }
+    first = false;
+    if (isSetTimeOfStateChange()) {
+      if (!first) sb.append(", ");
+      sb.append("timeOfStateChange:");
+      sb.append(this.timeOfStateChange);
+      first = false;
+    }
+    if (isSetReason()) {
+      if (!first) sb.append(", ");
+      sb.append("reason:");
+      if (this.reason == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.reason);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (state == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'state' was not present! 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: // STATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.state = org.apache.airavata.model.status.TaskState.findByValue(iprot.readI32());
+              struct.setStateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TIME_OF_STATE_CHANGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.timeOfStateChange = iprot.readI64();
+              struct.setTimeOfStateChangeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // REASON
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.reason = iprot.readString();
+              struct.setReasonIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, TaskStatus struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.state != null) {
+        oprot.writeFieldBegin(STATE_FIELD_DESC);
+        oprot.writeI32(struct.state.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeFieldBegin(TIME_OF_STATE_CHANGE_FIELD_DESC);
+        oprot.writeI64(struct.timeOfStateChange);
+        oprot.writeFieldEnd();
+      }
+      if (struct.reason != null) {
+        if (struct.isSetReason()) {
+          oprot.writeFieldBegin(REASON_FIELD_DESC);
+          oprot.writeString(struct.reason);
+          oprot.writeFieldEnd();
+        }
+      }
+      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.state.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetTimeOfStateChange()) {
+        optionals.set(0);
+      }
+      if (struct.isSetReason()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetTimeOfStateChange()) {
+        oprot.writeI64(struct.timeOfStateChange);
+      }
+      if (struct.isSetReason()) {
+        oprot.writeString(struct.reason);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TaskStatus struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.state = org.apache.airavata.model.status.TaskState.findByValue(iprot.readI32());
+      struct.setStateIsSet(true);
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.timeOfStateChange = iprot.readI64();
+        struct.setTimeOfStateChangeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.reason = iprot.readString();
+        struct.setReasonIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/DataStageType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/DataStageType.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/DataStageType.java
new file mode 100644
index 0000000..48a852d
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/DataStageType.java
@@ -0,0 +1,69 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.task;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+/**
+ * DataStagingTaskModel: A structure holding the data staging task details.
+ * 
+ * Source and Destination locations includes standard representation of protocol, host, port and path
+ *   A friendly description of the task, usally used to communicate information to users.
+ * 
+ */
+public enum DataStageType implements org.apache.thrift.TEnum {
+  INPUT(0),
+  OUPUT(1);
+
+  private final int value;
+
+  private DataStageType(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 DataStageType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return INPUT;
+      case 1:
+        return OUPUT;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
new file mode 100644
index 0000000..5cc6e08
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
@@ -0,0 +1,1165 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.task;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class DataStagingTaskModel implements org.apache.thrift.TBase<DataStagingTaskModel, DataStagingTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataStagingTaskModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataStagingTaskModel");
+
+  private static final org.apache.thrift.protocol.TField SOURCE_FIELD_DESC = new org.apache.thrift.protocol.TField("source", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField DESTINATION_FIELD_DESC = new org.apache.thrift.protocol.TField("destination", 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.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField TRANSFER_START_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("transferStartTime", org.apache.thrift.protocol.TType.I64, (short)4);
+  private static final org.apache.thrift.protocol.TField TRANSFER_END_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("transferEndTime", org.apache.thrift.protocol.TType.I64, (short)5);
+  private static final org.apache.thrift.protocol.TField TRANSFER_RATE_FIELD_DESC = new org.apache.thrift.protocol.TField("transferRate", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField PROCESS_INPUT_FIELD_DESC = new org.apache.thrift.protocol.TField("processInput", org.apache.thrift.protocol.TType.STRUCT, (short)7);
+  private static final org.apache.thrift.protocol.TField PROCESS_OUTPUT_FIELD_DESC = new org.apache.thrift.protocol.TField("processOutput", org.apache.thrift.protocol.TType.STRUCT, (short)8);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new DataStagingTaskModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new DataStagingTaskModelTupleSchemeFactory());
+  }
+
+  public String source; // required
+  public String destination; // required
+  /**
+   * 
+   * @see DataStageType
+   */
+  public DataStageType type; // required
+  public long transferStartTime; // optional
+  public long transferEndTime; // optional
+  public String transferRate; // optional
+  public org.apache.airavata.model.application.io.InputDataObjectType processInput; // optional
+  public org.apache.airavata.model.application.io.OutputDataObjectType processOutput; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    SOURCE((short)1, "source"),
+    DESTINATION((short)2, "destination"),
+    /**
+     * 
+     * @see DataStageType
+     */
+    TYPE((short)3, "type"),
+    TRANSFER_START_TIME((short)4, "transferStartTime"),
+    TRANSFER_END_TIME((short)5, "transferEndTime"),
+    TRANSFER_RATE((short)6, "transferRate"),
+    PROCESS_INPUT((short)7, "processInput"),
+    PROCESS_OUTPUT((short)8, "processOutput");
+
+    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: // SOURCE
+          return SOURCE;
+        case 2: // DESTINATION
+          return DESTINATION;
+        case 3: // TYPE
+          return TYPE;
+        case 4: // TRANSFER_START_TIME
+          return TRANSFER_START_TIME;
+        case 5: // TRANSFER_END_TIME
+          return TRANSFER_END_TIME;
+        case 6: // TRANSFER_RATE
+          return TRANSFER_RATE;
+        case 7: // PROCESS_INPUT
+          return PROCESS_INPUT;
+        case 8: // PROCESS_OUTPUT
+          return PROCESS_OUTPUT;
+        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 __TRANSFERSTARTTIME_ISSET_ID = 0;
+  private static final int __TRANSFERENDTIME_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.TRANSFER_START_TIME,_Fields.TRANSFER_END_TIME,_Fields.TRANSFER_RATE,_Fields.PROCESS_INPUT,_Fields.PROCESS_OUTPUT};
+  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.SOURCE, new org.apache.thrift.meta_data.FieldMetaData("source", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DESTINATION, new org.apache.thrift.meta_data.FieldMetaData("destination", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        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.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DataStageType.class)));
+    tmpMap.put(_Fields.TRANSFER_START_TIME, new org.apache.thrift.meta_data.FieldMetaData("transferStartTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.TRANSFER_END_TIME, new org.apache.thrift.meta_data.FieldMetaData("transferEndTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.TRANSFER_RATE, new org.apache.thrift.meta_data.FieldMetaData("transferRate", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROCESS_INPUT, new org.apache.thrift.meta_data.FieldMetaData("processInput", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.InputDataObjectType.class)));
+    tmpMap.put(_Fields.PROCESS_OUTPUT, new org.apache.thrift.meta_data.FieldMetaData("processOutput", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.OutputDataObjectType.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataStagingTaskModel.class, metaDataMap);
+  }
+
+  public DataStagingTaskModel() {
+  }
+
+  public DataStagingTaskModel(
+    String source,
+    String destination,
+    DataStageType type)
+  {
+    this();
+    this.source = source;
+    this.destination = destination;
+    this.type = type;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public DataStagingTaskModel(DataStagingTaskModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetSource()) {
+      this.source = other.source;
+    }
+    if (other.isSetDestination()) {
+      this.destination = other.destination;
+    }
+    if (other.isSetType()) {
+      this.type = other.type;
+    }
+    this.transferStartTime = other.transferStartTime;
+    this.transferEndTime = other.transferEndTime;
+    if (other.isSetTransferRate()) {
+      this.transferRate = other.transferRate;
+    }
+    if (other.isSetProcessInput()) {
+      this.processInput = new org.apache.airavata.model.application.io.InputDataObjectType(other.processInput);
+    }
+    if (other.isSetProcessOutput()) {
+      this.processOutput = new org.apache.airavata.model.application.io.OutputDataObjectType(other.processOutput);
+    }
+  }
+
+  public DataStagingTaskModel deepCopy() {
+    return new DataStagingTaskModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.source = null;
+    this.destination = null;
+    this.type = null;
+    setTransferStartTimeIsSet(false);
+    this.transferStartTime = 0;
+    setTransferEndTimeIsSet(false);
+    this.transferEndTime = 0;
+    this.transferRate = null;
+    this.processInput = null;
+    this.processOutput = null;
+  }
+
+  public String getSource() {
+    return this.source;
+  }
+
+  public DataStagingTaskModel setSource(String source) {
+    this.source = source;
+    return this;
+  }
+
+  public void unsetSource() {
+    this.source = null;
+  }
+
+  /** Returns true if field source is set (has been assigned a value) and false otherwise */
+  public boolean isSetSource() {
+    return this.source != null;
+  }
+
+  public void setSourceIsSet(boolean value) {
+    if (!value) {
+      this.source = null;
+    }
+  }
+
+  public String getDestination() {
+    return this.destination;
+  }
+
+  public DataStagingTaskModel setDestination(String destination) {
+    this.destination = destination;
+    return this;
+  }
+
+  public void unsetDestination() {
+    this.destination = null;
+  }
+
+  /** Returns true if field destination is set (has been assigned a value) and false otherwise */
+  public boolean isSetDestination() {
+    return this.destination != null;
+  }
+
+  public void setDestinationIsSet(boolean value) {
+    if (!value) {
+      this.destination = null;
+    }
+  }
+
+  /**
+   * 
+   * @see DataStageType
+   */
+  public DataStageType getType() {
+    return this.type;
+  }
+
+  /**
+   * 
+   * @see DataStageType
+   */
+  public DataStagingTaskModel setType(DataStageType type) {
+    this.type = type;
+    return this;
+  }
+
+  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 long getTransferStartTime() {
+    return this.transferStartTime;
+  }
+
+  public DataStagingTaskModel setTransferStartTime(long transferStartTime) {
+    this.transferStartTime = transferStartTime;
+    setTransferStartTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetTransferStartTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TRANSFERSTARTTIME_ISSET_ID);
+  }
+
+  /** Returns true if field transferStartTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetTransferStartTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __TRANSFERSTARTTIME_ISSET_ID);
+  }
+
+  public void setTransferStartTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TRANSFERSTARTTIME_ISSET_ID, value);
+  }
+
+  public long getTransferEndTime() {
+    return this.transferEndTime;
+  }
+
+  public DataStagingTaskModel setTransferEndTime(long transferEndTime) {
+    this.transferEndTime = transferEndTime;
+    setTransferEndTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetTransferEndTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TRANSFERENDTIME_ISSET_ID);
+  }
+
+  /** Returns true if field transferEndTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetTransferEndTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __TRANSFERENDTIME_ISSET_ID);
+  }
+
+  public void setTransferEndTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TRANSFERENDTIME_ISSET_ID, value);
+  }
+
+  public String getTransferRate() {
+    return this.transferRate;
+  }
+
+  public DataStagingTaskModel setTransferRate(String transferRate) {
+    this.transferRate = transferRate;
+    return this;
+  }
+
+  public void unsetTransferRate() {
+    this.transferRate = null;
+  }
+
+  /** Returns true if field transferRate is set (has been assigned a value) and false otherwise */
+  public boolean isSetTransferRate() {
+    return this.transferRate != null;
+  }
+
+  public void setTransferRateIsSet(boolean value) {
+    if (!value) {
+      this.transferRate = null;
+    }
+  }
+
+  public org.apache.airavata.model.application.io.InputDataObjectType getProcessInput() {
+    return this.processInput;
+  }
+
+  public DataStagingTaskModel setProcessInput(org.apache.airavata.model.application.io.InputDataObjectType processInput) {
+    this.processInput = processInput;
+    return this;
+  }
+
+  public void unsetProcessInput() {
+    this.processInput = null;
+  }
+
+  /** Returns true if field processInput is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessInput() {
+    return this.processInput != null;
+  }
+
+  public void setProcessInputIsSet(boolean value) {
+    if (!value) {
+      this.processInput = null;
+    }
+  }
+
+  public org.apache.airavata.model.application.io.OutputDataObjectType getProcessOutput() {
+    return this.processOutput;
+  }
+
+  public DataStagingTaskModel setProcessOutput(org.apache.airavata.model.application.io.OutputDataObjectType processOutput) {
+    this.processOutput = processOutput;
+    return this;
+  }
+
+  public void unsetProcessOutput() {
+    this.processOutput = null;
+  }
+
+  /** Returns true if field processOutput is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessOutput() {
+    return this.processOutput != null;
+  }
+
+  public void setProcessOutputIsSet(boolean value) {
+    if (!value) {
+      this.processOutput = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case SOURCE:
+      if (value == null) {
+        unsetSource();
+      } else {
+        setSource((String)value);
+      }
+      break;
+
+    case DESTINATION:
+      if (value == null) {
+        unsetDestination();
+      } else {
+        setDestination((String)value);
+      }
+      break;
+
+    case TYPE:
+      if (value == null) {
+        unsetType();
+      } else {
+        setType((DataStageType)value);
+      }
+      break;
+
+    case TRANSFER_START_TIME:
+      if (value == null) {
+        unsetTransferStartTime();
+      } else {
+        setTransferStartTime((Long)value);
+      }
+      break;
+
+    case TRANSFER_END_TIME:
+      if (value == null) {
+        unsetTransferEndTime();
+      } else {
+        setTransferEndTime((Long)value);
+      }
+      break;
+
+    case TRANSFER_RATE:
+      if (value == null) {
+        unsetTransferRate();
+      } else {
+        setTransferRate((String)value);
+      }
+      break;
+
+    case PROCESS_INPUT:
+      if (value == null) {
+        unsetProcessInput();
+      } else {
+        setProcessInput((org.apache.airavata.model.application.io.InputDataObjectType)value);
+      }
+      break;
+
+    case PROCESS_OUTPUT:
+      if (value == null) {
+        unsetProcessOutput();
+      } else {
+        setProcessOutput((org.apache.airavata.model.application.io.OutputDataObjectType)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case SOURCE:
+      return getSource();
+
+    case DESTINATION:
+      return getDestination();
+
+    case TYPE:
+      return getType();
+
+    case TRANSFER_START_TIME:
+      return Long.valueOf(getTransferStartTime());
+
+    case TRANSFER_END_TIME:
+      return Long.valueOf(getTransferEndTime());
+
+    case TRANSFER_RATE:
+      return getTransferRate();
+
+    case PROCESS_INPUT:
+      return getProcessInput();
+
+    case PROCESS_OUTPUT:
+      return getProcessOutput();
+
+    }
+    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 SOURCE:
+      return isSetSource();
+    case DESTINATION:
+      return isSetDestination();
+    case TYPE:
+      return isSetType();
+    case TRANSFER_START_TIME:
+      return isSetTransferStartTime();
+    case TRANSFER_END_TIME:
+      return isSetTransferEndTime();
+    case TRANSFER_RATE:
+      return isSetTransferRate();
+    case PROCESS_INPUT:
+      return isSetProcessInput();
+    case PROCESS_OUTPUT:
+      return isSetProcessOutput();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof DataStagingTaskModel)
+      return this.equals((DataStagingTaskModel)that);
+    return false;
+  }
+
+  public boolean equals(DataStagingTaskModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_source = true && this.isSetSource();
+    boolean that_present_source = true && that.isSetSource();
+    if (this_present_source || that_present_source) {
+      if (!(this_present_source && that_present_source))
+        return false;
+      if (!this.source.equals(that.source))
+        return false;
+    }
+
+    boolean this_present_destination = true && this.isSetDestination();
+    boolean that_present_destination = true && that.isSetDestination();
+    if (this_present_destination || that_present_destination) {
+      if (!(this_present_destination && that_present_destination))
+        return false;
+      if (!this.destination.equals(that.destination))
+        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_transferStartTime = true && this.isSetTransferStartTime();
+    boolean that_present_transferStartTime = true && that.isSetTransferStartTime();
+    if (this_present_transferStartTime || that_present_transferStartTime) {
+      if (!(this_present_transferStartTime && that_present_transferStartTime))
+        return false;
+      if (this.transferStartTime != that.transferStartTime)
+        return false;
+    }
+
+    boolean this_present_transferEndTime = true && this.isSetTransferEndTime();
+    boolean that_present_transferEndTime = true && that.isSetTransferEndTime();
+    if (this_present_transferEndTime || that_present_transferEndTime) {
+      if (!(this_present_transferEndTime && that_present_transferEndTime))
+        return false;
+      if (this.transferEndTime != that.transferEndTime)
+        return false;
+    }
+
+    boolean this_present_transferRate = true && this.isSetTransferRate();
+    boolean that_present_transferRate = true && that.isSetTransferRate();
+    if (this_present_transferRate || that_present_transferRate) {
+      if (!(this_present_transferRate && that_present_transferRate))
+        return false;
+      if (!this.transferRate.equals(that.transferRate))
+        return false;
+    }
+
+    boolean this_present_processInput = true && this.isSetProcessInput();
+    boolean that_present_processInput = true && that.isSetProcessInput();
+    if (this_present_processInput || that_present_processInput) {
+      if (!(this_present_processInput && that_present_processInput))
+        return false;
+      if (!this.processInput.equals(that.processInput))
+        return false;
+    }
+
+    boolean this_present_processOutput = true && this.isSetProcessOutput();
+    boolean that_present_processOutput = true && that.isSetProcessOutput();
+    if (this_present_processOutput || that_present_processOutput) {
+      if (!(this_present_processOutput && that_present_processOutput))
+        return false;
+      if (!this.processOutput.equals(that.processOutput))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_source = true && (isSetSource());
+    list.add(present_source);
+    if (present_source)
+      list.add(source);
+
+    boolean present_destination = true && (isSetDestination());
+    list.add(present_destination);
+    if (present_destination)
+      list.add(destination);
+
+    boolean present_type = true && (isSetType());
+    list.add(present_type);
+    if (present_type)
+      list.add(type.getValue());
+
+    boolean present_transferStartTime = true && (isSetTransferStartTime());
+    list.add(present_transferStartTime);
+    if (present_transferStartTime)
+      list.add(transferStartTime);
+
+    boolean present_transferEndTime = true && (isSetTransferEndTime());
+    list.add(present_transferEndTime);
+    if (present_transferEndTime)
+      list.add(transferEndTime);
+
+    boolean present_transferRate = true && (isSetTransferRate());
+    list.add(present_transferRate);
+    if (present_transferRate)
+      list.add(transferRate);
+
+    boolean present_processInput = true && (isSetProcessInput());
+    list.add(present_processInput);
+    if (present_processInput)
+      list.add(processInput);
+
+    boolean present_processOutput = true && (isSetProcessOutput());
+    list.add(present_processOutput);
+    if (present_processOutput)
+      list.add(processOutput);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(DataStagingTaskModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetSource()).compareTo(other.isSetSource());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSource()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.source, other.source);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDestination()).compareTo(other.isSetDestination());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDestination()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.destination, other.destination);
+      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(isSetTransferStartTime()).compareTo(other.isSetTransferStartTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTransferStartTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transferStartTime, other.transferStartTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTransferEndTime()).compareTo(other.isSetTransferEndTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTransferEndTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transferEndTime, other.transferEndTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTransferRate()).compareTo(other.isSetTransferRate());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTransferRate()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transferRate, other.transferRate);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessInput()).compareTo(other.isSetProcessInput());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessInput()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processInput, other.processInput);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProcessOutput()).compareTo(other.isSetProcessOutput());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProcessOutput()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processOutput, other.processOutput);
+      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("DataStagingTaskModel(");
+    boolean first = true;
+
+    sb.append("source:");
+    if (this.source == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.source);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("destination:");
+    if (this.destination == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.destination);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("type:");
+    if (this.type == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.type);
+    }
+    first = false;
+    if (isSetTransferStartTime()) {
+      if (!first) sb.append(", ");
+      sb.append("transferStartTime:");
+      sb.append(this.transferStartTime);
+      first = false;
+    }
+    if (isSetTransferEndTime()) {
+      if (!first) sb.append(", ");
+      sb.append("transferEndTime:");
+      sb.append(this.transferEndTime);
+      first = false;
+    }
+    if (isSetTransferRate()) {
+      if (!first) sb.append(", ");
+      sb.append("transferRate:");
+      if (this.transferRate == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.transferRate);
+      }
+      first = false;
+    }
+    if (isSetProcessInput()) {
+      if (!first) sb.append(", ");
+      sb.append("processInput:");
+      if (this.processInput == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processInput);
+      }
+      first = false;
+    }
+    if (isSetProcessOutput()) {
+      if (!first) sb.append(", ");
+      sb.append("processOutput:");
+      if (this.processOutput == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.processOutput);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (source == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'source' was not present! Struct: " + toString());
+    }
+    if (destination == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'destination' was not present! Struct: " + toString());
+    }
+    if (type == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'type' was not present! Struct: " + toString());
+    }
+    // check for sub-struct validity
+    if (processInput != null) {
+      processInput.validate();
+    }
+    if (processOutput != null) {
+      processOutput.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 DataStagingTaskModelStandardSchemeFactory implements SchemeFactory {
+    public DataStagingTaskModelStandardScheme getScheme() {
+      return new DataStagingTaskModelStandardScheme();
+    }
+  }
+
+  private static class DataStagingTaskModelStandardScheme extends StandardScheme<DataStagingTaskModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, DataStagingTaskModel 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: // SOURCE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.source = iprot.readString();
+              struct.setSourceIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // DESTINATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.destination = iprot.readString();
+              struct.setDestinationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.type = org.apache.airavata.model.task.DataStageType.findByValue(iprot.readI32());
+              struct.setTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // TRANSFER_START_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.transferStartTime = iprot.readI64();
+              struct.setTransferStartTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // TRANSFER_END_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.transferEndTime = iprot.readI64();
+              struct.setTransferEndTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // TRANSFER_RATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.transferRate = iprot.readString();
+              struct.setTransferRateIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // PROCESS_INPUT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.processInput = new org.apache.airavata.model.application.io.InputDataObjectType();
+              struct.processInput.read(iprot);
+              struct.setProcessInputIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // PROCESS_OUTPUT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.processOutput = new org.apache.airavata.model.application.io.OutputDataObjectType();
+              struct.processOutput.read(iprot);
+              struct.setProcessOutputIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, DataStagingTaskModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.source != null) {
+        oprot.writeFieldBegin(SOURCE_FIELD_DESC);
+        oprot.writeString(struct.source);
+        oprot.writeFieldEnd();
+      }
+      if (struct.destination != null) {
+        oprot.writeFieldBegin(DESTINATION_FIELD_DESC);
+        oprot.writeString(struct.destination);
+        oprot.writeFieldEnd();
+      }
+      if (struct.type != null) {
+        oprot.writeFieldBegin(TYPE_FIELD_DESC);
+        oprot.writeI32(struct.type.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTransferStartTime()) {
+        oprot.writeFieldBegin(TRANSFER_START_TIME_FIELD_DESC);
+        oprot.writeI64(struct.transferStartTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetTransferEndTime()) {
+        oprot.writeFieldBegin(TRANSFER_END_TIME_FIELD_DESC);
+        oprot.writeI64(struct.transferEndTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.transferRate != null) {
+        if (struct.isSetTransferRate()) {
+          oprot.writeFieldBegin(TRANSFER_RATE_FIELD_DESC);
+          oprot.writeString(struct.transferRate);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.processInput != null) {
+        if (struct.isSetProcessInput()) {
+          oprot.writeFieldBegin(PROCESS_INPUT_FIELD_DESC);
+          struct.processInput.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.processOutput != null) {
+        if (struct.isSetProcessOutput()) {
+          oprot.writeFieldBegin(PROCESS_OUTPUT_FIELD_DESC);
+          struct.processOutput.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class DataStagingTaskModelTupleSchemeFactory implements SchemeFactory {
+    public DataStagingTaskModelTupleScheme getScheme() {
+      return new DataStagingTaskModelTupleScheme();
+    }
+  }
+
+  private static class DataStagingTaskModelTupleScheme extends TupleScheme<DataStagingTaskModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, DataStagingTaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.source);
+      oprot.writeString(struct.destination);
+      oprot.writeI32(struct.type.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetTransferStartTime()) {
+        optionals.set(0);
+      }
+      if (struct.isSetTransferEndTime()) {
+        optionals.set(1);
+      }
+      if (struct.isSetTransferRate()) {
+        optionals.set(2);
+      }
+      if (struct.isSetProcessInput()) {
+        optionals.set(3);
+      }
+      if (struct.isSetProcessOutput()) {
+        optionals.set(4);
+      }
+      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetTransferStartTime()) {
+        oprot.writeI64(struct.transferStartTime);
+      }
+      if (struct.isSetTransferEndTime()) {
+        oprot.writeI64(struct.transferEndTime);
+      }
+      if (struct.isSetTransferRate()) {
+        oprot.writeString(struct.transferRate);
+      }
+      if (struct.isSetProcessInput()) {
+        struct.processInput.write(oprot);
+      }
+      if (struct.isSetProcessOutput()) {
+        struct.processOutput.write(oprot);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, DataStagingTaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.source = iprot.readString();
+      struct.setSourceIsSet(true);
+      struct.destination = iprot.readString();
+      struct.setDestinationIsSet(true);
+      struct.type = org.apache.airavata.model.task.DataStageType.findByValue(iprot.readI32());
+      struct.setTypeIsSet(true);
+      BitSet incoming = iprot.readBitSet(5);
+      if (incoming.get(0)) {
+        struct.transferStartTime = iprot.readI64();
+        struct.setTransferStartTimeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.transferEndTime = iprot.readI64();
+        struct.setTransferEndTimeIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.transferRate = iprot.readString();
+        struct.setTransferRateIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.processInput = new org.apache.airavata.model.application.io.InputDataObjectType();
+        struct.processInput.read(iprot);
+        struct.setProcessInputIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.processOutput = new org.apache.airavata.model.application.io.OutputDataObjectType();
+        struct.processOutput.read(iprot);
+        struct.setProcessOutputIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
new file mode 100644
index 0000000..d211fb2
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
@@ -0,0 +1,529 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.task;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * EnvironmentSetupTaskModel: A structure holding the environment creation task details
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class EnvironmentSetupTaskModel implements org.apache.thrift.TBase<EnvironmentSetupTaskModel, EnvironmentSetupTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<EnvironmentSetupTaskModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EnvironmentSetupTaskModel");
+
+  private static final org.apache.thrift.protocol.TField LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("location", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("protocol", org.apache.thrift.protocol.TType.I32, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new EnvironmentSetupTaskModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new EnvironmentSetupTaskModelTupleSchemeFactory());
+  }
+
+  public String location; // required
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol protocol; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    LOCATION((short)1, "location"),
+    /**
+     * 
+     * @see org.apache.airavata.model.data.movement.SecurityProtocol
+     */
+    PROTOCOL((short)2, "protocol");
+
+    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: // LOCATION
+          return LOCATION;
+        case 2: // PROTOCOL
+          return PROTOCOL;
+        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
+  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.LOCATION, new org.apache.thrift.meta_data.FieldMetaData("location", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("protocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.data.movement.SecurityProtocol.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(EnvironmentSetupTaskModel.class, metaDataMap);
+  }
+
+  public EnvironmentSetupTaskModel() {
+  }
+
+  public EnvironmentSetupTaskModel(
+    String location,
+    org.apache.airavata.model.data.movement.SecurityProtocol protocol)
+  {
+    this();
+    this.location = location;
+    this.protocol = protocol;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public EnvironmentSetupTaskModel(EnvironmentSetupTaskModel other) {
+    if (other.isSetLocation()) {
+      this.location = other.location;
+    }
+    if (other.isSetProtocol()) {
+      this.protocol = other.protocol;
+    }
+  }
+
+  public EnvironmentSetupTaskModel deepCopy() {
+    return new EnvironmentSetupTaskModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.location = null;
+    this.protocol = null;
+  }
+
+  public String getLocation() {
+    return this.location;
+  }
+
+  public EnvironmentSetupTaskModel setLocation(String location) {
+    this.location = location;
+    return this;
+  }
+
+  public void unsetLocation() {
+    this.location = null;
+  }
+
+  /** Returns true if field location is set (has been assigned a value) and false otherwise */
+  public boolean isSetLocation() {
+    return this.location != null;
+  }
+
+  public void setLocationIsSet(boolean value) {
+    if (!value) {
+      this.location = null;
+    }
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public org.apache.airavata.model.data.movement.SecurityProtocol getProtocol() {
+    return this.protocol;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.data.movement.SecurityProtocol
+   */
+  public EnvironmentSetupTaskModel setProtocol(org.apache.airavata.model.data.movement.SecurityProtocol protocol) {
+    this.protocol = protocol;
+    return this;
+  }
+
+  public void unsetProtocol() {
+    this.protocol = null;
+  }
+
+  /** Returns true if field protocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetProtocol() {
+    return this.protocol != null;
+  }
+
+  public void setProtocolIsSet(boolean value) {
+    if (!value) {
+      this.protocol = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case LOCATION:
+      if (value == null) {
+        unsetLocation();
+      } else {
+        setLocation((String)value);
+      }
+      break;
+
+    case PROTOCOL:
+      if (value == null) {
+        unsetProtocol();
+      } else {
+        setProtocol((org.apache.airavata.model.data.movement.SecurityProtocol)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case LOCATION:
+      return getLocation();
+
+    case PROTOCOL:
+      return getProtocol();
+
+    }
+    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 LOCATION:
+      return isSetLocation();
+    case PROTOCOL:
+      return isSetProtocol();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof EnvironmentSetupTaskModel)
+      return this.equals((EnvironmentSetupTaskModel)that);
+    return false;
+  }
+
+  public boolean equals(EnvironmentSetupTaskModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_location = true && this.isSetLocation();
+    boolean that_present_location = true && that.isSetLocation();
+    if (this_present_location || that_present_location) {
+      if (!(this_present_location && that_present_location))
+        return false;
+      if (!this.location.equals(that.location))
+        return false;
+    }
+
+    boolean this_present_protocol = true && this.isSetProtocol();
+    boolean that_present_protocol = true && that.isSetProtocol();
+    if (this_present_protocol || that_present_protocol) {
+      if (!(this_present_protocol && that_present_protocol))
+        return false;
+      if (!this.protocol.equals(that.protocol))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_location = true && (isSetLocation());
+    list.add(present_location);
+    if (present_location)
+      list.add(location);
+
+    boolean present_protocol = true && (isSetProtocol());
+    list.add(present_protocol);
+    if (present_protocol)
+      list.add(protocol.getValue());
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(EnvironmentSetupTaskModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetLocation()).compareTo(other.isSetLocation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLocation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.location, other.location);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProtocol()).compareTo(other.isSetProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.protocol, other.protocol);
+      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("EnvironmentSetupTaskModel(");
+    boolean first = true;
+
+    sb.append("location:");
+    if (this.location == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.location);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("protocol:");
+    if (this.protocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.protocol);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (location == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'location' was not present! Struct: " + toString());
+    }
+    if (protocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'protocol' was not present! 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 EnvironmentSetupTaskModelStandardSchemeFactory implements SchemeFactory {
+    public EnvironmentSetupTaskModelStandardScheme getScheme() {
+      return new EnvironmentSetupTaskModelStandardScheme();
+    }
+  }
+
+  private static class EnvironmentSetupTaskModelStandardScheme extends StandardScheme<EnvironmentSetupTaskModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, EnvironmentSetupTaskModel 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: // LOCATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.location = iprot.readString();
+              struct.setLocationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.protocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+              struct.setProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, EnvironmentSetupTaskModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.location != null) {
+        oprot.writeFieldBegin(LOCATION_FIELD_DESC);
+        oprot.writeString(struct.location);
+        oprot.writeFieldEnd();
+      }
+      if (struct.protocol != null) {
+        oprot.writeFieldBegin(PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.protocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class EnvironmentSetupTaskModelTupleSchemeFactory implements SchemeFactory {
+    public EnvironmentSetupTaskModelTupleScheme getScheme() {
+      return new EnvironmentSetupTaskModelTupleScheme();
+    }
+  }
+
+  private static class EnvironmentSetupTaskModelTupleScheme extends TupleScheme<EnvironmentSetupTaskModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, EnvironmentSetupTaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.location);
+      oprot.writeI32(struct.protocol.getValue());
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, EnvironmentSetupTaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.location = iprot.readString();
+      struct.setLocationIsSet(true);
+      struct.protocol = org.apache.airavata.model.data.movement.SecurityProtocol.findByValue(iprot.readI32());
+      struct.setProtocolIsSet(true);
+    }
+  }
+
+}
+


[06/65] [abbrv] airavata git commit: renaming the module

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileCollectionDao.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileCollectionDao.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileCollectionDao.java
new file mode 100644
index 0000000..4914933
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileCollectionDao.java
@@ -0,0 +1,93 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.dao;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.mongodb.*;
+import com.mongodb.util.JSON;
+import org.apache.airavata.data.manager.core.db.conversion.ModelConversionHelper;
+import org.apache.airavata.data.manager.core.db.utils.MongoUtils;
+import org.apache.airavata.data.manager.cpi.DataManagerConstants;
+import org.apache.airavata.model.data.replica.FileCollectionModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.UUID;
+
+public class FileCollectionDao {
+    private final static Logger logger = LoggerFactory.getLogger(FileCollectionDao.class);
+
+    private static final String FILE_COLLECTION_COLLECTION_NAME = "collection-models";
+    private DBCollection collection;
+    private ModelConversionHelper modelConversionHelper;
+
+    private static final String COLLECTION_ID = "collection_id";
+
+    public FileCollectionDao() throws IOException {
+        collection = MongoUtils.getFileManagerRegistry().getCollection(FILE_COLLECTION_COLLECTION_NAME);
+        modelConversionHelper = new ModelConversionHelper();
+        collection.dropIndexes();
+        initIndexes();
+    }
+
+    /**
+     * If indexes are already defined this will simply ignore them
+     */
+    private void initIndexes() {
+        collection.createIndex(new BasicDBObject(COLLECTION_ID, 1), new BasicDBObject("unique", true));
+    }
+
+    public String createFileCollection(FileCollectionModel fileCollectionModel) throws JsonProcessingException {
+        fileCollectionModel.setCollectionId(DataManagerConstants.AIRAVATA_COLLECTION_ID_PREFIX + UUID.randomUUID().toString());
+        WriteResult result = collection.insert((DBObject) JSON.parse(
+                modelConversionHelper.serializeObject(fileCollectionModel)));
+        logger.debug("No of inserted results " + result.getN());
+        return fileCollectionModel.getCollectionId();
+    }
+
+    public void updateFileCollection(FileCollectionModel fileCollectionModel) throws JsonProcessingException {
+        DBObject query = BasicDBObjectBuilder.start().add(
+                COLLECTION_ID, fileCollectionModel.getCollectionId()).get();
+        WriteResult result = collection.update(query, (DBObject) JSON.parse(
+                modelConversionHelper.serializeObject(fileCollectionModel)));
+        logger.debug("No of updated results " + result.getN());
+    }
+
+    public void deleteFileCollection(String collectionId){
+        DBObject query = BasicDBObjectBuilder.start().add(
+                COLLECTION_ID,collectionId).get();
+        WriteResult result = collection.remove(query);
+        logger.debug("No of removed file model requests " + result.getN());
+    }
+
+    public FileCollectionModel getFileCollection(String collectionId) throws IOException {
+
+        DBObject criteria = new BasicDBObject(COLLECTION_ID, collectionId);
+        DBObject doc = collection.findOne(criteria);
+        if (doc != null) {
+            String json = doc.toString();
+            return (FileCollectionModel) modelConversionHelper.deserializeObject(
+                    FileCollectionModel.class, json);
+        }
+        return null;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileDao.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileDao.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileDao.java
new file mode 100644
index 0000000..bb7ded7
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileDao.java
@@ -0,0 +1,93 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.dao;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.mongodb.*;
+import com.mongodb.util.JSON;
+import org.apache.airavata.data.manager.core.db.conversion.ModelConversionHelper;
+import org.apache.airavata.data.manager.core.db.utils.MongoUtils;
+import org.apache.airavata.data.manager.cpi.DataManagerConstants;
+import org.apache.airavata.model.data.replica.FileModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.UUID;
+
+public class FileDao {
+    private final static Logger logger = LoggerFactory.getLogger(FileDao.class);
+
+    private static final String FILE_MODELS_COLLECTION_NAME = "file-models";
+    private DBCollection collection;
+    private ModelConversionHelper modelConversionHelper;
+
+    private static final String FILE_ID = "file_id";
+
+    public FileDao() throws IOException {
+        collection = MongoUtils.getFileManagerRegistry().getCollection(FILE_MODELS_COLLECTION_NAME);
+        modelConversionHelper = new ModelConversionHelper();
+        collection.dropIndexes();
+        initIndexes();
+    }
+
+    /**
+     * If indexes are already defined this will simply ignore them
+     */
+    private void initIndexes() {
+        collection.createIndex(new BasicDBObject(FILE_ID, 1), new BasicDBObject("unique", true));
+    }
+
+    public String createFile(FileModel fileModel) throws JsonProcessingException {
+        fileModel.setFileId(DataManagerConstants.AIRAVATA_FILE_ID_PREFIX + UUID.randomUUID().toString());
+        WriteResult result = collection.insert((DBObject) JSON.parse(
+                modelConversionHelper.serializeObject(fileModel)));
+        logger.debug("No of inserted results " + result.getN());
+        return fileModel.getFileId();
+    }
+
+    public void updateFile(FileModel fileModel) throws JsonProcessingException {
+        DBObject query = BasicDBObjectBuilder.start().add(
+                FILE_ID, fileModel.getFileId()).get();
+        WriteResult result = collection.update(query, (DBObject) JSON.parse(
+                modelConversionHelper.serializeObject(fileModel)));
+        logger.debug("No of updated results " + result.getN());
+    }
+
+    public void deleteFile(String fileId){
+        DBObject query = BasicDBObjectBuilder.start().add(
+                FILE_ID,fileId).get();
+        WriteResult result = collection.remove(query);
+        logger.debug("No of removed file model requests " + result.getN());
+    }
+
+    public FileModel getFile(String fileId) throws IOException {
+
+        DBObject criteria = new BasicDBObject(FILE_ID, fileId);
+        DBObject doc = collection.findOne(criteria);
+        if (doc != null) {
+            String json = doc.toString();
+            return (FileModel) modelConversionHelper.deserializeObject(
+                    FileModel.class, json);
+        }
+        return null;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileTransferRequestDao.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileTransferRequestDao.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileTransferRequestDao.java
new file mode 100644
index 0000000..92cae27
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/FileTransferRequestDao.java
@@ -0,0 +1,92 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.dao;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.mongodb.*;
+import com.mongodb.util.JSON;
+import org.apache.airavata.data.manager.core.db.conversion.ModelConversionHelper;
+import org.apache.airavata.data.manager.core.db.utils.MongoUtils;
+import org.apache.airavata.model.data.transfer.FileTransferRequestModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.UUID;
+
+public class FileTransferRequestDao {
+    private final static Logger logger = LoggerFactory.getLogger(FileTransferRequestDao.class);
+
+    private static final String FILE_TRANSFER_REQUESTS_COLLECTION_NAME = "file-transfer-requests";
+    private DBCollection collection;
+    private ModelConversionHelper modelConversionHelper;
+
+    private static final String TRANSFER_ID = "transfer_id";
+
+    public FileTransferRequestDao() throws IOException {
+        collection = MongoUtils.getFileManagerRegistry().getCollection(FILE_TRANSFER_REQUESTS_COLLECTION_NAME);
+        modelConversionHelper = new ModelConversionHelper();
+        collection.dropIndexes();
+        initIndexes();
+    }
+
+    /**
+     * If indexes are already defined this will simply ignore them
+     */
+    private void initIndexes() {
+        collection.createIndex(new BasicDBObject(TRANSFER_ID, 1), new BasicDBObject("unique", true));
+    }
+
+    public String createFileTransferRequest(FileTransferRequestModel fileTransferRequestModel) throws JsonProcessingException {
+        fileTransferRequestModel.setTransferId(UUID.randomUUID().toString());
+        WriteResult result = collection.insert((DBObject) JSON.parse(
+                modelConversionHelper.serializeObject(fileTransferRequestModel)));
+        logger.debug("No of inserted results " + result.getN());
+        return fileTransferRequestModel.getTransferId();
+    }
+
+    public void updateFileTransferRequest(FileTransferRequestModel fileTransferRequestModel) throws JsonProcessingException {
+        DBObject query = BasicDBObjectBuilder.start().add(
+                TRANSFER_ID, fileTransferRequestModel.getTransferId()).get();
+        WriteResult result = collection.update(query, (DBObject) JSON.parse(
+                modelConversionHelper.serializeObject(fileTransferRequestModel)));
+        logger.debug("No of updated results " + result.getN());
+    }
+
+    public void deleteFileTransferRequest(String trasnferId){
+        DBObject query = BasicDBObjectBuilder.start().add(
+                TRANSFER_ID, trasnferId).get();
+        WriteResult result = collection.remove(query);
+        logger.debug("No of removed file transfer requests " + result.getN());
+    }
+
+    public FileTransferRequestModel getFileTransferRequest(String transferId) throws IOException {
+
+        DBObject criteria = new BasicDBObject(TRANSFER_ID, transferId);
+        DBObject doc = collection.findOne(criteria);
+        if (doc != null) {
+            String json = doc.toString();
+            return (FileTransferRequestModel) modelConversionHelper.deserializeObject(
+                    FileTransferRequestModel.class, json);
+        }
+        return null;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/MetadataDao.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/MetadataDao.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/MetadataDao.java
new file mode 100644
index 0000000..c9c4951
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/dao/MetadataDao.java
@@ -0,0 +1,93 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.dao;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.mongodb.*;
+import com.mongodb.util.JSON;
+import org.apache.airavata.data.manager.core.db.conversion.ModelConversionHelper;
+import org.apache.airavata.data.manager.core.db.utils.MongoUtils;
+import org.apache.airavata.data.manager.cpi.DataManagerConstants;
+import org.apache.airavata.model.data.metadata.MetadataModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.UUID;
+
+public class MetadataDao {
+    private final static Logger logger = LoggerFactory.getLogger(MetadataDao.class);
+
+    private static final String METADATA_COLLECTION_NAME = "metadata-models";
+    private DBCollection collection;
+    private ModelConversionHelper modelConversionHelper;
+
+    private static final String METADATA_ID = "metadata_id";
+
+    public MetadataDao() throws IOException {
+        collection = MongoUtils.getFileManagerRegistry().getCollection(METADATA_COLLECTION_NAME);
+        modelConversionHelper = new ModelConversionHelper();
+        collection.dropIndexes();
+        initIndexes();
+    }
+
+    /**
+     * If indexes are already defined this will simply ignore them
+     */
+    private void initIndexes() {
+        collection.createIndex(new BasicDBObject(METADATA_ID, 1), new BasicDBObject("unique", true));
+    }
+
+    public String createMetadata(MetadataModel metadataModel) throws JsonProcessingException {
+        metadataModel.setMetadataId(DataManagerConstants.AIRAVATA_METADATA_ID_PREFIX + UUID.randomUUID().toString());
+        WriteResult result = collection.insert((DBObject) JSON.parse(
+                modelConversionHelper.serializeObject(metadataModel)));
+        logger.debug("No of inserted results " + result.getN());
+        return metadataModel.getMetadataId();
+    }
+
+    public void updateMetadata(MetadataModel metadataModel) throws JsonProcessingException {
+        DBObject query = BasicDBObjectBuilder.start().add(
+                METADATA_ID, metadataModel.getMetadataId()).get();
+        WriteResult result = collection.update(query, (DBObject) JSON.parse(
+                modelConversionHelper.serializeObject(metadataModel)));
+        logger.debug("No of updated results " + result.getN());
+    }
+
+    public void deleteMetadata(String metadataId){
+        DBObject query = BasicDBObjectBuilder.start().add(
+                METADATA_ID,metadataId).get();
+        WriteResult result = collection.remove(query);
+        logger.debug("No of removed metadata model requests " + result.getN());
+    }
+
+    public MetadataModel getMetadata(String metadataId) throws IOException {
+
+        DBObject criteria = new BasicDBObject(METADATA_ID, metadataId);
+        DBObject doc = collection.findOne(criteria);
+        if (doc != null) {
+            String json = doc.toString();
+            return (MetadataModel) modelConversionHelper.deserializeObject(
+                    MetadataModel.class, json);
+        }
+        return null;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/utils/MongoUtils.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/utils/MongoUtils.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/utils/MongoUtils.java
new file mode 100644
index 0000000..28eb6f1
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/db/utils/MongoUtils.java
@@ -0,0 +1,69 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.db.utils;
+
+import org.apache.airavata.data.manager.core.utils.FileManagerConstants;
+import org.apache.airavata.data.manager.core.utils.FileManagerProperties;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.mongodb.DB;
+import com.mongodb.MongoClient;
+
+import java.io.IOException;
+
+public class MongoUtils {
+    private final static Logger logger = LoggerFactory.getLogger(MongoUtils.class);
+
+    private static int port;
+    private static String host;
+    private static MongoClient mongoClient = null;
+    private static DB fileManagerRegistry;
+    private static String FILE_MANAGER_REGISTRY_NAME;
+
+    public static MongoClient getMongoClient() throws IOException {
+        if (mongoClient == null) {
+            FileManagerProperties fileManagerProperties = FileManagerProperties.getInstance();
+            host = fileManagerProperties.getProperty(FileManagerConstants.MONGODB_HOST, "localhost");
+            port = Integer.parseInt(fileManagerProperties.getProperty(FileManagerConstants.MONGODB_PORT, "27017"));
+            FILE_MANAGER_REGISTRY_NAME = fileManagerProperties.getProperty(FileManagerConstants.MONGODB_DB_NAME,
+                    "file-manager-db");
+            mongoClient = new MongoClient(host, port);
+            logger.debug("New Mongo Client created with [" + host + "] and ["
+                    + port + "]");
+
+        }
+        return mongoClient;
+    }
+
+    public static DB getFileManagerRegistry() throws IOException {
+        if (fileManagerRegistry == null) {
+            fileManagerRegistry = getMongoClient().getDB(FILE_MANAGER_REGISTRY_NAME);
+        }
+        return fileManagerRegistry;
+    }
+
+    public static void dropFileManagerRegistry() throws IOException {
+        getMongoClient().dropDatabase(FILE_MANAGER_REGISTRY_NAME);
+        logger.debug("Dropped File Manager Registry");
+
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/RemoteStorageClient.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/RemoteStorageClient.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/RemoteStorageClient.java
new file mode 100644
index 0000000..d8d5139
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/RemoteStorageClient.java
@@ -0,0 +1,107 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client;
+
+import org.apache.airavata.model.data.transfer.LSEntryModel;
+
+import java.io.File;
+import java.util.List;
+
+public interface RemoteStorageClient {
+
+    /**
+     * Reads a remote file, write it to local temporary directory and returns a file pointer to it
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    File readFile(String filePath) throws Exception;
+
+    /**
+     * Writes the source file in the local storage to specified path in the remote storage
+     * @param sourceFile
+     * @return
+     * @throws Exception
+     */
+    void writeFile(File sourceFile, String filePath) throws Exception;
+
+    /**
+     * Returns a directory listing of the specified directory
+     * @param directoryPath
+     * @return
+     * @throws Exception
+     */
+    List<LSEntryModel> getDirectoryListing(String directoryPath) throws Exception;
+
+    /**
+     * Move the specified file from source to destination within the same storage resource
+     * @param currentPath
+     * @param newPath
+     * @throws Exception
+     */
+    void moveFile(String currentPath, String newPath) throws Exception;
+
+    /**
+     *
+     * @param sourcePath
+     * @param destinationPath
+     * @throws Exception
+     */
+    void copyFile(String sourcePath, String destinationPath) throws Exception;
+
+    /**
+     * Rename file with the given name
+     * @param filePath
+     * @param newFileName
+     * @throws Exception
+     */
+    void renameFile(String filePath, String newFileName) throws Exception;
+
+    /**
+     * Delete the specified file
+     * @param filePath
+     * @throws Exception
+     */
+    void deleteFile(String filePath) throws Exception;
+
+    /**
+     * Create new directory in the specified file
+     * @param newDirPath
+     * @throws Exception
+     */
+    void mkdir(String newDirPath) throws Exception;
+
+    /**
+     * Checks whether specified file exists in the remote storage system
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    boolean checkFileExists(String filePath) throws Exception;
+
+    /**
+     * Checks whether the given path is a directory
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    boolean checkIsDirectory(String filePath) throws Exception;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/ExecutionContext.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/ExecutionContext.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/ExecutionContext.java
new file mode 100644
index 0000000..903dec6
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/ExecutionContext.java
@@ -0,0 +1,184 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.gridftp;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Properties;
+
+@SuppressWarnings("UnusedDeclaration")
+public class ExecutionContext {
+
+    private String testingHost;
+
+    private String loneStarGridFTP;
+    private String rangerGridFTP;
+    private String trestlesGridFTP;
+
+    private String gridFTPServerSource;
+    private String sourceDataLocation;
+    private String gridFTPServerDestination;
+    private String destinationDataLocation;
+    private String uploadingFilePath;
+
+    public static final String PROPERTY_FILE = "airavata-myproxy-client.properties";
+
+    public ExecutionContext() throws IOException {
+        loadConfigurations();
+    }
+
+    private void loadConfigurations() throws IOException {
+        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+        InputStream propertyStream = classLoader.getResourceAsStream(PROPERTY_FILE);
+
+        Properties properties = new Properties();
+        if (propertyStream != null) {
+            properties.load(propertyStream);
+
+            String testingHost = properties.getProperty(GridFTPConstants.TESTINGHOST);
+
+            String loneStarGridFtp = properties.getProperty(GridFTPConstants.LONESTARGRIDFTPEPR);
+            String rangerGridFtp = properties.getProperty(GridFTPConstants.RANGERGRIDFTPEPR);
+            String trestlesGridFtp = properties.getProperty(GridFTPConstants.TRESTLESGRIDFTPEPR);
+
+            String gridFTPServerSource = properties.getProperty(GridFTPConstants.GRIDFTPSERVERSOURCE);
+            String gridFTPSourcePath = properties.getProperty(GridFTPConstants.GRIDFTPSOURCEPATH);
+            String gridFTPServerDestination = properties.getProperty(GridFTPConstants.GRIDFTPSERVERDEST);
+            String gridFTPDestinationPath = properties.getProperty(GridFTPConstants.GRIDFTPDESTPATH);
+            String gridFTPUploadingPath = properties.getProperty(GridFTPConstants.UPLOADING_FILE_PATH);
+
+            if (testingHost != null) {
+                this.testingHost = testingHost;
+            }
+
+            if (loneStarGridFtp != null) {
+                this.loneStarGridFTP = loneStarGridFtp;
+            }
+            if (rangerGridFtp != null) {
+                this.rangerGridFTP= rangerGridFtp;
+            }
+            if (trestlesGridFtp != null) {
+                this.trestlesGridFTP = trestlesGridFtp;
+            }
+
+            if (gridFTPServerSource != null && !gridFTPServerSource.isEmpty()) {
+                this.gridFTPServerSource = gridFTPServerSource;
+            }
+            if (gridFTPSourcePath != null && !gridFTPSourcePath.isEmpty()) {
+                this.sourceDataLocation = gridFTPSourcePath;
+            }
+            if (gridFTPServerDestination != null && !gridFTPServerDestination.isEmpty()) {
+                this.gridFTPServerDestination = gridFTPServerDestination;
+            }
+            if (gridFTPDestinationPath != null && !gridFTPDestinationPath.isEmpty()) {
+                this.destinationDataLocation = gridFTPDestinationPath;
+            }
+            if (gridFTPUploadingPath != null && !gridFTPUploadingPath.isEmpty()) {
+                this.uploadingFilePath = gridFTPUploadingPath;
+            }
+
+        }
+    }
+
+    public String getTestingHost() {
+        return testingHost;
+    }
+
+    public void setTestingHost(String testingHost) {
+        this.testingHost = testingHost;
+    }
+
+    public String getLoneStarGridFTP() {
+        return loneStarGridFTP;
+    }
+
+    public void setLoneStarGridFTP(String loneStarGridFTP) {
+        this.loneStarGridFTP = loneStarGridFTP;
+    }
+
+    public String getRangerGridFTP() {
+        return rangerGridFTP;
+    }
+
+    public void setRangerGridFTP(String rangerGridFTP) {
+        this.rangerGridFTP = rangerGridFTP;
+    }
+
+    public String getTrestlesGridFTP() {
+        return trestlesGridFTP;
+    }
+
+    public void setTrestlesGridFTP(String trestlesGridFTP) {
+        this.trestlesGridFTP = trestlesGridFTP;
+    }
+
+    public String getGridFTPServerSource() {
+        return gridFTPServerSource;
+    }
+
+    public void setGridFTPServerSource(String gridFTPServerSource) {
+        this.gridFTPServerSource = gridFTPServerSource;
+    }
+
+    public URI getSourceDataFileUri() throws URISyntaxException {
+        String file = gridFTPServerSource + getSourceDataLocation();
+        return new URI(file);
+    }
+
+    public URI getUploadingFilePathUri() throws URISyntaxException {
+        String file = gridFTPServerSource + getUploadingFilePath();
+        return new URI(file);
+    }
+
+    public String getUploadingFilePath() {
+        return uploadingFilePath;
+    }
+
+    public void setUploadingFilePath(String uploadingFilePath) {
+        this.uploadingFilePath = uploadingFilePath;
+    }
+
+    public String getSourceDataLocation() {
+        return sourceDataLocation;
+    }
+
+    public void setSourceDataLocation(String sourceDataLocation) {
+        this.sourceDataLocation = sourceDataLocation;
+    }
+
+    public String getGridFTPServerDestination() {
+        return gridFTPServerDestination;
+    }
+
+    public void setGridFTPServerDestination(String gridFTPServerDestination) {
+        this.gridFTPServerDestination = gridFTPServerDestination;
+    }
+
+    public String getDestinationDataLocation() {
+        return destinationDataLocation;
+    }
+
+    public void setDestinationDataLocation(String destinationDataLocation) {
+        this.destinationDataLocation = destinationDataLocation;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTP.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTP.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTP.java
new file mode 100644
index 0000000..37c4d21
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTP.java
@@ -0,0 +1,430 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.gridftp;
+
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.apache.log4j.Logger;
+import org.globus.ftp.DataChannelAuthentication;
+import org.globus.ftp.DataSourceStream;
+import org.globus.ftp.GridFTPClient;
+import org.globus.ftp.HostPort;
+import org.globus.ftp.Marker;
+import org.globus.ftp.MarkerListener;
+import org.globus.ftp.Session;
+import org.globus.ftp.exception.ClientException;
+import org.globus.ftp.exception.ServerException;
+import org.globus.gsi.gssapi.auth.HostAuthorization;
+import org.ietf.jgss.GSSCredential;
+
+/**
+ * GridFTP tools
+ */
+public class GridFTP {
+
+    public static final String GSIFTP_SCHEME = "gsiftp";
+    private static final Logger log = Logger.getLogger(GridFTP.class);
+
+    /**
+     * Make directory at remote location
+     *
+     * @param destURI Directory name and server location to create the directory.
+     * @param gssCred Credentials to authenticate with remote server.
+     * @throws ServerException If an error occurred while authenticating.
+     * @throws IOException If an error occurred while creating the directory.
+     */
+    public void makeDir(URI destURI, GSSCredential gssCred) throws Exception {
+        GridFTPClient destClient = null;
+        GridFTPContactInfo destHost = new GridFTPContactInfo(destURI.getHost(), destURI.getPort());
+        try {
+
+            String destPath = destURI.getPath();
+            log.info(("Creating Directory = " + destHost + "=" + destPath));
+
+            destClient = new GridFTPClient(destHost.hostName, destHost.port);
+
+            int tryCount = 0;
+            while (true) {
+                try {
+                    destClient.setAuthorization(new HostAuthorization("host"));
+                    destClient.authenticate(gssCred);
+                    destClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
+
+                    if (!destClient.exists(destPath)) {
+                        destClient.makeDir(destPath);
+                    }
+                    break;
+                } catch (ServerException e) {
+                    tryCount++;
+                    if (tryCount >= 3) {
+                        throw new Exception(e.getMessage(), e);
+                    }
+                    Thread.sleep(10000);
+                } catch (IOException e) {
+                    tryCount++;
+                    if (tryCount >= 3) {
+                        throw new Exception(e.getMessage(), e);
+                    }
+                    Thread.sleep(10000);
+                }
+            }
+        } catch (ServerException e) {
+            throw new Exception("Cannot Create GridFTP Client to:" + destHost.toString(), e);
+        } catch (IOException e) {
+            throw new Exception("Cannot Create GridFTP Client to:" + destHost.toString(), e);
+        } catch (InterruptedException e) {
+            throw new Exception("Internal Error cannot sleep", e);
+        } finally {
+            if (destClient != null) {
+                try {
+                    destClient.close();
+                } catch (Exception e) {
+                    log.info("Cannot close GridFTP client connection");
+                }
+            }
+        }
+    }
+
+    /**
+     * Upload file from stream
+     *
+     * @param destURI Name of the file to be uploaded.
+     * @param gsCredential Credentials to authenticate.
+     */
+    public void updateFile(URI destURI, GSSCredential gsCredential, InputStream io) throws Exception {
+        GridFTPClient ftpClient = null;
+        GridFTPContactInfo contactInfo = new GridFTPContactInfo(destURI.getHost(), destURI.getPort());
+
+        try {
+
+            String remoteFile = destURI.getPath();
+            log.info("The remote file is " + remoteFile);
+
+            log.info("Setup GridFTP Client");
+
+            ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
+            ftpClient.setAuthorization(new HostAuthorization("host"));
+            ftpClient.authenticate(gsCredential);
+            ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
+
+            log.info("Uploading file");
+
+            ftpClient.put(remoteFile, new DataSourceStream(io), new MarkerListener() {
+                public void markerArrived(Marker marker) {
+                }
+            });
+
+            log.info("Upload file to:" + remoteFile + " is done");
+
+        } catch (ServerException e) {
+            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
+        } catch (IOException e) {
+            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
+        } catch (ClientException e) {
+            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
+        } finally {
+            if (ftpClient != null) {
+                try {
+                    ftpClient.close();
+                } catch (Exception e) {
+                    log.info("Cannot close GridFTP client connection");
+                }
+            }
+        }
+    }
+
+    /**
+     * Upload file to remote location
+     *
+     * @param destURI Name of the file to be uploaded.
+     * @param gsCredential Credentials used to upload the file.
+     * @param localFile Local file to be uploaded.
+     */
+    public void updateFile(URI destURI, GSSCredential gsCredential, File localFile) throws Exception {
+        GridFTPClient ftpClient = null;
+        GridFTPContactInfo contactInfo = new GridFTPContactInfo(destURI.getHost(), destURI.getPort());
+        try {
+
+            String remoteFile = destURI.getPath();
+
+            log.info("The local temp file is " + localFile);
+            log.info("the remote file is " + remoteFile);
+
+            log.info("Setup GridFTP Client");
+
+            ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
+            ftpClient.setAuthorization(new HostAuthorization("host"));
+            ftpClient.authenticate(gsCredential);
+            ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
+
+            log.info("Uploading file");
+
+            ftpClient.put(localFile, remoteFile, false);
+
+
+            log.info("Upload file to:" + remoteFile + " is done");
+
+        } catch (ServerException e) {
+            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
+        } catch (IOException e) {
+            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
+        } catch (ClientException e) {
+            throw new Exception("Cannot upload file to GridFTP:" + contactInfo.toString(), e);
+        } finally {
+            if (ftpClient != null) {
+                try {
+                    ftpClient.close();
+                } catch (Exception e) {
+                    log.info("Cannot close GridFTP client connection");
+                }
+            }
+        }
+    }
+
+    /**
+     * Download File from remote location
+     *
+     * @param destURI  File to be downloaded.
+     * @param gsCredential To authenticate user to remote machine.
+     * @param localFile The downloaded file name.
+     */
+    public void downloadFile(URI destURI, GSSCredential gsCredential, File localFile) throws Exception {
+        GridFTPClient ftpClient = null;
+        GridFTPContactInfo contactInfo = new GridFTPContactInfo(destURI.getHost(), destURI.getPort());
+        try {
+            String remoteFile = destURI.getPath();
+
+            log.info("The local temp file is " + localFile);
+            log.info("the remote file is " + remoteFile);
+
+            log.info("Setup GridFTP Client");
+
+            ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
+            ftpClient.setAuthorization(new HostAuthorization("host"));
+            ftpClient.authenticate(gsCredential);
+            ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
+
+            log.info("Downloading file");
+
+            ftpClient.get(remoteFile, localFile);
+
+            log.info("Download file to:" + remoteFile + " is done");
+
+        } catch (ServerException e) {
+            throw new Exception("Cannot download file from GridFTP:" + contactInfo.toString(), e);
+        } catch (IOException e) {
+            throw new Exception("Cannot download file from GridFTP:" + contactInfo.toString(), e);
+        } catch (ClientException e) {
+            throw new Exception("Cannot download file from GridFTP:" + contactInfo.toString(), e);
+        } finally {
+            if (ftpClient != null) {
+                try {
+                    ftpClient.close();
+                } catch (Exception e) {
+                    log.info("Cannot close GridFTP client connection");
+                }
+            }
+        }
+    }
+
+    /**
+     * Checks whether files exists.
+     *
+     * @param destURI Name of the file to check existence.
+     * @param gsCredential Credentials to authenticate user.
+     */
+    public boolean exists(URI destURI, GSSCredential gsCredential) throws Exception {
+        GridFTPClient ftpClient = null;
+        GridFTPContactInfo contactInfo = new GridFTPContactInfo(destURI.getHost(), destURI.getPort());
+        try {
+            String remoteFile = destURI.getPath();
+
+            log.info("the remote file is " + remoteFile);
+
+            log.info("Setup GridFTP Client");
+
+            ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
+            ftpClient.setAuthorization(new HostAuthorization("host"));
+            ftpClient.authenticate(gsCredential);
+            ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
+
+            log.info("Checking whether file exists");
+
+            return ftpClient.exists(destURI.getPath());
+
+        } catch (ServerException e) {
+            throw new Exception("Cannot download file from GridFTP:" + contactInfo.toString(), e);
+        } catch (IOException e) {
+            throw new Exception("Cannot download file from GridFTP:" + contactInfo.toString(), e);
+        } finally {
+            if (ftpClient != null) {
+                try {
+                    ftpClient.close();
+                } catch (Exception e) {
+                    log.info("Cannot close GridFTP client connection");
+                }
+            }
+        }
+    }
+
+    /**
+     * Stream remote file
+     *
+     * @param destURI Remote file to be read.
+     * @param gsCredential Credentials to authenticate user.
+     * @param localFile Downloaded local file name.
+     * @return  The content of the downloaded file.
+     */
+    public String readRemoteFile(URI destURI, GSSCredential gsCredential, File localFile) throws Exception {
+        BufferedReader instream = null;
+        File localTempfile = null;
+        try {
+
+            if (localFile == null) {
+                localTempfile = File.createTempFile("stderr", "err");
+            } else {
+                localTempfile = localFile;
+            }
+
+            log.info("Loca temporary file:" + localTempfile);
+
+            downloadFile(destURI, gsCredential, localTempfile);
+
+            instream = new BufferedReader(new FileReader(localTempfile));
+            StringBuffer buff = new StringBuffer();
+            String temp = null;
+            while ((temp = instream.readLine()) != null) {
+                buff.append(temp);
+                buff.append(System.getProperty("line.separator"));
+            }
+
+            log.info("finish read file:" + localTempfile);
+
+            return buff.toString();
+        } catch (FileNotFoundException e) {
+            throw new Exception("Cannot read localfile file:" + localTempfile, e);
+        } catch (IOException e) {
+            throw new Exception("Cannot read localfile file:" + localTempfile, e);
+        } finally {
+            if (instream != null) {
+                try {
+                    instream.close();
+                } catch (Exception e) {
+                    log.info("Cannot close GridFTP client connection");
+                }
+            }
+        }
+    }
+
+    /**
+     * Transfer data from one GridFTp Endpoint to another GridFTP Endpoint
+     *
+     * @param srchost Source file and host.
+     * @param desthost Destination file and host.
+     * @param gssCred Credentials to be authenticate user.
+     * @param srcActive Tells source to be active. i.e. asking src to connect destination.
+     * @throws ServerException If an error occurred while transferring data.
+     * @throws ClientException If an error occurred while transferring data.
+     * @throws IOException If an error occurred while transferring data.
+     */
+    public void transfer(URI srchost, URI desthost, GSSCredential gssCred, boolean srcActive) throws Exception {
+        GridFTPClient destClient = null;
+        GridFTPClient srcClient = null;
+
+        try {
+            destClient = new GridFTPClient(desthost.getHost(), desthost.getPort());
+            destClient.setAuthorization(new HostAuthorization("host"));
+            destClient.authenticate(gssCred);
+            destClient.setType(Session.TYPE_IMAGE);
+
+            srcClient = new GridFTPClient(srchost.getHost(), srchost.getPort());
+            srcClient.setAuthorization(new HostAuthorization("host"));
+            srcClient.authenticate(gssCred);
+            srcClient.setType(Session.TYPE_IMAGE);
+
+            if (srcActive) {
+                log.info("Set src active");
+                HostPort hp = destClient.setPassive();
+                srcClient.setActive(hp);
+            } else {
+                log.info("Set dst active");
+                HostPort hp = srcClient.setPassive();
+                destClient.setActive(hp);
+            }
+
+            log.info("Start transfer file from GridFTP:" + srchost.toString() + " to " + desthost.toString());
+
+            /**
+             * Transfer a file. The transfer() function blocks until the transfer is complete.
+             */
+            srcClient.transfer(srchost.getPath(), destClient, desthost.getPath(), false, null);
+            if (srcClient.getSize(srchost.getPath()) == destClient.getSize(desthost.getPath())) {
+                log.info("CHECK SUM OK");
+            } else {
+                log.info("****CHECK SUM FAILED****");
+            }
+
+        } catch (ServerException e) {
+            throw new Exception("Cannot transfer file from GridFTP:" + srchost.toString() + " to "
+                    + desthost.toString(), e);
+        } catch (IOException e) {
+            throw new Exception("Cannot transfer file from GridFTP:" + srchost.toString() + " to "
+                    + desthost.toString(), e);
+        } catch (ClientException e) {
+            throw new Exception("Cannot transfer file from GridFTP:" + srchost.toString() + " to "
+                    + desthost.toString(), e);
+        } finally {
+            if (destClient != null) {
+                try {
+                    destClient.close();
+                } catch (Exception e) {
+                    log.info("Cannot close GridFTP client connection at Desitnation:" + desthost.toString());
+                }
+            }
+            if (srcClient != null) {
+                try {
+                    srcClient.close();
+                } catch (Exception e) {
+                    log.info("Cannot close GridFTP client connection at Source:" + srchost.toString());
+                }
+            }
+        }
+    }
+
+    public static URI createGsiftpURI(String host, String localPath) throws URISyntaxException {
+        StringBuffer buf = new StringBuffer();
+        if (!host.startsWith("gsiftp://"))
+            buf.append("gsiftp://");
+        buf.append(host);
+        if (!host.endsWith("/"))
+            buf.append("/");
+        buf.append(localPath);
+        return new URI(buf.toString());
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTPConstants.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTPConstants.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTPConstants.java
new file mode 100644
index 0000000..e41a266
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTPConstants.java
@@ -0,0 +1,45 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.gridftp;
+
+public class GridFTPConstants {
+
+    public static final String MYPROXY_SERVER = "myproxyServer";
+    public static final String MYPROXY_PORT = "myproxyPort";
+    public static final String MYPROXY_LIFETIME = "myproxy_lifetime";
+    public static final String MYPROXY_USERNAME = "myproxyUserName";
+    public static final String MYPROXY_PASSWD = "myproxyPasswd";
+    public static final String TRUSTED_CERTS_FILE = "trustedCertsFile";
+    public static final String HOSTCERTS_KEY_FILE = "hostcertsKeyFile";
+
+    public static final String TESTINGHOST = "testing.host";
+
+    public static final String LONESTARGRIDFTPEPR = "lonestar.gridftp.endpoint";
+    public static final String RANGERGRIDFTPEPR = "ranger.gridftp.endpoint";
+    public static final String TRESTLESGRIDFTPEPR = "trestles.gridftp.endpoint";
+
+    public static final String GRIDFTPSERVERSOURCE = "gridftpserverSource";
+    public static final String GRIDFTPSOURCEPATH = "gridftpSourcePath";
+    public static final String GRIDFTPSERVERDEST = "gridftpserverDest";
+    public static final String GRIDFTPDESTPATH = "gridftpDestPath";
+    public static final String UPLOADING_FILE_PATH = "gridftpUploadingFilePath";
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTPContactInfo.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTPContactInfo.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTPContactInfo.java
new file mode 100644
index 0000000..d6b6e37
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/GridFTPContactInfo.java
@@ -0,0 +1,60 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.gridftp;
+
+/**
+* Class represents GridFTP Endpoint
+*
+*/
+public class GridFTPContactInfo {
+    public static final int DEFAULT_GSI_FTP_PORT = 2811;
+    public String hostName;
+    public int port;
+
+    public GridFTPContactInfo(String hostName, int port) {
+        if (port <= 0 || port == 80) {
+            port = DEFAULT_GSI_FTP_PORT;
+        }
+        this.hostName = hostName;
+        this.port = port;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj instanceof GridFTPContactInfo) {
+            return hostName.equals(((GridFTPContactInfo) obj).hostName) && port == ((GridFTPContactInfo) obj).port;
+        } else {
+            return false;
+        }
+    }
+
+    @Override
+    public int hashCode() {
+        return hostName.hashCode();
+    }
+
+    @Override
+    public String toString() {
+        StringBuffer buf = new StringBuffer();
+        buf.append(hostName).append(":").append(port);
+        return buf.toString();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/CertificateManager.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/CertificateManager.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/CertificateManager.java
new file mode 100644
index 0000000..7e69b9a
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/CertificateManager.java
@@ -0,0 +1,87 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.gridftp.myproxy;
+
+import java.io.InputStream;
+import java.security.GeneralSecurityException;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.globus.gsi.util.CertificateLoadUtil;
+import org.globus.util.ClassLoaderUtils;
+
+public class CertificateManager {
+
+    private static X509Certificate[] trustedCertificates;
+
+    /**
+     * Load CA certificates from a file included in the XBaya jar.
+     *
+     * @return The trusted certificates.
+     */
+    public static X509Certificate[] getTrustedCertificate(String certificate) {
+        if (trustedCertificates != null) {
+            return trustedCertificates;
+        }
+
+        List<X509Certificate> extremeTrustedCertificates = getTrustedCertificates(certificate);
+
+        List<X509Certificate> allTrustedCertificates = new ArrayList<X509Certificate>();
+        allTrustedCertificates.addAll(extremeTrustedCertificates);
+
+        trustedCertificates = allTrustedCertificates.toArray(new X509Certificate[allTrustedCertificates.size()]);
+        return trustedCertificates;
+    }
+
+    private static List<X509Certificate> getTrustedCertificates(String pass) {
+        // ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); //**
+        // InputStream stream = classLoader.getResourceAsStream(pass); //**
+        InputStream stream = ClassLoaderUtils.getResourceAsStream(pass); // **
+        if (stream == null) {
+            throw new RuntimeException("Failed to get InputStream to " + pass);
+        }
+        return readTrustedCertificates(stream);
+    }
+
+    /**
+     * @param stream
+     * @return List of X509Certificate
+     */
+    public static List<X509Certificate> readTrustedCertificates(InputStream stream) {
+        ArrayList<X509Certificate> certificates = new ArrayList<X509Certificate>();
+        while (true) {
+            X509Certificate certificate;
+            try {
+                certificate = CertificateLoadUtil.loadCertificate(stream);
+            } catch (GeneralSecurityException e) {
+                String message = "Certificates are invalid";
+                throw new RuntimeException(message, e);
+            }
+            if (certificate == null) {
+                break;
+            }
+            certificates.add(certificate);
+        }
+        return certificates;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/MyProxyCredentials.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/MyProxyCredentials.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/MyProxyCredentials.java
new file mode 100644
index 0000000..cbb3f9e
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/MyProxyCredentials.java
@@ -0,0 +1,296 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.gridftp.myproxy;
+
+import java.io.*;
+import java.security.PrivateKey;
+import java.security.cert.X509Certificate;
+
+import org.apache.log4j.Logger;
+import org.globus.gsi.X509Credential;
+import org.globus.gsi.gssapi.GlobusGSSCredentialImpl;
+import org.globus.myproxy.GetParams;
+import org.globus.myproxy.MyProxy;
+import org.ietf.jgss.GSSCredential;
+
+/**
+ * Class to manipulate my proxy credentials. Responsible for retrieving, creating
+ * my proxy credentials.
+ */
+public class MyProxyCredentials implements Serializable {
+
+    private static final long serialVersionUID = -2471014486509046212L;
+    protected String myProxyHostname;
+    protected String myProxyUserName;
+    protected String myProxyPassword;
+    protected int myProxyPortNumber;
+    protected int myProxyLifeTime = 14400;
+    protected String trustedCertificatePath;
+
+    private static final Logger log = Logger.getLogger(MyProxyCredentials.class);
+
+    /**
+     * Default constructor.
+     */
+    public MyProxyCredentials() {
+    }
+
+    /**
+     * Constructor.
+     * @param myProxyServer Ip address of the my proxy server.
+     * @param myProxyPort Port which my proxy server is running.
+     * @param myProxyUsername User name to connect to my proxy server.
+     * @param myProxyPassPhrase Password for my proxy authentication.
+     * @param myProxyLifetime Lifetime of the retrieving credentials.
+     * @param trustedCerts Trusted certificate location for SSL communication.
+     */
+    public MyProxyCredentials(String myProxyServer, int myProxyPort, String myProxyUsername, String myProxyPassPhrase,
+                              int myProxyLifetime, String trustedCerts) {
+
+        this.myProxyHostname = myProxyServer;
+        this.myProxyPortNumber = myProxyPort;
+        this.myProxyUserName = myProxyUsername;
+        this.myProxyPassword = myProxyPassPhrase;
+        this.myProxyLifeTime = myProxyLifetime;
+        this.trustedCertificatePath = trustedCerts;
+
+        init();
+
+    }
+
+    /**
+     * Gets the default proxy certificate.
+     * @return Default my proxy credentials.
+     * @throws Exception If an error occurred while retrieving credentials.
+     */
+    public GSSCredential getDefaultCredentials() throws Exception {
+        MyProxy myproxy = new MyProxy(this.myProxyHostname, this.myProxyPortNumber);
+        return myproxy.get(this.myProxyUserName, this.myProxyPassword, this.myProxyLifeTime);
+    }
+
+    /**
+     * Gets a new proxy certificate given current credentials.
+     * @param credential The new proxy credentials.
+     * @return The short lived GSSCredentials
+     * @throws Exception If an error is occurred while retrieving credentials.
+     */
+    public GSSCredential getProxyCredentials(GSSCredential credential) throws Exception {
+
+        MyProxy myproxy = new MyProxy(this.myProxyHostname, this.myProxyPortNumber);
+        return myproxy.get(credential, this.myProxyUserName, this.myProxyPassword, this.myProxyLifeTime);
+    }
+
+    /**
+     * Renew GSSCredentials.
+     * @param credential Credentials to be renewed.
+     * @return  Renewed credentials.
+     * @throws Exception If an error occurred while renewing credentials.
+     */
+    public GSSCredential renewCredentials(GSSCredential credential) throws Exception {
+        MyProxy myproxy = new MyProxy(this.myProxyHostname, this.myProxyPortNumber);
+
+        GetParams getParams = new GetParams();
+        getParams.setAuthzCreds(credential);
+        getParams.setUserName(this.myProxyUserName);
+        getParams.setLifetime(this.getMyProxyLifeTime());
+
+        return myproxy.get(credential, getParams);
+    }
+
+    public GSSCredential createCredentials(X509Certificate[] x509Certificates, PrivateKey privateKey) throws Exception {
+        X509Credential newCredential = new X509Credential(privateKey,
+                x509Certificates);
+
+        return new GlobusGSSCredentialImpl(newCredential,
+                GSSCredential.INITIATE_AND_ACCEPT);
+
+    }
+
+    public GSSCredential createCredentials(X509Certificate x509Certificate, PrivateKey privateKey) throws Exception {
+
+        X509Certificate[] x509Certificates = new X509Certificate[1];
+        x509Certificates[0] = x509Certificate;
+
+        return createCredentials(x509Certificates, privateKey);
+
+    }
+
+    public void init() {
+        validateTrustedCertificatePath();
+    }
+
+    private void validateTrustedCertificatePath() {
+
+        File file = new File(this.trustedCertificatePath);
+
+        if (!file.exists() || !file.canRead()) {
+            File f = new File(".");
+            System.out.println("Current directory " + f.getAbsolutePath());
+            throw new RuntimeException("Cannot read trusted certificate path " + this.trustedCertificatePath);
+        } else {
+            System.setProperty("X509_CERT_DIR", file.getAbsolutePath());
+        }
+    }
+
+
+    /**
+     * @return the myProxyHostname
+     */
+    public String getMyProxyHostname() {
+        return myProxyHostname;
+    }
+
+    /**
+     * @param myProxyHostname the myProxyHostname to set
+     */
+    public void setMyProxyHostname(String myProxyHostname) {
+        this.myProxyHostname = myProxyHostname;
+    }
+
+    /**
+     * @return the myProxyUserName
+     */
+    public String getMyProxyUserName() {
+        return myProxyUserName;
+    }
+
+    /**
+     * @param myProxyUserName the myProxyUserName to set
+     */
+    public void setMyProxyUserName(String myProxyUserName) {
+        this.myProxyUserName = myProxyUserName;
+    }
+
+    /**
+     * @return the myProxyPassword
+     */
+    public String getMyProxyPassword() {
+        return myProxyPassword;
+    }
+
+    /**
+     * @param myProxyPassword the myProxyPassword to set
+     */
+    public void setMyProxyPassword(String myProxyPassword) {
+        this.myProxyPassword = myProxyPassword;
+    }
+
+    /**
+     * @return the myProxyLifeTime
+     */
+    public int getMyProxyLifeTime() {
+        return myProxyLifeTime;
+    }
+
+    /**
+     * @param myProxyLifeTime the myProxyLifeTime to set
+     */
+    public void setMyProxyLifeTime(int myProxyLifeTime) {
+        this.myProxyLifeTime = myProxyLifeTime;
+    }
+
+    /**
+     * @return the myProxyPortNumber
+     */
+    public int getMyProxyPortNumber() {
+        return myProxyPortNumber;
+    }
+
+    /**
+     * @param myProxyPortNumber the myProxyPortNumber to set
+     */
+    public void setMyProxyPortNumber(int myProxyPortNumber) {
+        this.myProxyPortNumber = myProxyPortNumber;
+    }
+
+    public String getTrustedCertificatePath() {
+        return trustedCertificatePath;
+    }
+
+    public void setTrustedCertificatePath(String trustedCertificatePath) {
+        this.trustedCertificatePath = trustedCertificatePath;
+    }
+
+    /**
+     * @return the portalUserName
+     */
+    /*public String getPortalUserName() {
+        return portalUserName;
+    }*/
+
+    /**
+     * @param portalUserName
+     *            the portalUserName to set
+     */
+    /*public void setPortalUserName(String portalUserName) {
+        this.portalUserName = portalUserName;
+    }*/
+
+    /**
+     * Returns the initialized.
+     *
+     * @return The initialized
+     */
+    /*public boolean isInitialized() {
+        return this.initialized;
+    }*/
+
+    /**
+     * Sets initialized.
+     *
+     * @param initialized
+     *            The initialized to set.
+     */
+   /* public void setInitialized(boolean initialized) {
+        this.initialized = initialized;
+    }*/
+
+    /**
+     * @param hostcertsKeyFile
+     *            the hostcertsKeyFile to set
+     */
+    /*public void setHostcertsKeyFile(String hostcertsKeyFile) {
+        this.hostcertsKeyFile = hostcertsKeyFile;
+    }*/
+
+    /**
+     * @return the hostcertsKeyFile
+     */
+    /*public String getHostcertsKeyFile() {
+        return hostcertsKeyFile;
+    }*/
+
+    /**
+     * @param trustedCertsFile
+     *            the trustedCertsFile to set
+     */
+    /*public void setTrustedCertsFile(String trustedCertsFile) {
+        this.trustedCertsFile = trustedCertsFile;
+    }*/
+
+    /**
+     * @return the trustedCertsFile
+     */
+    /*public String getTrustedCertsFile() {
+        return trustedCertsFile;
+    }*/
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/SecurityContext.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/SecurityContext.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/SecurityContext.java
new file mode 100644
index 0000000..f45d32f
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/gridftp/myproxy/SecurityContext.java
@@ -0,0 +1,211 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.gridftp.myproxy;
+
+import java.io.File;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.apache.airavata.data.manager.core.remote.client.gridftp.GridFTPConstants;
+import org.apache.log4j.Logger;
+import org.globus.myproxy.MyProxy;
+import org.ietf.jgss.GSSCredential;
+
+public class SecurityContext {
+
+    /**
+     *
+     */
+    public static final String GRIDFTP_CLIENT_PROPERTY = "gridftp-client.properties";
+    private Properties properties;
+    protected GSSCredential gssCredential;
+
+    private MyProxyCredentials myProxyCredentials;
+    private static final Logger log = Logger.getLogger(SecurityContext.class);
+
+    private String userName = null;
+    private String password = null;
+
+    /**
+     *
+     * Constructs a ApplicationGlobalContext.
+     *
+     * @throws Exception
+     */
+
+    public SecurityContext() throws Exception {
+        log.setLevel(org.apache.log4j.Level.INFO);
+        loadConfiguration();
+
+    }
+
+    public SecurityContext(String user, String pwd) throws Exception {
+
+        this.userName = user;
+        this.password = pwd;
+
+        log.setLevel(org.apache.log4j.Level.INFO);
+        loadConfiguration();
+
+    }
+
+    /**
+     *
+     * @throws Exception
+     */
+    public void login() throws Exception {
+        gssCredential = myProxyCredentials.getDefaultCredentials();
+    }
+
+    public GSSCredential getProxyCredentials(GSSCredential credential) throws Exception {
+        return myProxyCredentials.getProxyCredentials(credential);
+    }
+
+    public GSSCredential renewCredentials(GSSCredential credential) throws Exception {
+        return myProxyCredentials.renewCredentials(credential);
+    }
+
+    public static String getProperty(String name) {
+        try {
+            SecurityContext context = new SecurityContext();
+            return context.getProperties().getProperty(name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+
+    }
+
+    /**
+     * Load the configration file
+     *
+     * @throws Exception
+     */
+    private void loadConfiguration() throws Exception {
+        try {
+
+            System.out.println("In the load configurations method .....");
+
+            if (properties == null) {
+                ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+
+                InputStream propertyStream = classLoader.getResourceAsStream(GRIDFTP_CLIENT_PROPERTY);
+                properties = new Properties();
+                if (myProxyCredentials == null) {
+                    this.myProxyCredentials = new MyProxyCredentials();
+                }
+                if (propertyStream != null) {
+                    properties.load(propertyStream);
+                    String myproxyServerTmp = properties.getProperty(GridFTPConstants.MYPROXY_SERVER);
+                    if (myproxyServerTmp != null) {
+                        this.myProxyCredentials.setMyProxyHostname(myproxyServerTmp.trim());
+                    }
+                    String myproxyPortTemp = properties.getProperty(GridFTPConstants.MYPROXY_PORT);
+                    if (myproxyPortTemp != null && myproxyPortTemp.trim().length() > 0) {
+                        this.myProxyCredentials.setMyProxyPortNumber(Integer.parseInt(myproxyPortTemp.trim()));
+                    } else {
+                        this.myProxyCredentials.setMyProxyPortNumber(MyProxy.DEFAULT_PORT);
+                    }
+
+                    this.myProxyCredentials.setMyProxyUserName(userName);
+                    this.myProxyCredentials.setMyProxyPassword(password);
+
+                    String myproxytime = properties.getProperty(GridFTPConstants.MYPROXY_LIFETIME);
+                    if (myproxytime != null) {
+                        this.myProxyCredentials.setMyProxyLifeTime(Integer.parseInt(myproxytime));
+                    }
+
+                    String currentDirectory = System.getProperty("projectDirectory");
+                    String certificatePath = currentDirectory + File.separatorChar
+                            + properties.getProperty(GridFTPConstants.TRUSTED_CERTS_FILE);
+
+                    this.myProxyCredentials.setTrustedCertificatePath(certificatePath);
+
+                    System.out.println("Certificate path - " + certificatePath);
+
+                    this.myProxyCredentials.init();
+                }
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error(e.getLocalizedMessage());
+            throw new Exception(e);
+        }
+
+    }
+
+    /**
+     * @return the properties
+     */
+    public Properties getProperties() {
+        return properties;
+    }
+
+    /**
+     * @param properties
+     *            the properties to set
+     */
+    public void setProperties(Properties properties) {
+        this.properties = properties;
+    }
+
+    /**
+     * Returns the raw gssCredential, without creating a proxy.
+     *
+     * @return The gssCredential
+     */
+    public GSSCredential getRawCredential() throws Exception{
+
+        return gssCredential;
+    }
+
+    /**
+     * Returns the gssCredential.
+     *
+     * @return The gssCredential
+     */
+    public GSSCredential getGssCredential() throws Exception{
+
+        if (this.gssCredential == null)
+            return null;
+
+        return renewCredentials(gssCredential);
+    }
+
+    /**
+     * Sets gssCredential.
+     *
+     * @param gssCredential
+     *            The gssCredential to set.
+     */
+    public void setGssCredential(GSSCredential gssCredential) {
+        this.gssCredential = gssCredential;
+    }
+
+    public MyProxyCredentials getMyProxyCredentials() {
+        return myProxyCredentials;
+    }
+
+    public void setMyProxyCredentials(MyProxyCredentials myProxyCredentials) {
+        this.myProxyCredentials = myProxyCredentials;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/http/HTTPStorageClient.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/http/HTTPStorageClient.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/http/HTTPStorageClient.java
new file mode 100644
index 0000000..ba324cd
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/http/HTTPStorageClient.java
@@ -0,0 +1,215 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.http;
+
+import org.apache.airavata.data.manager.core.remote.client.RemoteStorageClient;
+import org.apache.airavata.model.data.transfer.LSEntryModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.channels.Channels;
+import java.nio.channels.ReadableByteChannel;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.util.List;
+import java.util.UUID;
+
+public class HTTPStorageClient implements RemoteStorageClient {
+    private final static Logger logger = LoggerFactory.getLogger(HTTPStorageClient.class);
+
+    public static enum Protocol {
+        HTTP, HTTPS
+    }
+
+    private String host;
+    private int port;
+    private Protocol protocol;
+
+    public HTTPStorageClient(Protocol protocol, String host, int port) throws KeyManagementException, NoSuchAlgorithmException {
+        this.protocol = protocol;
+        this.host = host;
+        this.port = port;
+
+        // Create a new trust manager that trust all certificates
+        TrustManager[] trustAllCerts = new TrustManager[]{
+                new X509TrustManager() {
+                    public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+                        return null;
+                    }
+
+                    public void checkClientTrusted(
+                            java.security.cert.X509Certificate[] certs, String authType) {
+                    }
+
+                    public void checkServerTrusted(
+                            java.security.cert.X509Certificate[] certs, String authType) {
+                    }
+                }
+        };
+
+        // Activate the new trust manager
+        SSLContext sc = SSLContext.getInstance("SSL");
+        sc.init(null, trustAllCerts, new java.security.SecureRandom());
+        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+    }
+
+    /**
+     * Reads a remote file, write it to local temporary directory and returns a file pointer to it
+     *
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public File readFile(String filePath) throws Exception {
+        String url = "";
+        if (protocol == Protocol.HTTP)
+            url += "http://";
+        else
+            url += "https://";
+        url += host + ":" + port;
+        if (!filePath.startsWith("/"))
+            filePath += "/" + filePath;
+        url += filePath;
+
+        URL fileUrl = new URL(url);
+        URLConnection urlConnection = fileUrl.openConnection();
+        ReadableByteChannel rbc = Channels.newChannel(urlConnection.getInputStream());
+        String localFilePath = System.getProperty("java.io.tmpdir") + File.separator + UUID.randomUUID().toString();
+        FileOutputStream fos = new FileOutputStream(localFilePath);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+
+        return new File(localFilePath);
+    }
+
+    /**
+     * Writes the source file in the local storage to specified path in the remote storage
+     *
+     * @param sourceFile
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public void writeFile(File sourceFile, String filePath) throws Exception {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Returns a directory listing of the specified directory
+     *
+     * @param directoryPath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<LSEntryModel> getDirectoryListing(String directoryPath) throws Exception {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Move the specified file from source to destination within the same storage resource
+     *
+     * @param currentPath
+     * @param newPath
+     * @throws Exception
+     */
+    @Override
+    public void moveFile(String currentPath, String newPath) throws Exception {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * @param sourcePath
+     * @param destinationPath
+     * @throws Exception
+     */
+    @Override
+    public void copyFile(String sourcePath, String destinationPath) throws Exception {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Rename file with the given name
+     *
+     * @param filePath
+     * @param newFileName
+     * @throws Exception
+     */
+    @Override
+    public void renameFile(String filePath, String newFileName) throws Exception {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Delete the specified file
+     *
+     * @param filePath
+     * @throws Exception
+     */
+    @Override
+    public void deleteFile(String filePath) throws Exception {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Create new directory in the specified file
+     *
+     * @param newDirPath
+     * @throws Exception
+     */
+    @Override
+    public void mkdir(String newDirPath) throws Exception {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Checks whether specified file exists in the remote storage system
+     *
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public boolean checkFileExists(String filePath) throws Exception {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Checks whether the given path is a directory
+     *
+     * @param filePath
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public boolean checkIsDirectory(String filePath) throws Exception {
+        return false;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/1ad9ae5d/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/CommandOutput.java
----------------------------------------------------------------------
diff --git a/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/CommandOutput.java b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/CommandOutput.java
new file mode 100644
index 0000000..cf9f6b2
--- /dev/null
+++ b/modules/data-manager/data-manager-core/src/main/java/org/apache/airavata/data/manager/core/remote/client/scp/CommandOutput.java
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.
+ *
+*/
+package org.apache.airavata.data.manager.core.remote.client.scp;
+
+import com.jcraft.jsch.Channel;
+import java.io.OutputStream;
+
+public interface CommandOutput {
+    void onOutput(Channel var1);
+
+    OutputStream getStandardError();
+
+    void exitCode(int var1);
+
+    int getExitCode();
+}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
new file mode 100644
index 0000000..3e44691
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
@@ -0,0 +1,1114 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.appinterface;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Application Interface Description
+ * 
+ * applicationModules:
+ *   Associate all application modules with versions which interface is applicable to.
+ * 
+ * applicationInputs:
+ *   Inputs to be passed to the application
+ * 
+ * applicationOutputs:
+ *   Outputs generated from the application
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class ApplicationInterfaceDescription implements org.apache.thrift.TBase<ApplicationInterfaceDescription, ApplicationInterfaceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationInterfaceDescription> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationInterfaceDescription");
+
+  private static final org.apache.thrift.protocol.TField APPLICATION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField APPLICATION_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField APPLICATION_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationDescription", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField APPLICATION_MODULES_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationModules", org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField APPLICATION_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationInputs", org.apache.thrift.protocol.TType.LIST, (short)5);
+  private static final org.apache.thrift.protocol.TField APPLICATION_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationOutputs", org.apache.thrift.protocol.TType.LIST, (short)6);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ApplicationInterfaceDescriptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ApplicationInterfaceDescriptionTupleSchemeFactory());
+  }
+
+  public String applicationInterfaceId; // required
+  public String applicationName; // required
+  public String applicationDescription; // optional
+  public List<String> applicationModules; // optional
+  public List<org.apache.airavata.model.application.io.InputDataObjectType> applicationInputs; // optional
+  public List<org.apache.airavata.model.application.io.OutputDataObjectType> applicationOutputs; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    APPLICATION_INTERFACE_ID((short)1, "applicationInterfaceId"),
+    APPLICATION_NAME((short)2, "applicationName"),
+    APPLICATION_DESCRIPTION((short)3, "applicationDescription"),
+    APPLICATION_MODULES((short)4, "applicationModules"),
+    APPLICATION_INPUTS((short)5, "applicationInputs"),
+    APPLICATION_OUTPUTS((short)6, "applicationOutputs");
+
+    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: // APPLICATION_INTERFACE_ID
+          return APPLICATION_INTERFACE_ID;
+        case 2: // APPLICATION_NAME
+          return APPLICATION_NAME;
+        case 3: // APPLICATION_DESCRIPTION
+          return APPLICATION_DESCRIPTION;
+        case 4: // APPLICATION_MODULES
+          return APPLICATION_MODULES;
+        case 5: // APPLICATION_INPUTS
+          return APPLICATION_INPUTS;
+        case 6: // APPLICATION_OUTPUTS
+          return APPLICATION_OUTPUTS;
+        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 _Fields optionals[] = {_Fields.APPLICATION_DESCRIPTION,_Fields.APPLICATION_MODULES,_Fields.APPLICATION_INPUTS,_Fields.APPLICATION_OUTPUTS};
+  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.APPLICATION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("applicationInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APPLICATION_NAME, new org.apache.thrift.meta_data.FieldMetaData("applicationName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APPLICATION_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("applicationDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APPLICATION_MODULES, new org.apache.thrift.meta_data.FieldMetaData("applicationModules", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.APPLICATION_INPUTS, new org.apache.thrift.meta_data.FieldMetaData("applicationInputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.InputDataObjectType.class))));
+    tmpMap.put(_Fields.APPLICATION_OUTPUTS, new org.apache.thrift.meta_data.FieldMetaData("applicationOutputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.OutputDataObjectType.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ApplicationInterfaceDescription.class, metaDataMap);
+  }
+
+  public ApplicationInterfaceDescription() {
+    this.applicationInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public ApplicationInterfaceDescription(
+    String applicationInterfaceId,
+    String applicationName)
+  {
+    this();
+    this.applicationInterfaceId = applicationInterfaceId;
+    this.applicationName = applicationName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ApplicationInterfaceDescription(ApplicationInterfaceDescription other) {
+    if (other.isSetApplicationInterfaceId()) {
+      this.applicationInterfaceId = other.applicationInterfaceId;
+    }
+    if (other.isSetApplicationName()) {
+      this.applicationName = other.applicationName;
+    }
+    if (other.isSetApplicationDescription()) {
+      this.applicationDescription = other.applicationDescription;
+    }
+    if (other.isSetApplicationModules()) {
+      List<String> __this__applicationModules = new ArrayList<String>(other.applicationModules);
+      this.applicationModules = __this__applicationModules;
+    }
+    if (other.isSetApplicationInputs()) {
+      List<org.apache.airavata.model.application.io.InputDataObjectType> __this__applicationInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(other.applicationInputs.size());
+      for (org.apache.airavata.model.application.io.InputDataObjectType other_element : other.applicationInputs) {
+        __this__applicationInputs.add(new org.apache.airavata.model.application.io.InputDataObjectType(other_element));
+      }
+      this.applicationInputs = __this__applicationInputs;
+    }
+    if (other.isSetApplicationOutputs()) {
+      List<org.apache.airavata.model.application.io.OutputDataObjectType> __this__applicationOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(other.applicationOutputs.size());
+      for (org.apache.airavata.model.application.io.OutputDataObjectType other_element : other.applicationOutputs) {
+        __this__applicationOutputs.add(new org.apache.airavata.model.application.io.OutputDataObjectType(other_element));
+      }
+      this.applicationOutputs = __this__applicationOutputs;
+    }
+  }
+
+  public ApplicationInterfaceDescription deepCopy() {
+    return new ApplicationInterfaceDescription(this);
+  }
+
+  @Override
+  public void clear() {
+    this.applicationInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.applicationName = null;
+    this.applicationDescription = null;
+    this.applicationModules = null;
+    this.applicationInputs = null;
+    this.applicationOutputs = null;
+  }
+
+  public String getApplicationInterfaceId() {
+    return this.applicationInterfaceId;
+  }
+
+  public ApplicationInterfaceDescription setApplicationInterfaceId(String applicationInterfaceId) {
+    this.applicationInterfaceId = applicationInterfaceId;
+    return this;
+  }
+
+  public void unsetApplicationInterfaceId() {
+    this.applicationInterfaceId = null;
+  }
+
+  /** Returns true if field applicationInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationInterfaceId() {
+    return this.applicationInterfaceId != null;
+  }
+
+  public void setApplicationInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.applicationInterfaceId = null;
+    }
+  }
+
+  public String getApplicationName() {
+    return this.applicationName;
+  }
+
+  public ApplicationInterfaceDescription setApplicationName(String applicationName) {
+    this.applicationName = applicationName;
+    return this;
+  }
+
+  public void unsetApplicationName() {
+    this.applicationName = null;
+  }
+
+  /** Returns true if field applicationName is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationName() {
+    return this.applicationName != null;
+  }
+
+  public void setApplicationNameIsSet(boolean value) {
+    if (!value) {
+      this.applicationName = null;
+    }
+  }
+
+  public String getApplicationDescription() {
+    return this.applicationDescription;
+  }
+
+  public ApplicationInterfaceDescription setApplicationDescription(String applicationDescription) {
+    this.applicationDescription = applicationDescription;
+    return this;
+  }
+
+  public void unsetApplicationDescription() {
+    this.applicationDescription = null;
+  }
+
+  /** Returns true if field applicationDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationDescription() {
+    return this.applicationDescription != null;
+  }
+
+  public void setApplicationDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.applicationDescription = null;
+    }
+  }
+
+  public int getApplicationModulesSize() {
+    return (this.applicationModules == null) ? 0 : this.applicationModules.size();
+  }
+
+  public java.util.Iterator<String> getApplicationModulesIterator() {
+    return (this.applicationModules == null) ? null : this.applicationModules.iterator();
+  }
+
+  public void addToApplicationModules(String elem) {
+    if (this.applicationModules == null) {
+      this.applicationModules = new ArrayList<String>();
+    }
+    this.applicationModules.add(elem);
+  }
+
+  public List<String> getApplicationModules() {
+    return this.applicationModules;
+  }
+
+  public ApplicationInterfaceDescription setApplicationModules(List<String> applicationModules) {
+    this.applicationModules = applicationModules;
+    return this;
+  }
+
+  public void unsetApplicationModules() {
+    this.applicationModules = null;
+  }
+
+  /** Returns true if field applicationModules is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationModules() {
+    return this.applicationModules != null;
+  }
+
+  public void setApplicationModulesIsSet(boolean value) {
+    if (!value) {
+      this.applicationModules = null;
+    }
+  }
+
+  public int getApplicationInputsSize() {
+    return (this.applicationInputs == null) ? 0 : this.applicationInputs.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.application.io.InputDataObjectType> getApplicationInputsIterator() {
+    return (this.applicationInputs == null) ? null : this.applicationInputs.iterator();
+  }
+
+  public void addToApplicationInputs(org.apache.airavata.model.application.io.InputDataObjectType elem) {
+    if (this.applicationInputs == null) {
+      this.applicationInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>();
+    }
+    this.applicationInputs.add(elem);
+  }
+
+  public List<org.apache.airavata.model.application.io.InputDataObjectType> getApplicationInputs() {
+    return this.applicationInputs;
+  }
+
+  public ApplicationInterfaceDescription setApplicationInputs(List<org.apache.airavata.model.application.io.InputDataObjectType> applicationInputs) {
+    this.applicationInputs = applicationInputs;
+    return this;
+  }
+
+  public void unsetApplicationInputs() {
+    this.applicationInputs = null;
+  }
+
+  /** Returns true if field applicationInputs is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationInputs() {
+    return this.applicationInputs != null;
+  }
+
+  public void setApplicationInputsIsSet(boolean value) {
+    if (!value) {
+      this.applicationInputs = null;
+    }
+  }
+
+  public int getApplicationOutputsSize() {
+    return (this.applicationOutputs == null) ? 0 : this.applicationOutputs.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.application.io.OutputDataObjectType> getApplicationOutputsIterator() {
+    return (this.applicationOutputs == null) ? null : this.applicationOutputs.iterator();
+  }
+
+  public void addToApplicationOutputs(org.apache.airavata.model.application.io.OutputDataObjectType elem) {
+    if (this.applicationOutputs == null) {
+      this.applicationOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>();
+    }
+    this.applicationOutputs.add(elem);
+  }
+
+  public List<org.apache.airavata.model.application.io.OutputDataObjectType> getApplicationOutputs() {
+    return this.applicationOutputs;
+  }
+
+  public ApplicationInterfaceDescription setApplicationOutputs(List<org.apache.airavata.model.application.io.OutputDataObjectType> applicationOutputs) {
+    this.applicationOutputs = applicationOutputs;
+    return this;
+  }
+
+  public void unsetApplicationOutputs() {
+    this.applicationOutputs = null;
+  }
+
+  /** Returns true if field applicationOutputs is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationOutputs() {
+    return this.applicationOutputs != null;
+  }
+
+  public void setApplicationOutputsIsSet(boolean value) {
+    if (!value) {
+      this.applicationOutputs = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case APPLICATION_INTERFACE_ID:
+      if (value == null) {
+        unsetApplicationInterfaceId();
+      } else {
+        setApplicationInterfaceId((String)value);
+      }
+      break;
+
+    case APPLICATION_NAME:
+      if (value == null) {
+        unsetApplicationName();
+      } else {
+        setApplicationName((String)value);
+      }
+      break;
+
+    case APPLICATION_DESCRIPTION:
+      if (value == null) {
+        unsetApplicationDescription();
+      } else {
+        setApplicationDescription((String)value);
+      }
+      break;
+
+    case APPLICATION_MODULES:
+      if (value == null) {
+        unsetApplicationModules();
+      } else {
+        setApplicationModules((List<String>)value);
+      }
+      break;
+
+    case APPLICATION_INPUTS:
+      if (value == null) {
+        unsetApplicationInputs();
+      } else {
+        setApplicationInputs((List<org.apache.airavata.model.application.io.InputDataObjectType>)value);
+      }
+      break;
+
+    case APPLICATION_OUTPUTS:
+      if (value == null) {
+        unsetApplicationOutputs();
+      } else {
+        setApplicationOutputs((List<org.apache.airavata.model.application.io.OutputDataObjectType>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case APPLICATION_INTERFACE_ID:
+      return getApplicationInterfaceId();
+
+    case APPLICATION_NAME:
+      return getApplicationName();
+
+    case APPLICATION_DESCRIPTION:
+      return getApplicationDescription();
+
+    case APPLICATION_MODULES:
+      return getApplicationModules();
+
+    case APPLICATION_INPUTS:
+      return getApplicationInputs();
+
+    case APPLICATION_OUTPUTS:
+      return getApplicationOutputs();
+
+    }
+    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 APPLICATION_INTERFACE_ID:
+      return isSetApplicationInterfaceId();
+    case APPLICATION_NAME:
+      return isSetApplicationName();
+    case APPLICATION_DESCRIPTION:
+      return isSetApplicationDescription();
+    case APPLICATION_MODULES:
+      return isSetApplicationModules();
+    case APPLICATION_INPUTS:
+      return isSetApplicationInputs();
+    case APPLICATION_OUTPUTS:
+      return isSetApplicationOutputs();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ApplicationInterfaceDescription)
+      return this.equals((ApplicationInterfaceDescription)that);
+    return false;
+  }
+
+  public boolean equals(ApplicationInterfaceDescription that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_applicationInterfaceId = true && this.isSetApplicationInterfaceId();
+    boolean that_present_applicationInterfaceId = true && that.isSetApplicationInterfaceId();
+    if (this_present_applicationInterfaceId || that_present_applicationInterfaceId) {
+      if (!(this_present_applicationInterfaceId && that_present_applicationInterfaceId))
+        return false;
+      if (!this.applicationInterfaceId.equals(that.applicationInterfaceId))
+        return false;
+    }
+
+    boolean this_present_applicationName = true && this.isSetApplicationName();
+    boolean that_present_applicationName = true && that.isSetApplicationName();
+    if (this_present_applicationName || that_present_applicationName) {
+      if (!(this_present_applicationName && that_present_applicationName))
+        return false;
+      if (!this.applicationName.equals(that.applicationName))
+        return false;
+    }
+
+    boolean this_present_applicationDescription = true && this.isSetApplicationDescription();
+    boolean that_present_applicationDescription = true && that.isSetApplicationDescription();
+    if (this_present_applicationDescription || that_present_applicationDescription) {
+      if (!(this_present_applicationDescription && that_present_applicationDescription))
+        return false;
+      if (!this.applicationDescription.equals(that.applicationDescription))
+        return false;
+    }
+
+    boolean this_present_applicationModules = true && this.isSetApplicationModules();
+    boolean that_present_applicationModules = true && that.isSetApplicationModules();
+    if (this_present_applicationModules || that_present_applicationModules) {
+      if (!(this_present_applicationModules && that_present_applicationModules))
+        return false;
+      if (!this.applicationModules.equals(that.applicationModules))
+        return false;
+    }
+
+    boolean this_present_applicationInputs = true && this.isSetApplicationInputs();
+    boolean that_present_applicationInputs = true && that.isSetApplicationInputs();
+    if (this_present_applicationInputs || that_present_applicationInputs) {
+      if (!(this_present_applicationInputs && that_present_applicationInputs))
+        return false;
+      if (!this.applicationInputs.equals(that.applicationInputs))
+        return false;
+    }
+
+    boolean this_present_applicationOutputs = true && this.isSetApplicationOutputs();
+    boolean that_present_applicationOutputs = true && that.isSetApplicationOutputs();
+    if (this_present_applicationOutputs || that_present_applicationOutputs) {
+      if (!(this_present_applicationOutputs && that_present_applicationOutputs))
+        return false;
+      if (!this.applicationOutputs.equals(that.applicationOutputs))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_applicationInterfaceId = true && (isSetApplicationInterfaceId());
+    list.add(present_applicationInterfaceId);
+    if (present_applicationInterfaceId)
+      list.add(applicationInterfaceId);
+
+    boolean present_applicationName = true && (isSetApplicationName());
+    list.add(present_applicationName);
+    if (present_applicationName)
+      list.add(applicationName);
+
+    boolean present_applicationDescription = true && (isSetApplicationDescription());
+    list.add(present_applicationDescription);
+    if (present_applicationDescription)
+      list.add(applicationDescription);
+
+    boolean present_applicationModules = true && (isSetApplicationModules());
+    list.add(present_applicationModules);
+    if (present_applicationModules)
+      list.add(applicationModules);
+
+    boolean present_applicationInputs = true && (isSetApplicationInputs());
+    list.add(present_applicationInputs);
+    if (present_applicationInputs)
+      list.add(applicationInputs);
+
+    boolean present_applicationOutputs = true && (isSetApplicationOutputs());
+    list.add(present_applicationOutputs);
+    if (present_applicationOutputs)
+      list.add(applicationOutputs);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ApplicationInterfaceDescription other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetApplicationInterfaceId()).compareTo(other.isSetApplicationInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationInterfaceId, other.applicationInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationName()).compareTo(other.isSetApplicationName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationName, other.applicationName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationDescription()).compareTo(other.isSetApplicationDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationDescription, other.applicationDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationModules()).compareTo(other.isSetApplicationModules());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationModules()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationModules, other.applicationModules);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationInputs()).compareTo(other.isSetApplicationInputs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationInputs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationInputs, other.applicationInputs);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationOutputs()).compareTo(other.isSetApplicationOutputs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationOutputs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationOutputs, other.applicationOutputs);
+      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("ApplicationInterfaceDescription(");
+    boolean first = true;
+
+    sb.append("applicationInterfaceId:");
+    if (this.applicationInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.applicationInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("applicationName:");
+    if (this.applicationName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.applicationName);
+    }
+    first = false;
+    if (isSetApplicationDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationDescription:");
+      if (this.applicationDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationDescription);
+      }
+      first = false;
+    }
+    if (isSetApplicationModules()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationModules:");
+      if (this.applicationModules == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationModules);
+      }
+      first = false;
+    }
+    if (isSetApplicationInputs()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationInputs:");
+      if (this.applicationInputs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationInputs);
+      }
+      first = false;
+    }
+    if (isSetApplicationOutputs()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationOutputs:");
+      if (this.applicationOutputs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationOutputs);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (applicationInterfaceId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'applicationInterfaceId' was not present! Struct: " + toString());
+    }
+    if (applicationName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'applicationName' was not present! 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 ApplicationInterfaceDescriptionStandardSchemeFactory implements SchemeFactory {
+    public ApplicationInterfaceDescriptionStandardScheme getScheme() {
+      return new ApplicationInterfaceDescriptionStandardScheme();
+    }
+  }
+
+  private static class ApplicationInterfaceDescriptionStandardScheme extends StandardScheme<ApplicationInterfaceDescription> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ApplicationInterfaceDescription 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: // APPLICATION_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.applicationInterfaceId = iprot.readString();
+              struct.setApplicationInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // APPLICATION_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.applicationName = iprot.readString();
+              struct.setApplicationNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // APPLICATION_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.applicationDescription = iprot.readString();
+              struct.setApplicationDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // APPLICATION_MODULES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.applicationModules = new ArrayList<String>(_list0.size);
+                String _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = iprot.readString();
+                  struct.applicationModules.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setApplicationModulesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // APPLICATION_INPUTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.applicationInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(_list3.size);
+                org.apache.airavata.model.application.io.InputDataObjectType _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = new org.apache.airavata.model.application.io.InputDataObjectType();
+                  _elem4.read(iprot);
+                  struct.applicationInputs.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
+              struct.setApplicationInputsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // APPLICATION_OUTPUTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list6 = iprot.readListBegin();
+                struct.applicationOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list6.size);
+                org.apache.airavata.model.application.io.OutputDataObjectType _elem7;
+                for (int _i8 = 0; _i8 < _list6.size; ++_i8)
+                {
+                  _elem7 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+                  _elem7.read(iprot);
+                  struct.applicationOutputs.add(_elem7);
+                }
+                iprot.readListEnd();
+              }
+              struct.setApplicationOutputsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ApplicationInterfaceDescription struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.applicationInterfaceId != null) {
+        oprot.writeFieldBegin(APPLICATION_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.applicationInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.applicationName != null) {
+        oprot.writeFieldBegin(APPLICATION_NAME_FIELD_DESC);
+        oprot.writeString(struct.applicationName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.applicationDescription != null) {
+        if (struct.isSetApplicationDescription()) {
+          oprot.writeFieldBegin(APPLICATION_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.applicationDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.applicationModules != null) {
+        if (struct.isSetApplicationModules()) {
+          oprot.writeFieldBegin(APPLICATION_MODULES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.applicationModules.size()));
+            for (String _iter9 : struct.applicationModules)
+            {
+              oprot.writeString(_iter9);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.applicationInputs != null) {
+        if (struct.isSetApplicationInputs()) {
+          oprot.writeFieldBegin(APPLICATION_INPUTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.applicationInputs.size()));
+            for (org.apache.airavata.model.application.io.InputDataObjectType _iter10 : struct.applicationInputs)
+            {
+              _iter10.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.applicationOutputs != null) {
+        if (struct.isSetApplicationOutputs()) {
+          oprot.writeFieldBegin(APPLICATION_OUTPUTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.applicationOutputs.size()));
+            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter11 : struct.applicationOutputs)
+            {
+              _iter11.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ApplicationInterfaceDescriptionTupleSchemeFactory implements SchemeFactory {
+    public ApplicationInterfaceDescriptionTupleScheme getScheme() {
+      return new ApplicationInterfaceDescriptionTupleScheme();
+    }
+  }
+
+  private static class ApplicationInterfaceDescriptionTupleScheme extends TupleScheme<ApplicationInterfaceDescription> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ApplicationInterfaceDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.applicationInterfaceId);
+      oprot.writeString(struct.applicationName);
+      BitSet optionals = new BitSet();
+      if (struct.isSetApplicationDescription()) {
+        optionals.set(0);
+      }
+      if (struct.isSetApplicationModules()) {
+        optionals.set(1);
+      }
+      if (struct.isSetApplicationInputs()) {
+        optionals.set(2);
+      }
+      if (struct.isSetApplicationOutputs()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
+      if (struct.isSetApplicationDescription()) {
+        oprot.writeString(struct.applicationDescription);
+      }
+      if (struct.isSetApplicationModules()) {
+        {
+          oprot.writeI32(struct.applicationModules.size());
+          for (String _iter12 : struct.applicationModules)
+          {
+            oprot.writeString(_iter12);
+          }
+        }
+      }
+      if (struct.isSetApplicationInputs()) {
+        {
+          oprot.writeI32(struct.applicationInputs.size());
+          for (org.apache.airavata.model.application.io.InputDataObjectType _iter13 : struct.applicationInputs)
+          {
+            _iter13.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetApplicationOutputs()) {
+        {
+          oprot.writeI32(struct.applicationOutputs.size());
+          for (org.apache.airavata.model.application.io.OutputDataObjectType _iter14 : struct.applicationOutputs)
+          {
+            _iter14.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ApplicationInterfaceDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.applicationInterfaceId = iprot.readString();
+      struct.setApplicationInterfaceIdIsSet(true);
+      struct.applicationName = iprot.readString();
+      struct.setApplicationNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(4);
+      if (incoming.get(0)) {
+        struct.applicationDescription = iprot.readString();
+        struct.setApplicationDescriptionIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TList _list15 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.applicationModules = new ArrayList<String>(_list15.size);
+          String _elem16;
+          for (int _i17 = 0; _i17 < _list15.size; ++_i17)
+          {
+            _elem16 = iprot.readString();
+            struct.applicationModules.add(_elem16);
+          }
+        }
+        struct.setApplicationModulesIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list18 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.applicationInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(_list18.size);
+          org.apache.airavata.model.application.io.InputDataObjectType _elem19;
+          for (int _i20 = 0; _i20 < _list18.size; ++_i20)
+          {
+            _elem19 = new org.apache.airavata.model.application.io.InputDataObjectType();
+            _elem19.read(iprot);
+            struct.applicationInputs.add(_elem19);
+          }
+        }
+        struct.setApplicationInputsIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list21 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.applicationOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list21.size);
+          org.apache.airavata.model.application.io.OutputDataObjectType _elem22;
+          for (int _i23 = 0; _i23 < _list21.size; ++_i23)
+          {
+            _elem22 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+            _elem22.read(iprot);
+            struct.applicationOutputs.add(_elem22);
+          }
+        }
+        struct.setApplicationOutputsIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
new file mode 100644
index 0000000..ffb8031
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@ -0,0 +1,1029 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.computeresource;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Batch Queue Information on SuperComputers
+ * 
+ * maxRunTime:
+ *  Maximum allowed run time in hours.
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueue._Fields>, java.io.Serializable, Cloneable, Comparable<BatchQueue> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BatchQueue");
+
+  private static final org.apache.thrift.protocol.TField QUEUE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("queueName", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField QUEUE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("queueDescription", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField MAX_RUN_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("maxRunTime", org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField MAX_NODES_FIELD_DESC = new org.apache.thrift.protocol.TField("maxNodes", org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField MAX_PROCESSORS_FIELD_DESC = new org.apache.thrift.protocol.TField("maxProcessors", org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField MAX_JOBS_IN_QUEUE_FIELD_DESC = new org.apache.thrift.protocol.TField("maxJobsInQueue", org.apache.thrift.protocol.TType.I32, (short)6);
+  private static final org.apache.thrift.protocol.TField MAX_MEMORY_FIELD_DESC = new org.apache.thrift.protocol.TField("maxMemory", org.apache.thrift.protocol.TType.I32, (short)7);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new BatchQueueStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new BatchQueueTupleSchemeFactory());
+  }
+
+  public String queueName; // required
+  public String queueDescription; // optional
+  public int maxRunTime; // optional
+  public int maxNodes; // optional
+  public int maxProcessors; // optional
+  public int maxJobsInQueue; // optional
+  public int maxMemory; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    QUEUE_NAME((short)1, "queueName"),
+    QUEUE_DESCRIPTION((short)2, "queueDescription"),
+    MAX_RUN_TIME((short)3, "maxRunTime"),
+    MAX_NODES((short)4, "maxNodes"),
+    MAX_PROCESSORS((short)5, "maxProcessors"),
+    MAX_JOBS_IN_QUEUE((short)6, "maxJobsInQueue"),
+    MAX_MEMORY((short)7, "maxMemory");
+
+    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: // QUEUE_NAME
+          return QUEUE_NAME;
+        case 2: // QUEUE_DESCRIPTION
+          return QUEUE_DESCRIPTION;
+        case 3: // MAX_RUN_TIME
+          return MAX_RUN_TIME;
+        case 4: // MAX_NODES
+          return MAX_NODES;
+        case 5: // MAX_PROCESSORS
+          return MAX_PROCESSORS;
+        case 6: // MAX_JOBS_IN_QUEUE
+          return MAX_JOBS_IN_QUEUE;
+        case 7: // MAX_MEMORY
+          return MAX_MEMORY;
+        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 __MAXRUNTIME_ISSET_ID = 0;
+  private static final int __MAXNODES_ISSET_ID = 1;
+  private static final int __MAXPROCESSORS_ISSET_ID = 2;
+  private static final int __MAXJOBSINQUEUE_ISSET_ID = 3;
+  private static final int __MAXMEMORY_ISSET_ID = 4;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.QUEUE_DESCRIPTION,_Fields.MAX_RUN_TIME,_Fields.MAX_NODES,_Fields.MAX_PROCESSORS,_Fields.MAX_JOBS_IN_QUEUE,_Fields.MAX_MEMORY};
+  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.QUEUE_NAME, new org.apache.thrift.meta_data.FieldMetaData("queueName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.QUEUE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("queueDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.MAX_RUN_TIME, new org.apache.thrift.meta_data.FieldMetaData("maxRunTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.MAX_NODES, new org.apache.thrift.meta_data.FieldMetaData("maxNodes", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.MAX_PROCESSORS, new org.apache.thrift.meta_data.FieldMetaData("maxProcessors", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.MAX_JOBS_IN_QUEUE, new org.apache.thrift.meta_data.FieldMetaData("maxJobsInQueue", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.MAX_MEMORY, new org.apache.thrift.meta_data.FieldMetaData("maxMemory", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(BatchQueue.class, metaDataMap);
+  }
+
+  public BatchQueue() {
+  }
+
+  public BatchQueue(
+    String queueName)
+  {
+    this();
+    this.queueName = queueName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public BatchQueue(BatchQueue other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetQueueName()) {
+      this.queueName = other.queueName;
+    }
+    if (other.isSetQueueDescription()) {
+      this.queueDescription = other.queueDescription;
+    }
+    this.maxRunTime = other.maxRunTime;
+    this.maxNodes = other.maxNodes;
+    this.maxProcessors = other.maxProcessors;
+    this.maxJobsInQueue = other.maxJobsInQueue;
+    this.maxMemory = other.maxMemory;
+  }
+
+  public BatchQueue deepCopy() {
+    return new BatchQueue(this);
+  }
+
+  @Override
+  public void clear() {
+    this.queueName = null;
+    this.queueDescription = null;
+    setMaxRunTimeIsSet(false);
+    this.maxRunTime = 0;
+    setMaxNodesIsSet(false);
+    this.maxNodes = 0;
+    setMaxProcessorsIsSet(false);
+    this.maxProcessors = 0;
+    setMaxJobsInQueueIsSet(false);
+    this.maxJobsInQueue = 0;
+    setMaxMemoryIsSet(false);
+    this.maxMemory = 0;
+  }
+
+  public String getQueueName() {
+    return this.queueName;
+  }
+
+  public BatchQueue setQueueName(String queueName) {
+    this.queueName = queueName;
+    return this;
+  }
+
+  public void unsetQueueName() {
+    this.queueName = null;
+  }
+
+  /** Returns true if field queueName is set (has been assigned a value) and false otherwise */
+  public boolean isSetQueueName() {
+    return this.queueName != null;
+  }
+
+  public void setQueueNameIsSet(boolean value) {
+    if (!value) {
+      this.queueName = null;
+    }
+  }
+
+  public String getQueueDescription() {
+    return this.queueDescription;
+  }
+
+  public BatchQueue setQueueDescription(String queueDescription) {
+    this.queueDescription = queueDescription;
+    return this;
+  }
+
+  public void unsetQueueDescription() {
+    this.queueDescription = null;
+  }
+
+  /** Returns true if field queueDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetQueueDescription() {
+    return this.queueDescription != null;
+  }
+
+  public void setQueueDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.queueDescription = null;
+    }
+  }
+
+  public int getMaxRunTime() {
+    return this.maxRunTime;
+  }
+
+  public BatchQueue setMaxRunTime(int maxRunTime) {
+    this.maxRunTime = maxRunTime;
+    setMaxRunTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetMaxRunTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXRUNTIME_ISSET_ID);
+  }
+
+  /** Returns true if field maxRunTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetMaxRunTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __MAXRUNTIME_ISSET_ID);
+  }
+
+  public void setMaxRunTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXRUNTIME_ISSET_ID, value);
+  }
+
+  public int getMaxNodes() {
+    return this.maxNodes;
+  }
+
+  public BatchQueue setMaxNodes(int maxNodes) {
+    this.maxNodes = maxNodes;
+    setMaxNodesIsSet(true);
+    return this;
+  }
+
+  public void unsetMaxNodes() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXNODES_ISSET_ID);
+  }
+
+  /** Returns true if field maxNodes is set (has been assigned a value) and false otherwise */
+  public boolean isSetMaxNodes() {
+    return EncodingUtils.testBit(__isset_bitfield, __MAXNODES_ISSET_ID);
+  }
+
+  public void setMaxNodesIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXNODES_ISSET_ID, value);
+  }
+
+  public int getMaxProcessors() {
+    return this.maxProcessors;
+  }
+
+  public BatchQueue setMaxProcessors(int maxProcessors) {
+    this.maxProcessors = maxProcessors;
+    setMaxProcessorsIsSet(true);
+    return this;
+  }
+
+  public void unsetMaxProcessors() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXPROCESSORS_ISSET_ID);
+  }
+
+  /** Returns true if field maxProcessors is set (has been assigned a value) and false otherwise */
+  public boolean isSetMaxProcessors() {
+    return EncodingUtils.testBit(__isset_bitfield, __MAXPROCESSORS_ISSET_ID);
+  }
+
+  public void setMaxProcessorsIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXPROCESSORS_ISSET_ID, value);
+  }
+
+  public int getMaxJobsInQueue() {
+    return this.maxJobsInQueue;
+  }
+
+  public BatchQueue setMaxJobsInQueue(int maxJobsInQueue) {
+    this.maxJobsInQueue = maxJobsInQueue;
+    setMaxJobsInQueueIsSet(true);
+    return this;
+  }
+
+  public void unsetMaxJobsInQueue() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXJOBSINQUEUE_ISSET_ID);
+  }
+
+  /** Returns true if field maxJobsInQueue is set (has been assigned a value) and false otherwise */
+  public boolean isSetMaxJobsInQueue() {
+    return EncodingUtils.testBit(__isset_bitfield, __MAXJOBSINQUEUE_ISSET_ID);
+  }
+
+  public void setMaxJobsInQueueIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXJOBSINQUEUE_ISSET_ID, value);
+  }
+
+  public int getMaxMemory() {
+    return this.maxMemory;
+  }
+
+  public BatchQueue setMaxMemory(int maxMemory) {
+    this.maxMemory = maxMemory;
+    setMaxMemoryIsSet(true);
+    return this;
+  }
+
+  public void unsetMaxMemory() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXMEMORY_ISSET_ID);
+  }
+
+  /** Returns true if field maxMemory is set (has been assigned a value) and false otherwise */
+  public boolean isSetMaxMemory() {
+    return EncodingUtils.testBit(__isset_bitfield, __MAXMEMORY_ISSET_ID);
+  }
+
+  public void setMaxMemoryIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXMEMORY_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case QUEUE_NAME:
+      if (value == null) {
+        unsetQueueName();
+      } else {
+        setQueueName((String)value);
+      }
+      break;
+
+    case QUEUE_DESCRIPTION:
+      if (value == null) {
+        unsetQueueDescription();
+      } else {
+        setQueueDescription((String)value);
+      }
+      break;
+
+    case MAX_RUN_TIME:
+      if (value == null) {
+        unsetMaxRunTime();
+      } else {
+        setMaxRunTime((Integer)value);
+      }
+      break;
+
+    case MAX_NODES:
+      if (value == null) {
+        unsetMaxNodes();
+      } else {
+        setMaxNodes((Integer)value);
+      }
+      break;
+
+    case MAX_PROCESSORS:
+      if (value == null) {
+        unsetMaxProcessors();
+      } else {
+        setMaxProcessors((Integer)value);
+      }
+      break;
+
+    case MAX_JOBS_IN_QUEUE:
+      if (value == null) {
+        unsetMaxJobsInQueue();
+      } else {
+        setMaxJobsInQueue((Integer)value);
+      }
+      break;
+
+    case MAX_MEMORY:
+      if (value == null) {
+        unsetMaxMemory();
+      } else {
+        setMaxMemory((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case QUEUE_NAME:
+      return getQueueName();
+
+    case QUEUE_DESCRIPTION:
+      return getQueueDescription();
+
+    case MAX_RUN_TIME:
+      return Integer.valueOf(getMaxRunTime());
+
+    case MAX_NODES:
+      return Integer.valueOf(getMaxNodes());
+
+    case MAX_PROCESSORS:
+      return Integer.valueOf(getMaxProcessors());
+
+    case MAX_JOBS_IN_QUEUE:
+      return Integer.valueOf(getMaxJobsInQueue());
+
+    case MAX_MEMORY:
+      return Integer.valueOf(getMaxMemory());
+
+    }
+    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 QUEUE_NAME:
+      return isSetQueueName();
+    case QUEUE_DESCRIPTION:
+      return isSetQueueDescription();
+    case MAX_RUN_TIME:
+      return isSetMaxRunTime();
+    case MAX_NODES:
+      return isSetMaxNodes();
+    case MAX_PROCESSORS:
+      return isSetMaxProcessors();
+    case MAX_JOBS_IN_QUEUE:
+      return isSetMaxJobsInQueue();
+    case MAX_MEMORY:
+      return isSetMaxMemory();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof BatchQueue)
+      return this.equals((BatchQueue)that);
+    return false;
+  }
+
+  public boolean equals(BatchQueue that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_queueName = true && this.isSetQueueName();
+    boolean that_present_queueName = true && that.isSetQueueName();
+    if (this_present_queueName || that_present_queueName) {
+      if (!(this_present_queueName && that_present_queueName))
+        return false;
+      if (!this.queueName.equals(that.queueName))
+        return false;
+    }
+
+    boolean this_present_queueDescription = true && this.isSetQueueDescription();
+    boolean that_present_queueDescription = true && that.isSetQueueDescription();
+    if (this_present_queueDescription || that_present_queueDescription) {
+      if (!(this_present_queueDescription && that_present_queueDescription))
+        return false;
+      if (!this.queueDescription.equals(that.queueDescription))
+        return false;
+    }
+
+    boolean this_present_maxRunTime = true && this.isSetMaxRunTime();
+    boolean that_present_maxRunTime = true && that.isSetMaxRunTime();
+    if (this_present_maxRunTime || that_present_maxRunTime) {
+      if (!(this_present_maxRunTime && that_present_maxRunTime))
+        return false;
+      if (this.maxRunTime != that.maxRunTime)
+        return false;
+    }
+
+    boolean this_present_maxNodes = true && this.isSetMaxNodes();
+    boolean that_present_maxNodes = true && that.isSetMaxNodes();
+    if (this_present_maxNodes || that_present_maxNodes) {
+      if (!(this_present_maxNodes && that_present_maxNodes))
+        return false;
+      if (this.maxNodes != that.maxNodes)
+        return false;
+    }
+
+    boolean this_present_maxProcessors = true && this.isSetMaxProcessors();
+    boolean that_present_maxProcessors = true && that.isSetMaxProcessors();
+    if (this_present_maxProcessors || that_present_maxProcessors) {
+      if (!(this_present_maxProcessors && that_present_maxProcessors))
+        return false;
+      if (this.maxProcessors != that.maxProcessors)
+        return false;
+    }
+
+    boolean this_present_maxJobsInQueue = true && this.isSetMaxJobsInQueue();
+    boolean that_present_maxJobsInQueue = true && that.isSetMaxJobsInQueue();
+    if (this_present_maxJobsInQueue || that_present_maxJobsInQueue) {
+      if (!(this_present_maxJobsInQueue && that_present_maxJobsInQueue))
+        return false;
+      if (this.maxJobsInQueue != that.maxJobsInQueue)
+        return false;
+    }
+
+    boolean this_present_maxMemory = true && this.isSetMaxMemory();
+    boolean that_present_maxMemory = true && that.isSetMaxMemory();
+    if (this_present_maxMemory || that_present_maxMemory) {
+      if (!(this_present_maxMemory && that_present_maxMemory))
+        return false;
+      if (this.maxMemory != that.maxMemory)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_queueName = true && (isSetQueueName());
+    list.add(present_queueName);
+    if (present_queueName)
+      list.add(queueName);
+
+    boolean present_queueDescription = true && (isSetQueueDescription());
+    list.add(present_queueDescription);
+    if (present_queueDescription)
+      list.add(queueDescription);
+
+    boolean present_maxRunTime = true && (isSetMaxRunTime());
+    list.add(present_maxRunTime);
+    if (present_maxRunTime)
+      list.add(maxRunTime);
+
+    boolean present_maxNodes = true && (isSetMaxNodes());
+    list.add(present_maxNodes);
+    if (present_maxNodes)
+      list.add(maxNodes);
+
+    boolean present_maxProcessors = true && (isSetMaxProcessors());
+    list.add(present_maxProcessors);
+    if (present_maxProcessors)
+      list.add(maxProcessors);
+
+    boolean present_maxJobsInQueue = true && (isSetMaxJobsInQueue());
+    list.add(present_maxJobsInQueue);
+    if (present_maxJobsInQueue)
+      list.add(maxJobsInQueue);
+
+    boolean present_maxMemory = true && (isSetMaxMemory());
+    list.add(present_maxMemory);
+    if (present_maxMemory)
+      list.add(maxMemory);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(BatchQueue other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetQueueName()).compareTo(other.isSetQueueName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetQueueName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.queueName, other.queueName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetQueueDescription()).compareTo(other.isSetQueueDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetQueueDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.queueDescription, other.queueDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMaxRunTime()).compareTo(other.isSetMaxRunTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMaxRunTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxRunTime, other.maxRunTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMaxNodes()).compareTo(other.isSetMaxNodes());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMaxNodes()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxNodes, other.maxNodes);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMaxProcessors()).compareTo(other.isSetMaxProcessors());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMaxProcessors()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxProcessors, other.maxProcessors);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMaxJobsInQueue()).compareTo(other.isSetMaxJobsInQueue());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMaxJobsInQueue()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxJobsInQueue, other.maxJobsInQueue);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMaxMemory()).compareTo(other.isSetMaxMemory());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMaxMemory()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxMemory, other.maxMemory);
+      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("BatchQueue(");
+    boolean first = true;
+
+    sb.append("queueName:");
+    if (this.queueName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.queueName);
+    }
+    first = false;
+    if (isSetQueueDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("queueDescription:");
+      if (this.queueDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.queueDescription);
+      }
+      first = false;
+    }
+    if (isSetMaxRunTime()) {
+      if (!first) sb.append(", ");
+      sb.append("maxRunTime:");
+      sb.append(this.maxRunTime);
+      first = false;
+    }
+    if (isSetMaxNodes()) {
+      if (!first) sb.append(", ");
+      sb.append("maxNodes:");
+      sb.append(this.maxNodes);
+      first = false;
+    }
+    if (isSetMaxProcessors()) {
+      if (!first) sb.append(", ");
+      sb.append("maxProcessors:");
+      sb.append(this.maxProcessors);
+      first = false;
+    }
+    if (isSetMaxJobsInQueue()) {
+      if (!first) sb.append(", ");
+      sb.append("maxJobsInQueue:");
+      sb.append(this.maxJobsInQueue);
+      first = false;
+    }
+    if (isSetMaxMemory()) {
+      if (!first) sb.append(", ");
+      sb.append("maxMemory:");
+      sb.append(this.maxMemory);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (queueName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'queueName' was not present! 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 BatchQueueStandardSchemeFactory implements SchemeFactory {
+    public BatchQueueStandardScheme getScheme() {
+      return new BatchQueueStandardScheme();
+    }
+  }
+
+  private static class BatchQueueStandardScheme extends StandardScheme<BatchQueue> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, BatchQueue 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: // QUEUE_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.queueName = iprot.readString();
+              struct.setQueueNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // QUEUE_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.queueDescription = iprot.readString();
+              struct.setQueueDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // MAX_RUN_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.maxRunTime = iprot.readI32();
+              struct.setMaxRunTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // MAX_NODES
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.maxNodes = iprot.readI32();
+              struct.setMaxNodesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // MAX_PROCESSORS
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.maxProcessors = iprot.readI32();
+              struct.setMaxProcessorsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // MAX_JOBS_IN_QUEUE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.maxJobsInQueue = iprot.readI32();
+              struct.setMaxJobsInQueueIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // MAX_MEMORY
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.maxMemory = iprot.readI32();
+              struct.setMaxMemoryIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, BatchQueue struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.queueName != null) {
+        oprot.writeFieldBegin(QUEUE_NAME_FIELD_DESC);
+        oprot.writeString(struct.queueName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.queueDescription != null) {
+        if (struct.isSetQueueDescription()) {
+          oprot.writeFieldBegin(QUEUE_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.queueDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetMaxRunTime()) {
+        oprot.writeFieldBegin(MAX_RUN_TIME_FIELD_DESC);
+        oprot.writeI32(struct.maxRunTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetMaxNodes()) {
+        oprot.writeFieldBegin(MAX_NODES_FIELD_DESC);
+        oprot.writeI32(struct.maxNodes);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetMaxProcessors()) {
+        oprot.writeFieldBegin(MAX_PROCESSORS_FIELD_DESC);
+        oprot.writeI32(struct.maxProcessors);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetMaxJobsInQueue()) {
+        oprot.writeFieldBegin(MAX_JOBS_IN_QUEUE_FIELD_DESC);
+        oprot.writeI32(struct.maxJobsInQueue);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetMaxMemory()) {
+        oprot.writeFieldBegin(MAX_MEMORY_FIELD_DESC);
+        oprot.writeI32(struct.maxMemory);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class BatchQueueTupleSchemeFactory implements SchemeFactory {
+    public BatchQueueTupleScheme getScheme() {
+      return new BatchQueueTupleScheme();
+    }
+  }
+
+  private static class BatchQueueTupleScheme extends TupleScheme<BatchQueue> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, BatchQueue struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.queueName);
+      BitSet optionals = new BitSet();
+      if (struct.isSetQueueDescription()) {
+        optionals.set(0);
+      }
+      if (struct.isSetMaxRunTime()) {
+        optionals.set(1);
+      }
+      if (struct.isSetMaxNodes()) {
+        optionals.set(2);
+      }
+      if (struct.isSetMaxProcessors()) {
+        optionals.set(3);
+      }
+      if (struct.isSetMaxJobsInQueue()) {
+        optionals.set(4);
+      }
+      if (struct.isSetMaxMemory()) {
+        optionals.set(5);
+      }
+      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetQueueDescription()) {
+        oprot.writeString(struct.queueDescription);
+      }
+      if (struct.isSetMaxRunTime()) {
+        oprot.writeI32(struct.maxRunTime);
+      }
+      if (struct.isSetMaxNodes()) {
+        oprot.writeI32(struct.maxNodes);
+      }
+      if (struct.isSetMaxProcessors()) {
+        oprot.writeI32(struct.maxProcessors);
+      }
+      if (struct.isSetMaxJobsInQueue()) {
+        oprot.writeI32(struct.maxJobsInQueue);
+      }
+      if (struct.isSetMaxMemory()) {
+        oprot.writeI32(struct.maxMemory);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, BatchQueue struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.queueName = iprot.readString();
+      struct.setQueueNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(6);
+      if (incoming.get(0)) {
+        struct.queueDescription = iprot.readString();
+        struct.setQueueDescriptionIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.maxRunTime = iprot.readI32();
+        struct.setMaxRunTimeIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.maxNodes = iprot.readI32();
+        struct.setMaxNodesIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.maxProcessors = iprot.readI32();
+        struct.setMaxProcessorsIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.maxJobsInQueue = iprot.readI32();
+        struct.setMaxJobsInQueueIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.maxMemory = iprot.readI32();
+        struct.setMaxMemoryIsSet(true);
+      }
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
new file mode 100644
index 0000000..a025d7f
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
@@ -0,0 +1,1493 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.application.io;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * Application Inputs. The paramters describe how inputs are passed to the application.
+ * 
+ * name:
+ *   Name of the parameter.
+ * 
+ * value:
+ *   Value of the parameter. A default value could be set during registration.
+ * 
+ * type:
+ *   Data type of the parameter
+ * 
+ * applicationArguement:
+ *   The argument flag sent to the application. Such as -p pressure.
+ * 
+ * standardInput:
+ *   When this value is set, the parameter is sent as standard input rather than a parameter.
+ *   Typically this is passed using redirection operator ">".
+ * 
+ * userFriendlyDescription:
+ *   Description to be displayed at the user interface.
+ * 
+ * metaData:
+ *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObjectType, InputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<InputDataObjectType> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InputDataObjectType");
+
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", 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.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField APPLICATION_ARGUMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationArgument", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField STANDARD_INPUT_FIELD_DESC = new org.apache.thrift.protocol.TField("standardInput", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField USER_FRIENDLY_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("userFriendlyDescription", org.apache.thrift.protocol.TType.STRING, (short)6);
+  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)7);
+  private static final org.apache.thrift.protocol.TField INPUT_ORDER_FIELD_DESC = new org.apache.thrift.protocol.TField("inputOrder", org.apache.thrift.protocol.TType.I32, (short)8);
+  private static final org.apache.thrift.protocol.TField IS_REQUIRED_FIELD_DESC = new org.apache.thrift.protocol.TField("isRequired", org.apache.thrift.protocol.TType.BOOL, (short)9);
+  private static final org.apache.thrift.protocol.TField REQUIRED_TO_ADDED_TO_COMMAND_LINE_FIELD_DESC = new org.apache.thrift.protocol.TField("requiredToAddedToCommandLine", org.apache.thrift.protocol.TType.BOOL, (short)10);
+  private static final org.apache.thrift.protocol.TField DATA_STAGED_FIELD_DESC = new org.apache.thrift.protocol.TField("dataStaged", org.apache.thrift.protocol.TType.BOOL, (short)11);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new InputDataObjectTypeStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new InputDataObjectTypeTupleSchemeFactory());
+  }
+
+  public String name; // required
+  public String value; // optional
+  /**
+   * 
+   * @see DataType
+   */
+  public DataType type; // optional
+  public String applicationArgument; // optional
+  public boolean standardInput; // optional
+  public String userFriendlyDescription; // optional
+  public String metaData; // optional
+  public int inputOrder; // optional
+  public boolean isRequired; // optional
+  public boolean requiredToAddedToCommandLine; // optional
+  public boolean dataStaged; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    NAME((short)1, "name"),
+    VALUE((short)2, "value"),
+    /**
+     * 
+     * @see DataType
+     */
+    TYPE((short)3, "type"),
+    APPLICATION_ARGUMENT((short)4, "applicationArgument"),
+    STANDARD_INPUT((short)5, "standardInput"),
+    USER_FRIENDLY_DESCRIPTION((short)6, "userFriendlyDescription"),
+    META_DATA((short)7, "metaData"),
+    INPUT_ORDER((short)8, "inputOrder"),
+    IS_REQUIRED((short)9, "isRequired"),
+    REQUIRED_TO_ADDED_TO_COMMAND_LINE((short)10, "requiredToAddedToCommandLine"),
+    DATA_STAGED((short)11, "dataStaged");
+
+    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: // NAME
+          return NAME;
+        case 2: // VALUE
+          return VALUE;
+        case 3: // TYPE
+          return TYPE;
+        case 4: // APPLICATION_ARGUMENT
+          return APPLICATION_ARGUMENT;
+        case 5: // STANDARD_INPUT
+          return STANDARD_INPUT;
+        case 6: // USER_FRIENDLY_DESCRIPTION
+          return USER_FRIENDLY_DESCRIPTION;
+        case 7: // META_DATA
+          return META_DATA;
+        case 8: // INPUT_ORDER
+          return INPUT_ORDER;
+        case 9: // IS_REQUIRED
+          return IS_REQUIRED;
+        case 10: // REQUIRED_TO_ADDED_TO_COMMAND_LINE
+          return REQUIRED_TO_ADDED_TO_COMMAND_LINE;
+        case 11: // DATA_STAGED
+          return DATA_STAGED;
+        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 __STANDARDINPUT_ISSET_ID = 0;
+  private static final int __INPUTORDER_ISSET_ID = 1;
+  private static final int __ISREQUIRED_ISSET_ID = 2;
+  private static final int __REQUIREDTOADDEDTOCOMMANDLINE_ISSET_ID = 3;
+  private static final int __DATASTAGED_ISSET_ID = 4;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.APPLICATION_ARGUMENT,_Fields.STANDARD_INPUT,_Fields.USER_FRIENDLY_DESCRIPTION,_Fields.META_DATA,_Fields.INPUT_ORDER,_Fields.IS_REQUIRED,_Fields.REQUIRED_TO_ADDED_TO_COMMAND_LINE,_Fields.DATA_STAGED};
+  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.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", 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.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DataType.class)));
+    tmpMap.put(_Fields.APPLICATION_ARGUMENT, new org.apache.thrift.meta_data.FieldMetaData("applicationArgument", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.STANDARD_INPUT, new org.apache.thrift.meta_data.FieldMetaData("standardInput", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.USER_FRIENDLY_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("userFriendlyDescription", 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)));
+    tmpMap.put(_Fields.INPUT_ORDER, new org.apache.thrift.meta_data.FieldMetaData("inputOrder", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.IS_REQUIRED, new org.apache.thrift.meta_data.FieldMetaData("isRequired", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.REQUIRED_TO_ADDED_TO_COMMAND_LINE, new org.apache.thrift.meta_data.FieldMetaData("requiredToAddedToCommandLine", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.DATA_STAGED, new org.apache.thrift.meta_data.FieldMetaData("dataStaged", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InputDataObjectType.class, metaDataMap);
+  }
+
+  public InputDataObjectType() {
+  }
+
+  public InputDataObjectType(
+    String name)
+  {
+    this();
+    this.name = name;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public InputDataObjectType(InputDataObjectType other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetName()) {
+      this.name = other.name;
+    }
+    if (other.isSetValue()) {
+      this.value = other.value;
+    }
+    if (other.isSetType()) {
+      this.type = other.type;
+    }
+    if (other.isSetApplicationArgument()) {
+      this.applicationArgument = other.applicationArgument;
+    }
+    this.standardInput = other.standardInput;
+    if (other.isSetUserFriendlyDescription()) {
+      this.userFriendlyDescription = other.userFriendlyDescription;
+    }
+    if (other.isSetMetaData()) {
+      this.metaData = other.metaData;
+    }
+    this.inputOrder = other.inputOrder;
+    this.isRequired = other.isRequired;
+    this.requiredToAddedToCommandLine = other.requiredToAddedToCommandLine;
+    this.dataStaged = other.dataStaged;
+  }
+
+  public InputDataObjectType deepCopy() {
+    return new InputDataObjectType(this);
+  }
+
+  @Override
+  public void clear() {
+    this.name = null;
+    this.value = null;
+    this.type = null;
+    this.applicationArgument = null;
+    setStandardInputIsSet(false);
+    this.standardInput = false;
+    this.userFriendlyDescription = null;
+    this.metaData = null;
+    setInputOrderIsSet(false);
+    this.inputOrder = 0;
+    setIsRequiredIsSet(false);
+    this.isRequired = false;
+    setRequiredToAddedToCommandLineIsSet(false);
+    this.requiredToAddedToCommandLine = false;
+    setDataStagedIsSet(false);
+    this.dataStaged = false;
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public InputDataObjectType setName(String name) {
+    this.name = name;
+    return this;
+  }
+
+  public void unsetName() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false otherwise */
+  public boolean isSetName() {
+    return this.name != null;
+  }
+
+  public void setNameIsSet(boolean value) {
+    if (!value) {
+      this.name = null;
+    }
+  }
+
+  public String getValue() {
+    return this.value;
+  }
+
+  public InputDataObjectType setValue(String value) {
+    this.value = value;
+    return this;
+  }
+
+  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;
+    }
+  }
+
+  /**
+   * 
+   * @see DataType
+   */
+  public DataType getType() {
+    return this.type;
+  }
+
+  /**
+   * 
+   * @see DataType
+   */
+  public InputDataObjectType setType(DataType type) {
+    this.type = type;
+    return this;
+  }
+
+  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 getApplicationArgument() {
+    return this.applicationArgument;
+  }
+
+  public InputDataObjectType setApplicationArgument(String applicationArgument) {
+    this.applicationArgument = applicationArgument;
+    return this;
+  }
+
+  public void unsetApplicationArgument() {
+    this.applicationArgument = null;
+  }
+
+  /** Returns true if field applicationArgument is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationArgument() {
+    return this.applicationArgument != null;
+  }
+
+  public void setApplicationArgumentIsSet(boolean value) {
+    if (!value) {
+      this.applicationArgument = null;
+    }
+  }
+
+  public boolean isStandardInput() {
+    return this.standardInput;
+  }
+
+  public InputDataObjectType setStandardInput(boolean standardInput) {
+    this.standardInput = standardInput;
+    setStandardInputIsSet(true);
+    return this;
+  }
+
+  public void unsetStandardInput() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __STANDARDINPUT_ISSET_ID);
+  }
+
+  /** Returns true if field standardInput is set (has been assigned a value) and false otherwise */
+  public boolean isSetStandardInput() {
+    return EncodingUtils.testBit(__isset_bitfield, __STANDARDINPUT_ISSET_ID);
+  }
+
+  public void setStandardInputIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __STANDARDINPUT_ISSET_ID, value);
+  }
+
+  public String getUserFriendlyDescription() {
+    return this.userFriendlyDescription;
+  }
+
+  public InputDataObjectType setUserFriendlyDescription(String userFriendlyDescription) {
+    this.userFriendlyDescription = userFriendlyDescription;
+    return this;
+  }
+
+  public void unsetUserFriendlyDescription() {
+    this.userFriendlyDescription = null;
+  }
+
+  /** Returns true if field userFriendlyDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserFriendlyDescription() {
+    return this.userFriendlyDescription != null;
+  }
+
+  public void setUserFriendlyDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.userFriendlyDescription = null;
+    }
+  }
+
+  public String getMetaData() {
+    return this.metaData;
+  }
+
+  public InputDataObjectType setMetaData(String metaData) {
+    this.metaData = metaData;
+    return this;
+  }
+
+  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 int getInputOrder() {
+    return this.inputOrder;
+  }
+
+  public InputDataObjectType setInputOrder(int inputOrder) {
+    this.inputOrder = inputOrder;
+    setInputOrderIsSet(true);
+    return this;
+  }
+
+  public void unsetInputOrder() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __INPUTORDER_ISSET_ID);
+  }
+
+  /** Returns true if field inputOrder is set (has been assigned a value) and false otherwise */
+  public boolean isSetInputOrder() {
+    return EncodingUtils.testBit(__isset_bitfield, __INPUTORDER_ISSET_ID);
+  }
+
+  public void setInputOrderIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __INPUTORDER_ISSET_ID, value);
+  }
+
+  public boolean isIsRequired() {
+    return this.isRequired;
+  }
+
+  public InputDataObjectType setIsRequired(boolean isRequired) {
+    this.isRequired = isRequired;
+    setIsRequiredIsSet(true);
+    return this;
+  }
+
+  public void unsetIsRequired() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ISREQUIRED_ISSET_ID);
+  }
+
+  /** Returns true if field isRequired is set (has been assigned a value) and false otherwise */
+  public boolean isSetIsRequired() {
+    return EncodingUtils.testBit(__isset_bitfield, __ISREQUIRED_ISSET_ID);
+  }
+
+  public void setIsRequiredIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ISREQUIRED_ISSET_ID, value);
+  }
+
+  public boolean isRequiredToAddedToCommandLine() {
+    return this.requiredToAddedToCommandLine;
+  }
+
+  public InputDataObjectType setRequiredToAddedToCommandLine(boolean requiredToAddedToCommandLine) {
+    this.requiredToAddedToCommandLine = requiredToAddedToCommandLine;
+    setRequiredToAddedToCommandLineIsSet(true);
+    return this;
+  }
+
+  public void unsetRequiredToAddedToCommandLine() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __REQUIREDTOADDEDTOCOMMANDLINE_ISSET_ID);
+  }
+
+  /** Returns true if field requiredToAddedToCommandLine is set (has been assigned a value) and false otherwise */
+  public boolean isSetRequiredToAddedToCommandLine() {
+    return EncodingUtils.testBit(__isset_bitfield, __REQUIREDTOADDEDTOCOMMANDLINE_ISSET_ID);
+  }
+
+  public void setRequiredToAddedToCommandLineIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __REQUIREDTOADDEDTOCOMMANDLINE_ISSET_ID, value);
+  }
+
+  public boolean isDataStaged() {
+    return this.dataStaged;
+  }
+
+  public InputDataObjectType setDataStaged(boolean dataStaged) {
+    this.dataStaged = dataStaged;
+    setDataStagedIsSet(true);
+    return this;
+  }
+
+  public void unsetDataStaged() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DATASTAGED_ISSET_ID);
+  }
+
+  /** Returns true if field dataStaged is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataStaged() {
+    return EncodingUtils.testBit(__isset_bitfield, __DATASTAGED_ISSET_ID);
+  }
+
+  public void setDataStagedIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DATASTAGED_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case NAME:
+      if (value == null) {
+        unsetName();
+      } else {
+        setName((String)value);
+      }
+      break;
+
+    case VALUE:
+      if (value == null) {
+        unsetValue();
+      } else {
+        setValue((String)value);
+      }
+      break;
+
+    case TYPE:
+      if (value == null) {
+        unsetType();
+      } else {
+        setType((DataType)value);
+      }
+      break;
+
+    case APPLICATION_ARGUMENT:
+      if (value == null) {
+        unsetApplicationArgument();
+      } else {
+        setApplicationArgument((String)value);
+      }
+      break;
+
+    case STANDARD_INPUT:
+      if (value == null) {
+        unsetStandardInput();
+      } else {
+        setStandardInput((Boolean)value);
+      }
+      break;
+
+    case USER_FRIENDLY_DESCRIPTION:
+      if (value == null) {
+        unsetUserFriendlyDescription();
+      } else {
+        setUserFriendlyDescription((String)value);
+      }
+      break;
+
+    case META_DATA:
+      if (value == null) {
+        unsetMetaData();
+      } else {
+        setMetaData((String)value);
+      }
+      break;
+
+    case INPUT_ORDER:
+      if (value == null) {
+        unsetInputOrder();
+      } else {
+        setInputOrder((Integer)value);
+      }
+      break;
+
+    case IS_REQUIRED:
+      if (value == null) {
+        unsetIsRequired();
+      } else {
+        setIsRequired((Boolean)value);
+      }
+      break;
+
+    case REQUIRED_TO_ADDED_TO_COMMAND_LINE:
+      if (value == null) {
+        unsetRequiredToAddedToCommandLine();
+      } else {
+        setRequiredToAddedToCommandLine((Boolean)value);
+      }
+      break;
+
+    case DATA_STAGED:
+      if (value == null) {
+        unsetDataStaged();
+      } else {
+        setDataStaged((Boolean)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case NAME:
+      return getName();
+
+    case VALUE:
+      return getValue();
+
+    case TYPE:
+      return getType();
+
+    case APPLICATION_ARGUMENT:
+      return getApplicationArgument();
+
+    case STANDARD_INPUT:
+      return Boolean.valueOf(isStandardInput());
+
+    case USER_FRIENDLY_DESCRIPTION:
+      return getUserFriendlyDescription();
+
+    case META_DATA:
+      return getMetaData();
+
+    case INPUT_ORDER:
+      return Integer.valueOf(getInputOrder());
+
+    case IS_REQUIRED:
+      return Boolean.valueOf(isIsRequired());
+
+    case REQUIRED_TO_ADDED_TO_COMMAND_LINE:
+      return Boolean.valueOf(isRequiredToAddedToCommandLine());
+
+    case DATA_STAGED:
+      return Boolean.valueOf(isDataStaged());
+
+    }
+    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 NAME:
+      return isSetName();
+    case VALUE:
+      return isSetValue();
+    case TYPE:
+      return isSetType();
+    case APPLICATION_ARGUMENT:
+      return isSetApplicationArgument();
+    case STANDARD_INPUT:
+      return isSetStandardInput();
+    case USER_FRIENDLY_DESCRIPTION:
+      return isSetUserFriendlyDescription();
+    case META_DATA:
+      return isSetMetaData();
+    case INPUT_ORDER:
+      return isSetInputOrder();
+    case IS_REQUIRED:
+      return isSetIsRequired();
+    case REQUIRED_TO_ADDED_TO_COMMAND_LINE:
+      return isSetRequiredToAddedToCommandLine();
+    case DATA_STAGED:
+      return isSetDataStaged();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof InputDataObjectType)
+      return this.equals((InputDataObjectType)that);
+    return false;
+  }
+
+  public boolean equals(InputDataObjectType that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
+        return false;
+      if (!this.name.equals(that.name))
+        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_applicationArgument = true && this.isSetApplicationArgument();
+    boolean that_present_applicationArgument = true && that.isSetApplicationArgument();
+    if (this_present_applicationArgument || that_present_applicationArgument) {
+      if (!(this_present_applicationArgument && that_present_applicationArgument))
+        return false;
+      if (!this.applicationArgument.equals(that.applicationArgument))
+        return false;
+    }
+
+    boolean this_present_standardInput = true && this.isSetStandardInput();
+    boolean that_present_standardInput = true && that.isSetStandardInput();
+    if (this_present_standardInput || that_present_standardInput) {
+      if (!(this_present_standardInput && that_present_standardInput))
+        return false;
+      if (this.standardInput != that.standardInput)
+        return false;
+    }
+
+    boolean this_present_userFriendlyDescription = true && this.isSetUserFriendlyDescription();
+    boolean that_present_userFriendlyDescription = true && that.isSetUserFriendlyDescription();
+    if (this_present_userFriendlyDescription || that_present_userFriendlyDescription) {
+      if (!(this_present_userFriendlyDescription && that_present_userFriendlyDescription))
+        return false;
+      if (!this.userFriendlyDescription.equals(that.userFriendlyDescription))
+        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;
+    }
+
+    boolean this_present_inputOrder = true && this.isSetInputOrder();
+    boolean that_present_inputOrder = true && that.isSetInputOrder();
+    if (this_present_inputOrder || that_present_inputOrder) {
+      if (!(this_present_inputOrder && that_present_inputOrder))
+        return false;
+      if (this.inputOrder != that.inputOrder)
+        return false;
+    }
+
+    boolean this_present_isRequired = true && this.isSetIsRequired();
+    boolean that_present_isRequired = true && that.isSetIsRequired();
+    if (this_present_isRequired || that_present_isRequired) {
+      if (!(this_present_isRequired && that_present_isRequired))
+        return false;
+      if (this.isRequired != that.isRequired)
+        return false;
+    }
+
+    boolean this_present_requiredToAddedToCommandLine = true && this.isSetRequiredToAddedToCommandLine();
+    boolean that_present_requiredToAddedToCommandLine = true && that.isSetRequiredToAddedToCommandLine();
+    if (this_present_requiredToAddedToCommandLine || that_present_requiredToAddedToCommandLine) {
+      if (!(this_present_requiredToAddedToCommandLine && that_present_requiredToAddedToCommandLine))
+        return false;
+      if (this.requiredToAddedToCommandLine != that.requiredToAddedToCommandLine)
+        return false;
+    }
+
+    boolean this_present_dataStaged = true && this.isSetDataStaged();
+    boolean that_present_dataStaged = true && that.isSetDataStaged();
+    if (this_present_dataStaged || that_present_dataStaged) {
+      if (!(this_present_dataStaged && that_present_dataStaged))
+        return false;
+      if (this.dataStaged != that.dataStaged)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_name = true && (isSetName());
+    list.add(present_name);
+    if (present_name)
+      list.add(name);
+
+    boolean present_value = true && (isSetValue());
+    list.add(present_value);
+    if (present_value)
+      list.add(value);
+
+    boolean present_type = true && (isSetType());
+    list.add(present_type);
+    if (present_type)
+      list.add(type.getValue());
+
+    boolean present_applicationArgument = true && (isSetApplicationArgument());
+    list.add(present_applicationArgument);
+    if (present_applicationArgument)
+      list.add(applicationArgument);
+
+    boolean present_standardInput = true && (isSetStandardInput());
+    list.add(present_standardInput);
+    if (present_standardInput)
+      list.add(standardInput);
+
+    boolean present_userFriendlyDescription = true && (isSetUserFriendlyDescription());
+    list.add(present_userFriendlyDescription);
+    if (present_userFriendlyDescription)
+      list.add(userFriendlyDescription);
+
+    boolean present_metaData = true && (isSetMetaData());
+    list.add(present_metaData);
+    if (present_metaData)
+      list.add(metaData);
+
+    boolean present_inputOrder = true && (isSetInputOrder());
+    list.add(present_inputOrder);
+    if (present_inputOrder)
+      list.add(inputOrder);
+
+    boolean present_isRequired = true && (isSetIsRequired());
+    list.add(present_isRequired);
+    if (present_isRequired)
+      list.add(isRequired);
+
+    boolean present_requiredToAddedToCommandLine = true && (isSetRequiredToAddedToCommandLine());
+    list.add(present_requiredToAddedToCommandLine);
+    if (present_requiredToAddedToCommandLine)
+      list.add(requiredToAddedToCommandLine);
+
+    boolean present_dataStaged = true && (isSetDataStaged());
+    list.add(present_dataStaged);
+    if (present_dataStaged)
+      list.add(dataStaged);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(InputDataObjectType other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+      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(isSetApplicationArgument()).compareTo(other.isSetApplicationArgument());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationArgument()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationArgument, other.applicationArgument);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStandardInput()).compareTo(other.isSetStandardInput());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStandardInput()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.standardInput, other.standardInput);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUserFriendlyDescription()).compareTo(other.isSetUserFriendlyDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserFriendlyDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userFriendlyDescription, other.userFriendlyDescription);
+      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;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetInputOrder()).compareTo(other.isSetInputOrder());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetInputOrder()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.inputOrder, other.inputOrder);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetIsRequired()).compareTo(other.isSetIsRequired());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIsRequired()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isRequired, other.isRequired);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetRequiredToAddedToCommandLine()).compareTo(other.isSetRequiredToAddedToCommandLine());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRequiredToAddedToCommandLine()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.requiredToAddedToCommandLine, other.requiredToAddedToCommandLine);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataStaged()).compareTo(other.isSetDataStaged());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataStaged()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataStaged, other.dataStaged);
+      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("InputDataObjectType(");
+    boolean first = true;
+
+    sb.append("name:");
+    if (this.name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.name);
+    }
+    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 (isSetApplicationArgument()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationArgument:");
+      if (this.applicationArgument == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationArgument);
+      }
+      first = false;
+    }
+    if (isSetStandardInput()) {
+      if (!first) sb.append(", ");
+      sb.append("standardInput:");
+      sb.append(this.standardInput);
+      first = false;
+    }
+    if (isSetUserFriendlyDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("userFriendlyDescription:");
+      if (this.userFriendlyDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userFriendlyDescription);
+      }
+      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;
+    }
+    if (isSetInputOrder()) {
+      if (!first) sb.append(", ");
+      sb.append("inputOrder:");
+      sb.append(this.inputOrder);
+      first = false;
+    }
+    if (isSetIsRequired()) {
+      if (!first) sb.append(", ");
+      sb.append("isRequired:");
+      sb.append(this.isRequired);
+      first = false;
+    }
+    if (isSetRequiredToAddedToCommandLine()) {
+      if (!first) sb.append(", ");
+      sb.append("requiredToAddedToCommandLine:");
+      sb.append(this.requiredToAddedToCommandLine);
+      first = false;
+    }
+    if (isSetDataStaged()) {
+      if (!first) sb.append(", ");
+      sb.append("dataStaged:");
+      sb.append(this.dataStaged);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (name == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! 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 InputDataObjectTypeStandardSchemeFactory implements SchemeFactory {
+    public InputDataObjectTypeStandardScheme getScheme() {
+      return new InputDataObjectTypeStandardScheme();
+    }
+  }
+
+  private static class InputDataObjectTypeStandardScheme extends StandardScheme<InputDataObjectType> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, InputDataObjectType 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: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(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.I32) {
+              struct.type = org.apache.airavata.model.application.io.DataType.findByValue(iprot.readI32());
+              struct.setTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // APPLICATION_ARGUMENT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.applicationArgument = iprot.readString();
+              struct.setApplicationArgumentIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // STANDARD_INPUT
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.standardInput = iprot.readBool();
+              struct.setStandardInputIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // USER_FRIENDLY_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userFriendlyDescription = iprot.readString();
+              struct.setUserFriendlyDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // 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;
+          case 8: // INPUT_ORDER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.inputOrder = iprot.readI32();
+              struct.setInputOrderIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // IS_REQUIRED
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.isRequired = iprot.readBool();
+              struct.setIsRequiredIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // REQUIRED_TO_ADDED_TO_COMMAND_LINE
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.requiredToAddedToCommandLine = iprot.readBool();
+              struct.setRequiredToAddedToCommandLineIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // DATA_STAGED
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.dataStaged = iprot.readBool();
+              struct.setDataStagedIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, InputDataObjectType struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        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.writeI32(struct.type.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.applicationArgument != null) {
+        if (struct.isSetApplicationArgument()) {
+          oprot.writeFieldBegin(APPLICATION_ARGUMENT_FIELD_DESC);
+          oprot.writeString(struct.applicationArgument);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetStandardInput()) {
+        oprot.writeFieldBegin(STANDARD_INPUT_FIELD_DESC);
+        oprot.writeBool(struct.standardInput);
+        oprot.writeFieldEnd();
+      }
+      if (struct.userFriendlyDescription != null) {
+        if (struct.isSetUserFriendlyDescription()) {
+          oprot.writeFieldBegin(USER_FRIENDLY_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.userFriendlyDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.metaData != null) {
+        if (struct.isSetMetaData()) {
+          oprot.writeFieldBegin(META_DATA_FIELD_DESC);
+          oprot.writeString(struct.metaData);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetInputOrder()) {
+        oprot.writeFieldBegin(INPUT_ORDER_FIELD_DESC);
+        oprot.writeI32(struct.inputOrder);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetIsRequired()) {
+        oprot.writeFieldBegin(IS_REQUIRED_FIELD_DESC);
+        oprot.writeBool(struct.isRequired);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetRequiredToAddedToCommandLine()) {
+        oprot.writeFieldBegin(REQUIRED_TO_ADDED_TO_COMMAND_LINE_FIELD_DESC);
+        oprot.writeBool(struct.requiredToAddedToCommandLine);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetDataStaged()) {
+        oprot.writeFieldBegin(DATA_STAGED_FIELD_DESC);
+        oprot.writeBool(struct.dataStaged);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class InputDataObjectTypeTupleSchemeFactory implements SchemeFactory {
+    public InputDataObjectTypeTupleScheme getScheme() {
+      return new InputDataObjectTypeTupleScheme();
+    }
+  }
+
+  private static class InputDataObjectTypeTupleScheme extends TupleScheme<InputDataObjectType> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, InputDataObjectType struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.name);
+      BitSet optionals = new BitSet();
+      if (struct.isSetValue()) {
+        optionals.set(0);
+      }
+      if (struct.isSetType()) {
+        optionals.set(1);
+      }
+      if (struct.isSetApplicationArgument()) {
+        optionals.set(2);
+      }
+      if (struct.isSetStandardInput()) {
+        optionals.set(3);
+      }
+      if (struct.isSetUserFriendlyDescription()) {
+        optionals.set(4);
+      }
+      if (struct.isSetMetaData()) {
+        optionals.set(5);
+      }
+      if (struct.isSetInputOrder()) {
+        optionals.set(6);
+      }
+      if (struct.isSetIsRequired()) {
+        optionals.set(7);
+      }
+      if (struct.isSetRequiredToAddedToCommandLine()) {
+        optionals.set(8);
+      }
+      if (struct.isSetDataStaged()) {
+        optionals.set(9);
+      }
+      oprot.writeBitSet(optionals, 10);
+      if (struct.isSetValue()) {
+        oprot.writeString(struct.value);
+      }
+      if (struct.isSetType()) {
+        oprot.writeI32(struct.type.getValue());
+      }
+      if (struct.isSetApplicationArgument()) {
+        oprot.writeString(struct.applicationArgument);
+      }
+      if (struct.isSetStandardInput()) {
+        oprot.writeBool(struct.standardInput);
+      }
+      if (struct.isSetUserFriendlyDescription()) {
+        oprot.writeString(struct.userFriendlyDescription);
+      }
+      if (struct.isSetMetaData()) {
+        oprot.writeString(struct.metaData);
+      }
+      if (struct.isSetInputOrder()) {
+        oprot.writeI32(struct.inputOrder);
+      }
+      if (struct.isSetIsRequired()) {
+        oprot.writeBool(struct.isRequired);
+      }
+      if (struct.isSetRequiredToAddedToCommandLine()) {
+        oprot.writeBool(struct.requiredToAddedToCommandLine);
+      }
+      if (struct.isSetDataStaged()) {
+        oprot.writeBool(struct.dataStaged);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, InputDataObjectType struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.name = iprot.readString();
+      struct.setNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(10);
+      if (incoming.get(0)) {
+        struct.value = iprot.readString();
+        struct.setValueIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.type = org.apache.airavata.model.application.io.DataType.findByValue(iprot.readI32());
+        struct.setTypeIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.applicationArgument = iprot.readString();
+        struct.setApplicationArgumentIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.standardInput = iprot.readBool();
+        struct.setStandardInputIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.userFriendlyDescription = iprot.readString();
+        struct.setUserFriendlyDescriptionIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.metaData = iprot.readString();
+        struct.setMetaDataIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.inputOrder = iprot.readI32();
+        struct.setInputOrderIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.isRequired = iprot.readBool();
+        struct.setIsRequiredIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.requiredToAddedToCommandLine = iprot.readBool();
+        struct.setRequiredToAddedToCommandLineIsSet(true);
+      }
+      if (incoming.get(9)) {
+        struct.dataStaged = iprot.readBool();
+        struct.setDataStagedIsSet(true);
+      }
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
new file mode 100644
index 0000000..f63413c
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
@@ -0,0 +1,649 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.task;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmissionTaskModel, JobSubmissionTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionTaskModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionTaskModel");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_PROTOCOL_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionProtocol", org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField WALL_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("wallTime", org.apache.thrift.protocol.TType.I32, (short)3);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new JobSubmissionTaskModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new JobSubmissionTaskModelTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
+   */
+  public org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol jobSubmissionProtocol; // required
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+   */
+  public org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode; // required
+  public int wallTime; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
+     */
+    JOB_SUBMISSION_PROTOCOL((short)1, "jobSubmissionProtocol"),
+    /**
+     * 
+     * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+     */
+    MONITOR_MODE((short)2, "monitorMode"),
+    WALL_TIME((short)3, "wallTime");
+
+    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: // JOB_SUBMISSION_PROTOCOL
+          return JOB_SUBMISSION_PROTOCOL;
+        case 2: // MONITOR_MODE
+          return MONITOR_MODE;
+        case 3: // WALL_TIME
+          return WALL_TIME;
+        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 __WALLTIME_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.WALL_TIME};
+  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.JOB_SUBMISSION_PROTOCOL, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionProtocol", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.class)));
+    tmpMap.put(_Fields.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.appcatalog.computeresource.MonitorMode.class)));
+    tmpMap.put(_Fields.WALL_TIME, new org.apache.thrift.meta_data.FieldMetaData("wallTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JobSubmissionTaskModel.class, metaDataMap);
+  }
+
+  public JobSubmissionTaskModel() {
+  }
+
+  public JobSubmissionTaskModel(
+    org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol jobSubmissionProtocol,
+    org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode)
+  {
+    this();
+    this.jobSubmissionProtocol = jobSubmissionProtocol;
+    this.monitorMode = monitorMode;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public JobSubmissionTaskModel(JobSubmissionTaskModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetJobSubmissionProtocol()) {
+      this.jobSubmissionProtocol = other.jobSubmissionProtocol;
+    }
+    if (other.isSetMonitorMode()) {
+      this.monitorMode = other.monitorMode;
+    }
+    this.wallTime = other.wallTime;
+  }
+
+  public JobSubmissionTaskModel deepCopy() {
+    return new JobSubmissionTaskModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionProtocol = null;
+    this.monitorMode = null;
+    setWallTimeIsSet(false);
+    this.wallTime = 0;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
+   */
+  public org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol getJobSubmissionProtocol() {
+    return this.jobSubmissionProtocol;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol
+   */
+  public JobSubmissionTaskModel setJobSubmissionProtocol(org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol jobSubmissionProtocol) {
+    this.jobSubmissionProtocol = jobSubmissionProtocol;
+    return this;
+  }
+
+  public void unsetJobSubmissionProtocol() {
+    this.jobSubmissionProtocol = null;
+  }
+
+  /** Returns true if field jobSubmissionProtocol is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionProtocol() {
+    return this.jobSubmissionProtocol != null;
+  }
+
+  public void setJobSubmissionProtocolIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionProtocol = null;
+    }
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+   */
+  public org.apache.airavata.model.appcatalog.computeresource.MonitorMode getMonitorMode() {
+    return this.monitorMode;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+   */
+  public JobSubmissionTaskModel setMonitorMode(org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode) {
+    this.monitorMode = monitorMode;
+    return this;
+  }
+
+  public void unsetMonitorMode() {
+    this.monitorMode = null;
+  }
+
+  /** Returns true if field monitorMode is set (has been assigned a value) and false otherwise */
+  public boolean isSetMonitorMode() {
+    return this.monitorMode != null;
+  }
+
+  public void setMonitorModeIsSet(boolean value) {
+    if (!value) {
+      this.monitorMode = null;
+    }
+  }
+
+  public int getWallTime() {
+    return this.wallTime;
+  }
+
+  public JobSubmissionTaskModel setWallTime(int wallTime) {
+    this.wallTime = wallTime;
+    setWallTimeIsSet(true);
+    return this;
+  }
+
+  public void unsetWallTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WALLTIME_ISSET_ID);
+  }
+
+  /** Returns true if field wallTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetWallTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __WALLTIME_ISSET_ID);
+  }
+
+  public void setWallTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WALLTIME_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case JOB_SUBMISSION_PROTOCOL:
+      if (value == null) {
+        unsetJobSubmissionProtocol();
+      } else {
+        setJobSubmissionProtocol((org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol)value);
+      }
+      break;
+
+    case MONITOR_MODE:
+      if (value == null) {
+        unsetMonitorMode();
+      } else {
+        setMonitorMode((org.apache.airavata.model.appcatalog.computeresource.MonitorMode)value);
+      }
+      break;
+
+    case WALL_TIME:
+      if (value == null) {
+        unsetWallTime();
+      } else {
+        setWallTime((Integer)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_PROTOCOL:
+      return getJobSubmissionProtocol();
+
+    case MONITOR_MODE:
+      return getMonitorMode();
+
+    case WALL_TIME:
+      return Integer.valueOf(getWallTime());
+
+    }
+    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 JOB_SUBMISSION_PROTOCOL:
+      return isSetJobSubmissionProtocol();
+    case MONITOR_MODE:
+      return isSetMonitorMode();
+    case WALL_TIME:
+      return isSetWallTime();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof JobSubmissionTaskModel)
+      return this.equals((JobSubmissionTaskModel)that);
+    return false;
+  }
+
+  public boolean equals(JobSubmissionTaskModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionProtocol = true && this.isSetJobSubmissionProtocol();
+    boolean that_present_jobSubmissionProtocol = true && that.isSetJobSubmissionProtocol();
+    if (this_present_jobSubmissionProtocol || that_present_jobSubmissionProtocol) {
+      if (!(this_present_jobSubmissionProtocol && that_present_jobSubmissionProtocol))
+        return false;
+      if (!this.jobSubmissionProtocol.equals(that.jobSubmissionProtocol))
+        return false;
+    }
+
+    boolean this_present_monitorMode = true && this.isSetMonitorMode();
+    boolean that_present_monitorMode = true && that.isSetMonitorMode();
+    if (this_present_monitorMode || that_present_monitorMode) {
+      if (!(this_present_monitorMode && that_present_monitorMode))
+        return false;
+      if (!this.monitorMode.equals(that.monitorMode))
+        return false;
+    }
+
+    boolean this_present_wallTime = true && this.isSetWallTime();
+    boolean that_present_wallTime = true && that.isSetWallTime();
+    if (this_present_wallTime || that_present_wallTime) {
+      if (!(this_present_wallTime && that_present_wallTime))
+        return false;
+      if (this.wallTime != that.wallTime)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_jobSubmissionProtocol = true && (isSetJobSubmissionProtocol());
+    list.add(present_jobSubmissionProtocol);
+    if (present_jobSubmissionProtocol)
+      list.add(jobSubmissionProtocol.getValue());
+
+    boolean present_monitorMode = true && (isSetMonitorMode());
+    list.add(present_monitorMode);
+    if (present_monitorMode)
+      list.add(monitorMode.getValue());
+
+    boolean present_wallTime = true && (isSetWallTime());
+    list.add(present_wallTime);
+    if (present_wallTime)
+      list.add(wallTime);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(JobSubmissionTaskModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionProtocol()).compareTo(other.isSetJobSubmissionProtocol());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionProtocol()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionProtocol, other.jobSubmissionProtocol);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMonitorMode()).compareTo(other.isSetMonitorMode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMonitorMode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.monitorMode, other.monitorMode);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetWallTime()).compareTo(other.isSetWallTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWallTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.wallTime, other.wallTime);
+      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("JobSubmissionTaskModel(");
+    boolean first = true;
+
+    sb.append("jobSubmissionProtocol:");
+    if (this.jobSubmissionProtocol == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionProtocol);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("monitorMode:");
+    if (this.monitorMode == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.monitorMode);
+    }
+    first = false;
+    if (isSetWallTime()) {
+      if (!first) sb.append(", ");
+      sb.append("wallTime:");
+      sb.append(this.wallTime);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (jobSubmissionProtocol == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionProtocol' was not present! Struct: " + toString());
+    }
+    if (monitorMode == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'monitorMode' was not present! 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 JobSubmissionTaskModelStandardSchemeFactory implements SchemeFactory {
+    public JobSubmissionTaskModelStandardScheme getScheme() {
+      return new JobSubmissionTaskModelStandardScheme();
+    }
+  }
+
+  private static class JobSubmissionTaskModelStandardScheme extends StandardScheme<JobSubmissionTaskModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, JobSubmissionTaskModel struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // JOB_SUBMISSION_PROTOCOL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.jobSubmissionProtocol = org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.findByValue(iprot.readI32());
+              struct.setJobSubmissionProtocolIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // MONITOR_MODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
+              struct.setMonitorModeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // WALL_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.wallTime = iprot.readI32();
+              struct.setWallTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, JobSubmissionTaskModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionProtocol != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_PROTOCOL_FIELD_DESC);
+        oprot.writeI32(struct.jobSubmissionProtocol.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.monitorMode != null) {
+        oprot.writeFieldBegin(MONITOR_MODE_FIELD_DESC);
+        oprot.writeI32(struct.monitorMode.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetWallTime()) {
+        oprot.writeFieldBegin(WALL_TIME_FIELD_DESC);
+        oprot.writeI32(struct.wallTime);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class JobSubmissionTaskModelTupleSchemeFactory implements SchemeFactory {
+    public JobSubmissionTaskModelTupleScheme getScheme() {
+      return new JobSubmissionTaskModelTupleScheme();
+    }
+  }
+
+  private static class JobSubmissionTaskModelTupleScheme extends TupleScheme<JobSubmissionTaskModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, JobSubmissionTaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.jobSubmissionProtocol.getValue());
+      oprot.writeI32(struct.monitorMode.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetWallTime()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetWallTime()) {
+        oprot.writeI32(struct.wallTime);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, JobSubmissionTaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionProtocol = org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol.findByValue(iprot.readI32());
+      struct.setJobSubmissionProtocolIsSet(true);
+      struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
+      struct.setMonitorModeIsSet(true);
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        struct.wallTime = iprot.readI32();
+        struct.setWallTimeIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
new file mode 100644
index 0000000..bdc67aa
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
@@ -0,0 +1,424 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.task;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class MonitorTaskModel implements org.apache.thrift.TBase<MonitorTaskModel, MonitorTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<MonitorTaskModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MonitorTaskModel");
+
+  private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", org.apache.thrift.protocol.TType.I32, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new MonitorTaskModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new MonitorTaskModelTupleSchemeFactory());
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+   */
+  public org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * 
+     * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+     */
+    MONITOR_MODE((short)1, "monitorMode");
+
+    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: // MONITOR_MODE
+          return MONITOR_MODE;
+        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
+  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.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.airavata.model.appcatalog.computeresource.MonitorMode.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(MonitorTaskModel.class, metaDataMap);
+  }
+
+  public MonitorTaskModel() {
+  }
+
+  public MonitorTaskModel(
+    org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode)
+  {
+    this();
+    this.monitorMode = monitorMode;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public MonitorTaskModel(MonitorTaskModel other) {
+    if (other.isSetMonitorMode()) {
+      this.monitorMode = other.monitorMode;
+    }
+  }
+
+  public MonitorTaskModel deepCopy() {
+    return new MonitorTaskModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.monitorMode = null;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+   */
+  public org.apache.airavata.model.appcatalog.computeresource.MonitorMode getMonitorMode() {
+    return this.monitorMode;
+  }
+
+  /**
+   * 
+   * @see org.apache.airavata.model.appcatalog.computeresource.MonitorMode
+   */
+  public MonitorTaskModel setMonitorMode(org.apache.airavata.model.appcatalog.computeresource.MonitorMode monitorMode) {
+    this.monitorMode = monitorMode;
+    return this;
+  }
+
+  public void unsetMonitorMode() {
+    this.monitorMode = null;
+  }
+
+  /** Returns true if field monitorMode is set (has been assigned a value) and false otherwise */
+  public boolean isSetMonitorMode() {
+    return this.monitorMode != null;
+  }
+
+  public void setMonitorModeIsSet(boolean value) {
+    if (!value) {
+      this.monitorMode = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case MONITOR_MODE:
+      if (value == null) {
+        unsetMonitorMode();
+      } else {
+        setMonitorMode((org.apache.airavata.model.appcatalog.computeresource.MonitorMode)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case MONITOR_MODE:
+      return getMonitorMode();
+
+    }
+    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 MONITOR_MODE:
+      return isSetMonitorMode();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof MonitorTaskModel)
+      return this.equals((MonitorTaskModel)that);
+    return false;
+  }
+
+  public boolean equals(MonitorTaskModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_monitorMode = true && this.isSetMonitorMode();
+    boolean that_present_monitorMode = true && that.isSetMonitorMode();
+    if (this_present_monitorMode || that_present_monitorMode) {
+      if (!(this_present_monitorMode && that_present_monitorMode))
+        return false;
+      if (!this.monitorMode.equals(that.monitorMode))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_monitorMode = true && (isSetMonitorMode());
+    list.add(present_monitorMode);
+    if (present_monitorMode)
+      list.add(monitorMode.getValue());
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(MonitorTaskModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetMonitorMode()).compareTo(other.isSetMonitorMode());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMonitorMode()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.monitorMode, other.monitorMode);
+      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("MonitorTaskModel(");
+    boolean first = true;
+
+    sb.append("monitorMode:");
+    if (this.monitorMode == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.monitorMode);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (monitorMode == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'monitorMode' was not present! 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 MonitorTaskModelStandardSchemeFactory implements SchemeFactory {
+    public MonitorTaskModelStandardScheme getScheme() {
+      return new MonitorTaskModelStandardScheme();
+    }
+  }
+
+  private static class MonitorTaskModelStandardScheme extends StandardScheme<MonitorTaskModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, MonitorTaskModel 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: // MONITOR_MODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
+              struct.setMonitorModeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, MonitorTaskModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.monitorMode != null) {
+        oprot.writeFieldBegin(MONITOR_MODE_FIELD_DESC);
+        oprot.writeI32(struct.monitorMode.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class MonitorTaskModelTupleSchemeFactory implements SchemeFactory {
+    public MonitorTaskModelTupleScheme getScheme() {
+      return new MonitorTaskModelTupleScheme();
+    }
+  }
+
+  private static class MonitorTaskModelTupleScheme extends TupleScheme<MonitorTaskModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, MonitorTaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI32(struct.monitorMode.getValue());
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, MonitorTaskModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.monitorMode = org.apache.airavata.model.appcatalog.computeresource.MonitorMode.findByValue(iprot.readI32());
+      struct.setMonitorModeIsSet(true);
+    }
+  }
+
+}
+


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

Posted by sc...@apache.org.
adding thrift generated files


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/25da582a
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/25da582a
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/25da582a

Branch: refs/heads/data-manager
Commit: 25da582a518b4c34e5d8dbe410ff9c4db794a9eb
Parents: 0f782d8
Author: scnakandala <su...@gmail.com>
Authored: Wed Dec 2 11:46:37 2015 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Tue Jan 12 10:56:04 2016 -0500

----------------------------------------------------------------------
 .../org/apache/airavata/model/Workflow.java     | 1062 ++++++++
 .../ApplicationDeploymentDescription.java       | 1937 +++++++++++++
 .../appdeployment/ApplicationModule.java        |  745 +++++
 .../ApplicationParallelismType.java             |   90 +
 .../appcatalog/appdeployment/CommandObject.java |  525 ++++
 .../appcatalog/appdeployment/SetEnvPaths.java   |  629 +++++
 .../ApplicationInterfaceDescription.java        | 1114 ++++++++
 .../appcatalog/computeresource/BatchQueue.java  | 1029 +++++++
 .../computeresource/CloudJobSubmission.java     |  953 +++++++
 .../ComputeResourceDescription.java             | 1821 +++++++++++++
 .../appcatalog/computeresource/FileSystems.java |   87 +
 .../computeresource/GlobusJobSubmission.java    |  688 +++++
 .../computeresource/JobManagerCommand.java      |  102 +
 .../computeresource/JobSubmissionInterface.java |  637 +++++
 .../computeresource/JobSubmissionProtocol.java  |   90 +
 .../computeresource/LOCALSubmission.java        |  643 +++++
 .../appcatalog/computeresource/MonitorMode.java |   79 +
 .../computeresource/ProviderName.java           |   69 +
 .../computeresource/ResourceJobManager.java     |  933 +++++++
 .../computeresource/ResourceJobManagerType.java |   90 +
 .../computeresource/SSHJobSubmission.java       | 1146 ++++++++
 .../computeresource/UnicoreJobSubmission.java   |  637 +++++
 .../ComputeResourcePreference.java              | 1329 +++++++++
 .../gatewayprofile/GatewayResourceProfile.java  |  854 ++++++
 .../gatewayprofile/StoragePreference.java       |  733 +++++
 .../StorageResourceDescription.java             |  905 +++++++
 .../airavata/model/application/io/DataType.java |   78 +
 .../application/io/InputDataObjectType.java     | 1493 ++++++++++
 .../application/io/OutputDataObjectType.java    | 1393 ++++++++++
 .../airavata/model/commons/ErrorModel.java      |  991 +++++++
 .../model/commons/ValidationResults.java        |  562 ++++
 .../airavata/model/commons/ValidatorResult.java |  525 ++++
 .../commons/airavata_commonsConstants.java      |   58 +
 .../airavata/model/data/movement/DMType.java    |   62 +
 .../data/movement/DataMovementInterface.java    |  637 +++++
 .../data/movement/DataMovementProtocol.java     |   87 +
 .../data/movement/GridFTPDataMovement.java      |  687 +++++
 .../model/data/movement/LOCALDataMovement.java  |  420 +++
 .../model/data/movement/SCPDataMovement.java    |  754 ++++++
 .../model/data/movement/SecurityProtocol.java   |   88 +
 .../data/movement/UnicoreDataMovement.java      |  635 +++++
 .../data/resource/ReplicaLocationModel.java     |  462 ++++
 .../model/data/resource/ResourceModel.java      |  684 +++++
 .../model/error/AiravataClientException.java    |  550 ++++
 .../airavata/model/error/AiravataErrorType.java |   99 +
 .../model/error/AiravataSystemException.java    |  545 ++++
 .../model/error/AuthenticationException.java    |  413 +++
 .../model/error/AuthorizationException.java     |  413 +++
 .../error/ExperimentNotFoundException.java      |  415 +++
 .../model/error/InvalidRequestException.java    |  414 +++
 .../model/error/LaunchValidationException.java  |  524 ++++
 .../model/error/ProjectNotFoundException.java   |  413 +++
 .../airavata/model/error/TimedOutException.java |  305 +++
 .../airavata/model/error/ValidationResults.java |  562 ++++
 .../airavata/model/error/ValidatorResult.java   |  518 ++++
 .../model/experiment/ExperimentModel.java       | 2504 +++++++++++++++++
 .../experiment/ExperimentSearchFields.java      |   77 +
 .../model/experiment/ExperimentStatistics.java  | 1855 +++++++++++++
 .../experiment/ExperimentSummaryModel.java      | 1448 ++++++++++
 .../model/experiment/ExperimentType.java        |   62 +
 .../experiment/UserConfigurationDataModel.java  | 1148 ++++++++
 .../org/apache/airavata/model/job/JobModel.java | 1566 +++++++++++
 .../event/ExperimentStatusChangeEvent.java      |  626 +++++
 .../model/messaging/event/JobIdentifier.java    |  812 ++++++
 .../messaging/event/JobStatusChangeEvent.java   |  530 ++++
 .../event/JobStatusChangeRequestEvent.java      |  530 ++++
 .../airavata/model/messaging/event/Message.java |  870 ++++++
 .../model/messaging/event/MessageLevel.java     |   68 +
 .../model/messaging/event/MessageType.java      |   77 +
 .../messaging/event/ProcessIdentifier.java      |  610 +++++
 .../event/ProcessStatusChangeEvent.java         |  530 ++++
 .../event/ProcessStatusChangeRequestEvent.java  |  530 ++++
 .../messaging/event/ProcessSubmitEvent.java     |  711 +++++
 .../messaging/event/ProcessTerminateEvent.java  |  610 +++++
 .../model/messaging/event/TaskIdentifier.java   |  711 +++++
 .../messaging/event/TaskOutputChangeEvent.java  |  568 ++++
 .../messaging/event/TaskStatusChangeEvent.java  |  530 ++++
 .../event/TaskStatusChangeRequestEvent.java     |  530 ++++
 .../airavata/model/process/ProcessModel.java    | 2553 ++++++++++++++++++
 .../ComputationalResourceSchedulingModel.java   | 1243 +++++++++
 .../airavata/model/security/AuthzToken.java     |  571 ++++
 .../airavata/model/status/ExperimentState.java  |   83 +
 .../airavata/model/status/ExperimentStatus.java |  652 +++++
 .../apache/airavata/model/status/JobState.java  |   80 +
 .../apache/airavata/model/status/JobStatus.java |  639 +++++
 .../airavata/model/status/ProcessState.java     |   98 +
 .../airavata/model/status/ProcessStatus.java    |  639 +++++
 .../apache/airavata/model/status/TaskState.java |   71 +
 .../airavata/model/status/TaskStatus.java       |  639 +++++
 .../airavata/model/task/DataStageType.java      |   69 +
 .../model/task/DataStagingTaskModel.java        | 1165 ++++++++
 .../model/task/EnvironmentSetupTaskModel.java   |  529 ++++
 .../model/task/JobSubmissionTaskModel.java      |  649 +++++
 .../airavata/model/task/MonitorTaskModel.java   |  424 +++
 .../apache/airavata/model/task/TaskModel.java   | 1441 ++++++++++
 .../apache/airavata/model/task/TaskTypes.java   |   78 +
 .../airavata/model/workspace/Gateway.java       |  733 +++++
 .../apache/airavata/model/workspace/Group.java  |  519 ++++
 .../airavata/model/workspace/Project.java       | 1140 ++++++++
 .../apache/airavata/model/workspace/User.java   |  573 ++++
 .../airavata/data_resource_models_constants.cpp |   34 +
 .../airavata/data_resource_models_constants.h   |   41 +
 .../lib/airavata/data_resource_models_types.cpp |  299 ++
 .../lib/airavata/data_resource_models_types.h   |  149 +
 .../lib/Airavata/Model/Data/Resource/Types.php  |  270 ++
 .../airavata/model/data/resource/__init__.py    |    1 +
 .../airavata/model/data/resource/constants.py   |   11 +
 .../airavata/model/data/resource/ttypes.py      |  191 ++
 .../data/resource/ReplicaLocationModel.java     |  459 ++++
 .../model/data/resource/ResourceModel.java      |  679 +++++
 110 files changed, 67939 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/25da582a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/Workflow.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/Workflow.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/Workflow.java
new file mode 100644
index 0000000..47422e2
--- /dev/null
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/model/Workflow.java
@@ -0,0 +1,1062 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-12-2")
+public class Workflow implements org.apache.thrift.TBase<Workflow, Workflow._Fields>, java.io.Serializable, Cloneable, Comparable<Workflow> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Workflow");
+
+  private static final org.apache.thrift.protocol.TField TEMPLATE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("templateId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField GRAPH_FIELD_DESC = new org.apache.thrift.protocol.TField("graph", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField IMAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("image", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField WORKFLOW_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("workflowInputs", org.apache.thrift.protocol.TType.LIST, (short)5);
+  private static final org.apache.thrift.protocol.TField WORKFLOW_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("workflowOutputs", org.apache.thrift.protocol.TType.LIST, (short)6);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new WorkflowStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new WorkflowTupleSchemeFactory());
+  }
+
+  public String templateId; // required
+  public String name; // required
+  public String graph; // optional
+  public ByteBuffer image; // optional
+  public List<org.apache.airavata.model.application.io.InputDataObjectType> workflowInputs; // optional
+  public List<org.apache.airavata.model.application.io.OutputDataObjectType> workflowOutputs; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    TEMPLATE_ID((short)1, "templateId"),
+    NAME((short)2, "name"),
+    GRAPH((short)3, "graph"),
+    IMAGE((short)4, "image"),
+    WORKFLOW_INPUTS((short)5, "workflowInputs"),
+    WORKFLOW_OUTPUTS((short)6, "workflowOutputs");
+
+    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: // TEMPLATE_ID
+          return TEMPLATE_ID;
+        case 2: // NAME
+          return NAME;
+        case 3: // GRAPH
+          return GRAPH;
+        case 4: // IMAGE
+          return IMAGE;
+        case 5: // WORKFLOW_INPUTS
+          return WORKFLOW_INPUTS;
+        case 6: // WORKFLOW_OUTPUTS
+          return WORKFLOW_OUTPUTS;
+        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 _Fields optionals[] = {_Fields.GRAPH,_Fields.IMAGE,_Fields.WORKFLOW_INPUTS,_Fields.WORKFLOW_OUTPUTS};
+  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.TEMPLATE_ID, new org.apache.thrift.meta_data.FieldMetaData("templateId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.GRAPH, new org.apache.thrift.meta_data.FieldMetaData("graph", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.IMAGE, new org.apache.thrift.meta_data.FieldMetaData("image", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
+    tmpMap.put(_Fields.WORKFLOW_INPUTS, new org.apache.thrift.meta_data.FieldMetaData("workflowInputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.InputDataObjectType.class))));
+    tmpMap.put(_Fields.WORKFLOW_OUTPUTS, new org.apache.thrift.meta_data.FieldMetaData("workflowOutputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.application.io.OutputDataObjectType.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Workflow.class, metaDataMap);
+  }
+
+  public Workflow() {
+    this.templateId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public Workflow(
+    String templateId,
+    String name)
+  {
+    this();
+    this.templateId = templateId;
+    this.name = name;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Workflow(Workflow other) {
+    if (other.isSetTemplateId()) {
+      this.templateId = other.templateId;
+    }
+    if (other.isSetName()) {
+      this.name = other.name;
+    }
+    if (other.isSetGraph()) {
+      this.graph = other.graph;
+    }
+    if (other.isSetImage()) {
+      this.image = org.apache.thrift.TBaseHelper.copyBinary(other.image);
+    }
+    if (other.isSetWorkflowInputs()) {
+      List<org.apache.airavata.model.application.io.InputDataObjectType> __this__workflowInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(other.workflowInputs.size());
+      for (org.apache.airavata.model.application.io.InputDataObjectType other_element : other.workflowInputs) {
+        __this__workflowInputs.add(new org.apache.airavata.model.application.io.InputDataObjectType(other_element));
+      }
+      this.workflowInputs = __this__workflowInputs;
+    }
+    if (other.isSetWorkflowOutputs()) {
+      List<org.apache.airavata.model.application.io.OutputDataObjectType> __this__workflowOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(other.workflowOutputs.size());
+      for (org.apache.airavata.model.application.io.OutputDataObjectType other_element : other.workflowOutputs) {
+        __this__workflowOutputs.add(new org.apache.airavata.model.application.io.OutputDataObjectType(other_element));
+      }
+      this.workflowOutputs = __this__workflowOutputs;
+    }
+  }
+
+  public Workflow deepCopy() {
+    return new Workflow(this);
+  }
+
+  @Override
+  public void clear() {
+    this.templateId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.name = null;
+    this.graph = null;
+    this.image = null;
+    this.workflowInputs = null;
+    this.workflowOutputs = null;
+  }
+
+  public String getTemplateId() {
+    return this.templateId;
+  }
+
+  public Workflow setTemplateId(String templateId) {
+    this.templateId = templateId;
+    return this;
+  }
+
+  public void unsetTemplateId() {
+    this.templateId = null;
+  }
+
+  /** Returns true if field templateId is set (has been assigned a value) and false otherwise */
+  public boolean isSetTemplateId() {
+    return this.templateId != null;
+  }
+
+  public void setTemplateIdIsSet(boolean value) {
+    if (!value) {
+      this.templateId = null;
+    }
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public Workflow setName(String name) {
+    this.name = name;
+    return this;
+  }
+
+  public void unsetName() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false otherwise */
+  public boolean isSetName() {
+    return this.name != null;
+  }
+
+  public void setNameIsSet(boolean value) {
+    if (!value) {
+      this.name = null;
+    }
+  }
+
+  public String getGraph() {
+    return this.graph;
+  }
+
+  public Workflow setGraph(String graph) {
+    this.graph = graph;
+    return this;
+  }
+
+  public void unsetGraph() {
+    this.graph = null;
+  }
+
+  /** Returns true if field graph is set (has been assigned a value) and false otherwise */
+  public boolean isSetGraph() {
+    return this.graph != null;
+  }
+
+  public void setGraphIsSet(boolean value) {
+    if (!value) {
+      this.graph = null;
+    }
+  }
+
+  public byte[] getImage() {
+    setImage(org.apache.thrift.TBaseHelper.rightSize(image));
+    return image == null ? null : image.array();
+  }
+
+  public ByteBuffer bufferForImage() {
+    return org.apache.thrift.TBaseHelper.copyBinary(image);
+  }
+
+  public Workflow setImage(byte[] image) {
+    this.image = image == null ? (ByteBuffer)null : ByteBuffer.wrap(Arrays.copyOf(image, image.length));
+    return this;
+  }
+
+  public Workflow setImage(ByteBuffer image) {
+    this.image = org.apache.thrift.TBaseHelper.copyBinary(image);
+    return this;
+  }
+
+  public void unsetImage() {
+    this.image = null;
+  }
+
+  /** Returns true if field image is set (has been assigned a value) and false otherwise */
+  public boolean isSetImage() {
+    return this.image != null;
+  }
+
+  public void setImageIsSet(boolean value) {
+    if (!value) {
+      this.image = null;
+    }
+  }
+
+  public int getWorkflowInputsSize() {
+    return (this.workflowInputs == null) ? 0 : this.workflowInputs.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.application.io.InputDataObjectType> getWorkflowInputsIterator() {
+    return (this.workflowInputs == null) ? null : this.workflowInputs.iterator();
+  }
+
+  public void addToWorkflowInputs(org.apache.airavata.model.application.io.InputDataObjectType elem) {
+    if (this.workflowInputs == null) {
+      this.workflowInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>();
+    }
+    this.workflowInputs.add(elem);
+  }
+
+  public List<org.apache.airavata.model.application.io.InputDataObjectType> getWorkflowInputs() {
+    return this.workflowInputs;
+  }
+
+  public Workflow setWorkflowInputs(List<org.apache.airavata.model.application.io.InputDataObjectType> workflowInputs) {
+    this.workflowInputs = workflowInputs;
+    return this;
+  }
+
+  public void unsetWorkflowInputs() {
+    this.workflowInputs = null;
+  }
+
+  /** Returns true if field workflowInputs is set (has been assigned a value) and false otherwise */
+  public boolean isSetWorkflowInputs() {
+    return this.workflowInputs != null;
+  }
+
+  public void setWorkflowInputsIsSet(boolean value) {
+    if (!value) {
+      this.workflowInputs = null;
+    }
+  }
+
+  public int getWorkflowOutputsSize() {
+    return (this.workflowOutputs == null) ? 0 : this.workflowOutputs.size();
+  }
+
+  public java.util.Iterator<org.apache.airavata.model.application.io.OutputDataObjectType> getWorkflowOutputsIterator() {
+    return (this.workflowOutputs == null) ? null : this.workflowOutputs.iterator();
+  }
+
+  public void addToWorkflowOutputs(org.apache.airavata.model.application.io.OutputDataObjectType elem) {
+    if (this.workflowOutputs == null) {
+      this.workflowOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>();
+    }
+    this.workflowOutputs.add(elem);
+  }
+
+  public List<org.apache.airavata.model.application.io.OutputDataObjectType> getWorkflowOutputs() {
+    return this.workflowOutputs;
+  }
+
+  public Workflow setWorkflowOutputs(List<org.apache.airavata.model.application.io.OutputDataObjectType> workflowOutputs) {
+    this.workflowOutputs = workflowOutputs;
+    return this;
+  }
+
+  public void unsetWorkflowOutputs() {
+    this.workflowOutputs = null;
+  }
+
+  /** Returns true if field workflowOutputs is set (has been assigned a value) and false otherwise */
+  public boolean isSetWorkflowOutputs() {
+    return this.workflowOutputs != null;
+  }
+
+  public void setWorkflowOutputsIsSet(boolean value) {
+    if (!value) {
+      this.workflowOutputs = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TEMPLATE_ID:
+      if (value == null) {
+        unsetTemplateId();
+      } else {
+        setTemplateId((String)value);
+      }
+      break;
+
+    case NAME:
+      if (value == null) {
+        unsetName();
+      } else {
+        setName((String)value);
+      }
+      break;
+
+    case GRAPH:
+      if (value == null) {
+        unsetGraph();
+      } else {
+        setGraph((String)value);
+      }
+      break;
+
+    case IMAGE:
+      if (value == null) {
+        unsetImage();
+      } else {
+        setImage((ByteBuffer)value);
+      }
+      break;
+
+    case WORKFLOW_INPUTS:
+      if (value == null) {
+        unsetWorkflowInputs();
+      } else {
+        setWorkflowInputs((List<org.apache.airavata.model.application.io.InputDataObjectType>)value);
+      }
+      break;
+
+    case WORKFLOW_OUTPUTS:
+      if (value == null) {
+        unsetWorkflowOutputs();
+      } else {
+        setWorkflowOutputs((List<org.apache.airavata.model.application.io.OutputDataObjectType>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TEMPLATE_ID:
+      return getTemplateId();
+
+    case NAME:
+      return getName();
+
+    case GRAPH:
+      return getGraph();
+
+    case IMAGE:
+      return getImage();
+
+    case WORKFLOW_INPUTS:
+      return getWorkflowInputs();
+
+    case WORKFLOW_OUTPUTS:
+      return getWorkflowOutputs();
+
+    }
+    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 TEMPLATE_ID:
+      return isSetTemplateId();
+    case NAME:
+      return isSetName();
+    case GRAPH:
+      return isSetGraph();
+    case IMAGE:
+      return isSetImage();
+    case WORKFLOW_INPUTS:
+      return isSetWorkflowInputs();
+    case WORKFLOW_OUTPUTS:
+      return isSetWorkflowOutputs();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Workflow)
+      return this.equals((Workflow)that);
+    return false;
+  }
+
+  public boolean equals(Workflow that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_templateId = true && this.isSetTemplateId();
+    boolean that_present_templateId = true && that.isSetTemplateId();
+    if (this_present_templateId || that_present_templateId) {
+      if (!(this_present_templateId && that_present_templateId))
+        return false;
+      if (!this.templateId.equals(that.templateId))
+        return false;
+    }
+
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
+        return false;
+      if (!this.name.equals(that.name))
+        return false;
+    }
+
+    boolean this_present_graph = true && this.isSetGraph();
+    boolean that_present_graph = true && that.isSetGraph();
+    if (this_present_graph || that_present_graph) {
+      if (!(this_present_graph && that_present_graph))
+        return false;
+      if (!this.graph.equals(that.graph))
+        return false;
+    }
+
+    boolean this_present_image = true && this.isSetImage();
+    boolean that_present_image = true && that.isSetImage();
+    if (this_present_image || that_present_image) {
+      if (!(this_present_image && that_present_image))
+        return false;
+      if (!this.image.equals(that.image))
+        return false;
+    }
+
+    boolean this_present_workflowInputs = true && this.isSetWorkflowInputs();
+    boolean that_present_workflowInputs = true && that.isSetWorkflowInputs();
+    if (this_present_workflowInputs || that_present_workflowInputs) {
+      if (!(this_present_workflowInputs && that_present_workflowInputs))
+        return false;
+      if (!this.workflowInputs.equals(that.workflowInputs))
+        return false;
+    }
+
+    boolean this_present_workflowOutputs = true && this.isSetWorkflowOutputs();
+    boolean that_present_workflowOutputs = true && that.isSetWorkflowOutputs();
+    if (this_present_workflowOutputs || that_present_workflowOutputs) {
+      if (!(this_present_workflowOutputs && that_present_workflowOutputs))
+        return false;
+      if (!this.workflowOutputs.equals(that.workflowOutputs))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_templateId = true && (isSetTemplateId());
+    list.add(present_templateId);
+    if (present_templateId)
+      list.add(templateId);
+
+    boolean present_name = true && (isSetName());
+    list.add(present_name);
+    if (present_name)
+      list.add(name);
+
+    boolean present_graph = true && (isSetGraph());
+    list.add(present_graph);
+    if (present_graph)
+      list.add(graph);
+
+    boolean present_image = true && (isSetImage());
+    list.add(present_image);
+    if (present_image)
+      list.add(image);
+
+    boolean present_workflowInputs = true && (isSetWorkflowInputs());
+    list.add(present_workflowInputs);
+    if (present_workflowInputs)
+      list.add(workflowInputs);
+
+    boolean present_workflowOutputs = true && (isSetWorkflowOutputs());
+    list.add(present_workflowOutputs);
+    if (present_workflowOutputs)
+      list.add(workflowOutputs);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(Workflow other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetTemplateId()).compareTo(other.isSetTemplateId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTemplateId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.templateId, other.templateId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGraph()).compareTo(other.isSetGraph());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGraph()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.graph, other.graph);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetImage()).compareTo(other.isSetImage());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetImage()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.image, other.image);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetWorkflowInputs()).compareTo(other.isSetWorkflowInputs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWorkflowInputs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.workflowInputs, other.workflowInputs);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetWorkflowOutputs()).compareTo(other.isSetWorkflowOutputs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetWorkflowOutputs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.workflowOutputs, other.workflowOutputs);
+      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("Workflow(");
+    boolean first = true;
+
+    sb.append("templateId:");
+    if (this.templateId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.templateId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("name:");
+    if (this.name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.name);
+    }
+    first = false;
+    if (isSetGraph()) {
+      if (!first) sb.append(", ");
+      sb.append("graph:");
+      if (this.graph == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.graph);
+      }
+      first = false;
+    }
+    if (isSetImage()) {
+      if (!first) sb.append(", ");
+      sb.append("image:");
+      if (this.image == null) {
+        sb.append("null");
+      } else {
+        org.apache.thrift.TBaseHelper.toString(this.image, sb);
+      }
+      first = false;
+    }
+    if (isSetWorkflowInputs()) {
+      if (!first) sb.append(", ");
+      sb.append("workflowInputs:");
+      if (this.workflowInputs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.workflowInputs);
+      }
+      first = false;
+    }
+    if (isSetWorkflowOutputs()) {
+      if (!first) sb.append(", ");
+      sb.append("workflowOutputs:");
+      if (this.workflowOutputs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.workflowOutputs);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (templateId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'templateId' was not present! Struct: " + toString());
+    }
+    if (name == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! 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 WorkflowStandardSchemeFactory implements SchemeFactory {
+    public WorkflowStandardScheme getScheme() {
+      return new WorkflowStandardScheme();
+    }
+  }
+
+  private static class WorkflowStandardScheme extends StandardScheme<Workflow> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Workflow 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: // TEMPLATE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.templateId = iprot.readString();
+              struct.setTemplateIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // GRAPH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.graph = iprot.readString();
+              struct.setGraphIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // IMAGE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.image = iprot.readBinary();
+              struct.setImageIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // WORKFLOW_INPUTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.workflowInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(_list0.size);
+                org.apache.airavata.model.application.io.InputDataObjectType _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new org.apache.airavata.model.application.io.InputDataObjectType();
+                  _elem1.read(iprot);
+                  struct.workflowInputs.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setWorkflowInputsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // WORKFLOW_OUTPUTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.workflowOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list3.size);
+                org.apache.airavata.model.application.io.OutputDataObjectType _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+                  _elem4.read(iprot);
+                  struct.workflowOutputs.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
+              struct.setWorkflowOutputsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, Workflow struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.templateId != null) {
+        oprot.writeFieldBegin(TEMPLATE_ID_FIELD_DESC);
+        oprot.writeString(struct.templateId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        oprot.writeFieldEnd();
+      }
+      if (struct.graph != null) {
+        if (struct.isSetGraph()) {
+          oprot.writeFieldBegin(GRAPH_FIELD_DESC);
+          oprot.writeString(struct.graph);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.image != null) {
+        if (struct.isSetImage()) {
+          oprot.writeFieldBegin(IMAGE_FIELD_DESC);
+          oprot.writeBinary(struct.image);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.workflowInputs != null) {
+        if (struct.isSetWorkflowInputs()) {
+          oprot.writeFieldBegin(WORKFLOW_INPUTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.workflowInputs.size()));
+            for (org.apache.airavata.model.application.io.InputDataObjectType _iter6 : struct.workflowInputs)
+            {
+              _iter6.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.workflowOutputs != null) {
+        if (struct.isSetWorkflowOutputs()) {
+          oprot.writeFieldBegin(WORKFLOW_OUTPUTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.workflowOutputs.size()));
+            for (org.apache.airavata.model.application.io.OutputDataObjectType _iter7 : struct.workflowOutputs)
+            {
+              _iter7.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class WorkflowTupleSchemeFactory implements SchemeFactory {
+    public WorkflowTupleScheme getScheme() {
+      return new WorkflowTupleScheme();
+    }
+  }
+
+  private static class WorkflowTupleScheme extends TupleScheme<Workflow> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Workflow struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.templateId);
+      oprot.writeString(struct.name);
+      BitSet optionals = new BitSet();
+      if (struct.isSetGraph()) {
+        optionals.set(0);
+      }
+      if (struct.isSetImage()) {
+        optionals.set(1);
+      }
+      if (struct.isSetWorkflowInputs()) {
+        optionals.set(2);
+      }
+      if (struct.isSetWorkflowOutputs()) {
+        optionals.set(3);
+      }
+      oprot.writeBitSet(optionals, 4);
+      if (struct.isSetGraph()) {
+        oprot.writeString(struct.graph);
+      }
+      if (struct.isSetImage()) {
+        oprot.writeBinary(struct.image);
+      }
+      if (struct.isSetWorkflowInputs()) {
+        {
+          oprot.writeI32(struct.workflowInputs.size());
+          for (org.apache.airavata.model.application.io.InputDataObjectType _iter8 : struct.workflowInputs)
+          {
+            _iter8.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetWorkflowOutputs()) {
+        {
+          oprot.writeI32(struct.workflowOutputs.size());
+          for (org.apache.airavata.model.application.io.OutputDataObjectType _iter9 : struct.workflowOutputs)
+          {
+            _iter9.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Workflow struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.templateId = iprot.readString();
+      struct.setTemplateIdIsSet(true);
+      struct.name = iprot.readString();
+      struct.setNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(4);
+      if (incoming.get(0)) {
+        struct.graph = iprot.readString();
+        struct.setGraphIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.image = iprot.readBinary();
+        struct.setImageIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.workflowInputs = new ArrayList<org.apache.airavata.model.application.io.InputDataObjectType>(_list10.size);
+          org.apache.airavata.model.application.io.InputDataObjectType _elem11;
+          for (int _i12 = 0; _i12 < _list10.size; ++_i12)
+          {
+            _elem11 = new org.apache.airavata.model.application.io.InputDataObjectType();
+            _elem11.read(iprot);
+            struct.workflowInputs.add(_elem11);
+          }
+        }
+        struct.setWorkflowInputsIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.workflowOutputs = new ArrayList<org.apache.airavata.model.application.io.OutputDataObjectType>(_list13.size);
+          org.apache.airavata.model.application.io.OutputDataObjectType _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+          {
+            _elem14 = new org.apache.airavata.model.application.io.OutputDataObjectType();
+            _elem14.read(iprot);
+            struct.workflowOutputs.add(_elem14);
+          }
+        }
+        struct.setWorkflowOutputsIsSet(true);
+      }
+    }
+  }
+
+}
+


[29/65] [abbrv] airavata git commit: adding the initial version of the data catalog

Posted by sc...@apache.org.
adding the initial version of the data catalog


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/e89f3ea6
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/e89f3ea6
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/e89f3ea6

Branch: refs/heads/data-manager
Commit: e89f3ea63a2d5950a51c4bdc61bb0c214173758d
Parents: 3df02b8
Author: scnakandala <su...@gmail.com>
Authored: Wed Dec 2 17:53:48 2015 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Tue Jan 12 10:56:04 2016 -0500

----------------------------------------------------------------------
 .../main/resources/lib/airavata/Airavata.cpp    |   40 +-
 .../src/main/resources/lib/airavata/Airavata.h  |   53 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |    2 +-
 .../resources/lib/Airavata/API/Airavata.php     |   45 +-
 .../lib/apache/airavata/api/Airavata-remote     |    2 +-
 .../lib/apache/airavata/api/Airavata.py         |   30 +-
 modules/registry/logs/airavata.log              | 2929 ++++++++++++++++++
 7 files changed, 3053 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/e89f3ea6/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index a6e3cf1..c0c97ea 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -41476,6 +41476,14 @@ uint32_t Airavata_publishDataResource_result::read(::apache::thrift::protocol::T
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -41526,7 +41534,11 @@ uint32_t Airavata_publishDataResource_result::write(::apache::thrift::protocol::
 
   xfer += oprot->writeStructBegin("Airavata_publishDataResource_result");
 
-  if (this->__isset.ire) {
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
+    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->ire.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -41573,6 +41585,14 @@ uint32_t Airavata_publishDataResource_presult::read(::apache::thrift::protocol::
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -51069,13 +51089,13 @@ bool AiravataClient::recv_isWorkflowExistWithName()
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "isWorkflowExistWithName failed: unknown result");
 }
 
-void AiravataClient::publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel)
+void AiravataClient::publishDataResource(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::DataResourceModel& resourceModel)
 {
   send_publishDataResource(authzToken, resourceModel);
-  recv_publishDataResource();
+  recv_publishDataResource(_return);
 }
 
-void AiravataClient::send_publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel)
+void AiravataClient::send_publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::DataResourceModel& resourceModel)
 {
   int32_t cseqid = 0;
   oprot_->writeMessageBegin("publishDataResource", ::apache::thrift::protocol::T_CALL, cseqid);
@@ -51090,7 +51110,7 @@ void AiravataClient::send_publishDataResource(const  ::apache::airavata::model::
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_publishDataResource()
+void AiravataClient::recv_publishDataResource(std::string& _return)
 {
 
   int32_t rseqid = 0;
@@ -51116,10 +51136,15 @@ void AiravataClient::recv_publishDataResource()
     iprot_->getTransport()->readEnd();
   }
   Airavata_publishDataResource_presult result;
+  result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
   if (result.__isset.ire) {
     throw result.ire;
   }
@@ -51132,7 +51157,7 @@ void AiravataClient::recv_publishDataResource()
   if (result.__isset.ae) {
     throw result.ae;
   }
-  return;
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "publishDataResource failed: unknown result");
 }
 
 bool AiravataProcessor::dispatchCall(::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, const std::string& fname, int32_t seqid, void* callContext) {
@@ -59895,7 +59920,8 @@ void AiravataProcessor::process_publishDataResource(int32_t seqid, ::apache::thr
 
   Airavata_publishDataResource_result result;
   try {
-    iface_->publishDataResource(args.authzToken, args.resourceModel);
+    iface_->publishDataResource(result.success, args.authzToken, args.resourceModel);
+    result.__isset.success = true;
   } catch ( ::apache::airavata::api::error::InvalidRequestException &ire) {
     result.ire = ire;
     result.__isset.ire = true;

http://git-wip-us.apache.org/repos/asf/airavata/blob/e89f3ea6/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index 0c19761..4adbd55 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -2272,7 +2272,7 @@ class AiravataIf {
   virtual void updateWorkflow(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowTemplateId, const  ::Workflow& workflow) = 0;
   virtual void getWorkflowTemplateId(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName) = 0;
   virtual bool isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName) = 0;
-  virtual void publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel) = 0;
+  virtual void publishDataResource(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::DataResourceModel& resourceModel) = 0;
 };
 
 class AiravataIfFactory {
@@ -2740,7 +2740,7 @@ class AiravataNull : virtual public AiravataIf {
     bool _return = false;
     return _return;
   }
-  void publishDataResource(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::data::resource::ResourceModel& /* resourceModel */) {
+  void publishDataResource(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::data::resource::DataResourceModel& /* resourceModel */) {
     return;
   }
 };
@@ -21353,8 +21353,8 @@ typedef struct _Airavata_publishDataResource_args__isset {
 class Airavata_publishDataResource_args {
  public:
 
-  static const char* ascii_fingerprint; // = "312BA5A54BBA157D64BAD509924F7B34";
-  static const uint8_t binary_fingerprint[16]; // = {0x31,0x2B,0xA5,0xA5,0x4B,0xBA,0x15,0x7D,0x64,0xBA,0xD5,0x09,0x92,0x4F,0x7B,0x34};
+  static const char* ascii_fingerprint; // = "3CA987536633345DF8FE6263AF84A8FF";
+  static const uint8_t binary_fingerprint[16]; // = {0x3C,0xA9,0x87,0x53,0x66,0x33,0x34,0x5D,0xF8,0xFE,0x62,0x63,0xAF,0x84,0xA8,0xFF};
 
   Airavata_publishDataResource_args(const Airavata_publishDataResource_args&);
   Airavata_publishDataResource_args& operator=(const Airavata_publishDataResource_args&);
@@ -21363,13 +21363,13 @@ class Airavata_publishDataResource_args {
 
   virtual ~Airavata_publishDataResource_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
-   ::apache::airavata::model::data::resource::ResourceModel resourceModel;
+   ::apache::airavata::model::data::resource::DataResourceModel resourceModel;
 
   _Airavata_publishDataResource_args__isset __isset;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
-  void __set_resourceModel(const  ::apache::airavata::model::data::resource::ResourceModel& val);
+  void __set_resourceModel(const  ::apache::airavata::model::data::resource::DataResourceModel& val);
 
   bool operator == (const Airavata_publishDataResource_args & rhs) const
   {
@@ -21395,13 +21395,13 @@ class Airavata_publishDataResource_args {
 class Airavata_publishDataResource_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "312BA5A54BBA157D64BAD509924F7B34";
-  static const uint8_t binary_fingerprint[16]; // = {0x31,0x2B,0xA5,0xA5,0x4B,0xBA,0x15,0x7D,0x64,0xBA,0xD5,0x09,0x92,0x4F,0x7B,0x34};
+  static const char* ascii_fingerprint; // = "3CA987536633345DF8FE6263AF84A8FF";
+  static const uint8_t binary_fingerprint[16]; // = {0x3C,0xA9,0x87,0x53,0x66,0x33,0x34,0x5D,0xF8,0xFE,0x62,0x63,0xAF,0x84,0xA8,0xFF};
 
 
   virtual ~Airavata_publishDataResource_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
-  const  ::apache::airavata::model::data::resource::ResourceModel* resourceModel;
+  const  ::apache::airavata::model::data::resource::DataResourceModel* resourceModel;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
@@ -21409,7 +21409,8 @@ class Airavata_publishDataResource_pargs {
 };
 
 typedef struct _Airavata_publishDataResource_result__isset {
-  _Airavata_publishDataResource_result__isset() : ire(false), ace(false), ase(false), ae(false) {}
+  _Airavata_publishDataResource_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
@@ -21419,15 +21420,16 @@ typedef struct _Airavata_publishDataResource_result__isset {
 class Airavata_publishDataResource_result {
  public:
 
-  static const char* ascii_fingerprint; // = "0603929641B3F91F81AA6AC437512303";
-  static const uint8_t binary_fingerprint[16]; // = {0x06,0x03,0x92,0x96,0x41,0xB3,0xF9,0x1F,0x81,0xAA,0x6A,0xC4,0x37,0x51,0x23,0x03};
+  static const char* ascii_fingerprint; // = "21BF57A9FE5AAA661540804D4FB9F023";
+  static const uint8_t binary_fingerprint[16]; // = {0x21,0xBF,0x57,0xA9,0xFE,0x5A,0xAA,0x66,0x15,0x40,0x80,0x4D,0x4F,0xB9,0xF0,0x23};
 
   Airavata_publishDataResource_result(const Airavata_publishDataResource_result&);
   Airavata_publishDataResource_result& operator=(const Airavata_publishDataResource_result&);
-  Airavata_publishDataResource_result() {
+  Airavata_publishDataResource_result() : success() {
   }
 
   virtual ~Airavata_publishDataResource_result() throw();
+  std::string success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
@@ -21435,6 +21437,8 @@ class Airavata_publishDataResource_result {
 
   _Airavata_publishDataResource_result__isset __isset;
 
+  void __set_success(const std::string& val);
+
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
   void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
@@ -21445,6 +21449,8 @@ class Airavata_publishDataResource_result {
 
   bool operator == (const Airavata_publishDataResource_result & rhs) const
   {
+    if (!(success == rhs.success))
+      return false;
     if (!(ire == rhs.ire))
       return false;
     if (!(ace == rhs.ace))
@@ -21468,7 +21474,8 @@ class Airavata_publishDataResource_result {
 };
 
 typedef struct _Airavata_publishDataResource_presult__isset {
-  _Airavata_publishDataResource_presult__isset() : ire(false), ace(false), ase(false), ae(false) {}
+  _Airavata_publishDataResource_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
@@ -21478,11 +21485,12 @@ typedef struct _Airavata_publishDataResource_presult__isset {
 class Airavata_publishDataResource_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "0603929641B3F91F81AA6AC437512303";
-  static const uint8_t binary_fingerprint[16]; // = {0x06,0x03,0x92,0x96,0x41,0xB3,0xF9,0x1F,0x81,0xAA,0x6A,0xC4,0x37,0x51,0x23,0x03};
+  static const char* ascii_fingerprint; // = "21BF57A9FE5AAA661540804D4FB9F023";
+  static const uint8_t binary_fingerprint[16]; // = {0x21,0xBF,0x57,0xA9,0xFE,0x5A,0xAA,0x66,0x15,0x40,0x80,0x4D,0x4F,0xB9,0xF0,0x23};
 
 
   virtual ~Airavata_publishDataResource_presult() throw();
+  std::string* success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
@@ -21916,9 +21924,9 @@ class AiravataClient : virtual public AiravataIf {
   bool isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName);
   void send_isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName);
   bool recv_isWorkflowExistWithName();
-  void publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel);
-  void send_publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel);
-  void recv_publishDataResource();
+  void publishDataResource(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::DataResourceModel& resourceModel);
+  void send_publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::DataResourceModel& resourceModel);
+  void recv_publishDataResource(std::string& _return);
  protected:
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;
@@ -23500,13 +23508,14 @@ class AiravataMultiface : virtual public AiravataIf {
     return ifaces_[i]->isWorkflowExistWithName(authzToken, workflowName);
   }
 
-  void publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel) {
+  void publishDataResource(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::DataResourceModel& resourceModel) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
-      ifaces_[i]->publishDataResource(authzToken, resourceModel);
+      ifaces_[i]->publishDataResource(_return, authzToken, resourceModel);
     }
-    ifaces_[i]->publishDataResource(authzToken, resourceModel);
+    ifaces_[i]->publishDataResource(_return, authzToken, resourceModel);
+    return;
   }
 
 };

http://git-wip-us.apache.org/repos/asf/airavata/blob/e89f3ea6/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index 1a949d0..16d1af9 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -2688,7 +2688,7 @@ class AiravataHandler : virtual public AiravataIf {
     printf("isWorkflowExistWithName\n");
   }
 
-  void publishDataResource(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::ResourceModel& resourceModel) {
+  void publishDataResource(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::resource::DataResourceModel& resourceModel) {
     // Your implementation goes here
     printf("publishDataResource\n");
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/e89f3ea6/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index ba22aca..326751b 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -3125,13 +3125,14 @@ interface AiravataIf {
   public function isWorkflowExistWithName(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
-   * @param \Airavata\Model\Data\Resource\ResourceModel $resourceModel
+   * @param \Airavata\Model\Data\Resource\DataResourceModel $resourceModel
+   * @return string
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function publishDataResource(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Resource\ResourceModel $resourceModel);
+  public function publishDataResource(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Resource\DataResourceModel $resourceModel);
 }
 
 class AiravataClient implements \Airavata\API\AiravataIf {
@@ -11691,13 +11692,13 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("isWorkflowExistWithName failed: unknown result");
   }
 
-  public function publishDataResource(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Resource\ResourceModel $resourceModel)
+  public function publishDataResource(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Resource\DataResourceModel $resourceModel)
   {
     $this->send_publishDataResource($authzToken, $resourceModel);
-    $this->recv_publishDataResource();
+    return $this->recv_publishDataResource();
   }
 
-  public function send_publishDataResource(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Resource\ResourceModel $resourceModel)
+  public function send_publishDataResource(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Resource\DataResourceModel $resourceModel)
   {
     $args = new \Airavata\API\Airavata_publishDataResource_args();
     $args->authzToken = $authzToken;
@@ -11737,6 +11738,9 @@ class AiravataClient implements \Airavata\API\AiravataIf {
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
+    if ($result->success !== null) {
+      return $result->success;
+    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
@@ -11749,7 +11753,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    return;
+    throw new \Exception("publishDataResource failed: unknown result");
   }
 
 }
@@ -52291,7 +52295,7 @@ class Airavata_publishDataResource_args {
    */
   public $authzToken = null;
   /**
-   * @var \Airavata\Model\Data\Resource\ResourceModel
+   * @var \Airavata\Model\Data\Resource\DataResourceModel
    */
   public $resourceModel = null;
 
@@ -52306,7 +52310,7 @@ class Airavata_publishDataResource_args {
         2 => array(
           'var' => 'resourceModel',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Data\Resource\ResourceModel',
+          'class' => '\Airavata\Model\Data\Resource\DataResourceModel',
           ),
         );
     }
@@ -52349,7 +52353,7 @@ class Airavata_publishDataResource_args {
           break;
         case 2:
           if ($ftype == TType::STRUCT) {
-            $this->resourceModel = new \Airavata\Model\Data\Resource\ResourceModel();
+            $this->resourceModel = new \Airavata\Model\Data\Resource\DataResourceModel();
             $xfer += $this->resourceModel->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -52395,6 +52399,10 @@ class Airavata_publishDataResource_result {
   static $_TSPEC;
 
   /**
+   * @var string
+   */
+  public $success = null;
+  /**
    * @var \Airavata\API\Error\InvalidRequestException
    */
   public $ire = null;
@@ -52414,6 +52422,10 @@ class Airavata_publishDataResource_result {
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::STRING,
+          ),
         1 => array(
           'var' => 'ire',
           'type' => TType::STRUCT,
@@ -52437,6 +52449,9 @@ class Airavata_publishDataResource_result {
         );
     }
     if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
       if (isset($vals['ire'])) {
         $this->ire = $vals['ire'];
       }
@@ -52471,6 +52486,13 @@ class Airavata_publishDataResource_result {
       }
       switch ($fid)
       {
+        case 0:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         case 1:
           if ($ftype == TType::STRUCT) {
             $this->ire = new \Airavata\API\Error\InvalidRequestException();
@@ -52516,6 +52538,11 @@ class Airavata_publishDataResource_result {
   public function write($output) {
     $xfer = 0;
     $xfer += $output->writeStructBegin('Airavata_publishDataResource_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
+      $xfer += $output->writeString($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
     if ($this->ire !== null) {
       $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
       $xfer += $this->ire->write($output);

http://git-wip-us.apache.org/repos/asf/airavata/blob/e89f3ea6/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
index b09661a..161b547 100755
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
@@ -156,7 +156,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
   print('  void updateWorkflow(AuthzToken authzToken, string workflowTemplateId, Workflow workflow)')
   print('  string getWorkflowTemplateId(AuthzToken authzToken, string workflowName)')
   print('  bool isWorkflowExistWithName(AuthzToken authzToken, string workflowName)')
-  print('  void publishDataResource(AuthzToken authzToken, ResourceModel resourceModel)')
+  print('  string publishDataResource(AuthzToken authzToken, DataResourceModel resourceModel)')
   print('')
   sys.exit(0)
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/e89f3ea6/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
index 299f5a2..1adc769 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
@@ -9708,7 +9708,7 @@ class Client(Iface):
      - resourceModel
     """
     self.send_publishDataResource(authzToken, resourceModel)
-    self.recv_publishDataResource()
+    return self.recv_publishDataResource()
 
   def send_publishDataResource(self, authzToken, resourceModel):
     self._oprot.writeMessageBegin('publishDataResource', TMessageType.CALL, self._seqid)
@@ -9730,6 +9730,8 @@ class Client(Iface):
     result = publishDataResource_result()
     result.read(iprot)
     iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
     if result.ire is not None:
       raise result.ire
     if result.ace is not None:
@@ -9738,7 +9740,7 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    return
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "publishDataResource failed: unknown result");
 
 
 class Processor(Iface, TProcessor):
@@ -14007,7 +14009,7 @@ class Processor(Iface, TProcessor):
     iprot.readMessageEnd()
     result = publishDataResource_result()
     try:
-      self._handler.publishDataResource(args.authzToken, args.resourceModel)
+      result.success = self._handler.publishDataResource(args.authzToken, args.resourceModel)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
@@ -42825,7 +42827,7 @@ class publishDataResource_args:
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
-    (2, TType.STRUCT, 'resourceModel', (apache.airavata.model.data.resource.ttypes.ResourceModel, apache.airavata.model.data.resource.ttypes.ResourceModel.thrift_spec), None, ), # 2
+    (2, TType.STRUCT, 'resourceModel', (apache.airavata.model.data.resource.ttypes.DataResourceModel, apache.airavata.model.data.resource.ttypes.DataResourceModel.thrift_spec), None, ), # 2
   )
 
   def __init__(self, authzToken=None, resourceModel=None,):
@@ -42849,7 +42851,7 @@ class publishDataResource_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRUCT:
-          self.resourceModel = apache.airavata.model.data.resource.ttypes.ResourceModel()
+          self.resourceModel = apache.airavata.model.data.resource.ttypes.DataResourceModel()
           self.resourceModel.read(iprot)
         else:
           iprot.skip(ftype)
@@ -42900,6 +42902,7 @@ class publishDataResource_args:
 class publishDataResource_result:
   """
   Attributes:
+   - success
    - ire
    - ace
    - ase
@@ -42907,14 +42910,15 @@ class publishDataResource_result:
   """
 
   thrift_spec = (
-    None, # 0
+    (0, TType.STRING, 'success', None, None, ), # 0
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
     (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
   )
 
-  def __init__(self, ire=None, ace=None, ase=None, ae=None,):
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
     self.ire = ire
     self.ace = ace
     self.ase = ase
@@ -42929,7 +42933,12 @@ class publishDataResource_result:
       (fname, ftype, fid) = iprot.readFieldBegin()
       if ftype == TType.STOP:
         break
-      if fid == 1:
+      if fid == 0:
+        if ftype == TType.STRING:
+          self.success = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
         if ftype == TType.STRUCT:
           self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
           self.ire.read(iprot)
@@ -42963,6 +42972,10 @@ class publishDataResource_result:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
     oprot.writeStructBegin('publishDataResource_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.STRING, 0)
+      oprot.writeString(self.success)
+      oprot.writeFieldEnd()
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
       self.ire.write(oprot)
@@ -42988,6 +43001,7 @@ class publishDataResource_result:
 
   def __hash__(self):
     value = 17
+    value = (value * 31) ^ hash(self.success)
     value = (value * 31) ^ hash(self.ire)
     value = (value * 31) ^ hash(self.ace)
     value = (value * 31) ^ hash(self.ase)