airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sma...@apache.org
Subject [04/10] Committed generated classes for thrift models - AIRAVATA-1203
Date Thu, 03 Jul 2014 20:13:52 GMT
http://git-wip-us.apache.org/repos/asf/airavata/blob/59a7443a/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
new file mode 100644
index 0000000..7c42f03
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
@@ -0,0 +1,768 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all") 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 RESOURCE_JOB_MANAGER_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceJobManager", org.apache.thrift.protocol.TType.I32, (short)3);
+  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)4);
+
+  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());
+  }
+
+  private String jobSubmissionInterfaceId; // required
+  private SecurityProtocol securityProtocol; // required
+  private ResourceJobManager resourceJobManager; // required
+  private List<String> globusGateKeeperEndPoint; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    JOB_SUBMISSION_INTERFACE_ID((short)1, "jobSubmissionInterfaceId"),
+    /**
+     * 
+     * @see SecurityProtocol
+     */
+    SECURITY_PROTOCOL((short)2, "securityProtocol"),
+    /**
+     * 
+     * @see ResourceJobManager
+     */
+    RESOURCE_JOB_MANAGER((short)3, "resourceJobManager"),
+    GLOBUS_GATE_KEEPER_END_POINT((short)4, "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: // RESOURCE_JOB_MANAGER
+          return RESOURCE_JOB_MANAGER;
+        case 4: // 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 _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, 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.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ResourceJobManager.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,
+    SecurityProtocol securityProtocol,
+    ResourceJobManager resourceJobManager)
+  {
+    this();
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+    this.securityProtocol = securityProtocol;
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  /**
+   * 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.isSetResourceJobManager()) {
+      this.resourceJobManager = other.resourceJobManager;
+    }
+    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.resourceJobManager = null;
+    this.globusGateKeeperEndPoint = null;
+  }
+
+  public String getJobSubmissionInterfaceId() {
+    return this.jobSubmissionInterfaceId;
+  }
+
+  public void setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+  }
+
+  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 SecurityProtocol
+   */
+  public SecurityProtocol getSecurityProtocol() {
+    return this.securityProtocol;
+  }
+
+  /**
+   * 
+   * @see SecurityProtocol
+   */
+  public void setSecurityProtocol(SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+  }
+
+  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;
+    }
+  }
+
+  /**
+   * 
+   * @see ResourceJobManager
+   */
+  public ResourceJobManager getResourceJobManager() {
+    return this.resourceJobManager;
+  }
+
+  /**
+   * 
+   * @see ResourceJobManager
+   */
+  public void setResourceJobManager(ResourceJobManager resourceJobManager) {
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  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 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 void setGlobusGateKeeperEndPoint(List<String> globusGateKeeperEndPoint) {
+    this.globusGateKeeperEndPoint = globusGateKeeperEndPoint;
+  }
+
+  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((SecurityProtocol)value);
+      }
+      break;
+
+    case RESOURCE_JOB_MANAGER:
+      if (value == null) {
+        unsetResourceJobManager();
+      } else {
+        setResourceJobManager((ResourceJobManager)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 RESOURCE_JOB_MANAGER:
+      return getResourceJobManager();
+
+    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 RESOURCE_JOB_MANAGER:
+      return isSetResourceJobManager();
+    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_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_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() {
+    return 0;
+  }
+
+  @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(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(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 (!first) sb.append(", ");
+    sb.append("resourceJobManager:");
+    if (this.resourceJobManager == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManager);
+    }
+    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 (!isSetJobSubmissionInterfaceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionInterfaceId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetSecurityProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
+    }
+
+    if (!isSetResourceJobManager()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'resourceJobManager' 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 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 = 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.I32) {
+              struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+              struct.setResourceJobManagerIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // GLOBUS_GATE_KEEPER_END_POINT
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list8 = iprot.readListBegin();
+                struct.globusGateKeeperEndPoint = new ArrayList<String>(_list8.size);
+                for (int _i9 = 0; _i9 < _list8.size; ++_i9)
+                {
+                  String _elem10;
+                  _elem10 = iprot.readString();
+                  struct.globusGateKeeperEndPoint.add(_elem10);
+                }
+                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();
+      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.resourceJobManager != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
+        oprot.writeI32(struct.resourceJobManager.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 _iter11 : struct.globusGateKeeperEndPoint)
+            {
+              oprot.writeString(_iter11);
+            }
+            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());
+      oprot.writeI32(struct.resourceJobManager.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 _iter12 : struct.globusGateKeeperEndPoint)
+          {
+            oprot.writeString(_iter12);
+          }
+        }
+      }
+    }
+
+    @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 = SecurityProtocol.findByValue(iprot.readI32());
+      struct.setSecurityProtocolIsSet(true);
+      struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+      struct.setResourceJobManagerIsSet(true);
+      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.globusGateKeeperEndPoint = new ArrayList<String>(_list13.size);
+          for (int _i14 = 0; _i14 < _list13.size; ++_i14)
+          {
+            String _elem15;
+            _elem15 = iprot.readString();
+            struct.globusGateKeeperEndPoint.add(_elem15);
+          }
+        }
+        struct.setGlobusGateKeeperEndPointIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/59a7443a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java
new file mode 100644
index 0000000..daff523
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GridFTPDataMovement.java
@@ -0,0 +1,660 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Data Movement through GridFTP
+ * 
+ * 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.
+ */
+@SuppressWarnings("all") 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());
+  }
+
+  private String dataMovementInterfaceId; // required
+  private SecurityProtocol securityProtocol; // required
+  private List<String> gridFTPEndPoints; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    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 void setDataMovementInterfaceId(String dataMovementInterfaceId) {
+    this.dataMovementInterfaceId = dataMovementInterfaceId;
+  }
+
+  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 void setSecurityProtocol(SecurityProtocol securityProtocol) {
+    this.securityProtocol = securityProtocol;
+  }
+
+  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 void setGridFTPEndPoints(List<String> gridFTPEndPoints) {
+    this.gridFTPEndPoints = gridFTPEndPoints;
+  }
+
+  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() {
+    return 0;
+  }
+
+  @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 (!isSetDataMovementInterfaceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementInterfaceId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetSecurityProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'securityProtocol' is unset! Struct:" + toString());
+    }
+
+    if (!isSetGridFTPEndPoints()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gridFTPEndPoints' 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 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 = 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);
+                for (int _i1 = 0; _i1 < _list0.size; ++_i1)
+                {
+                  String _elem2;
+                  _elem2 = iprot.readString();
+                  struct.gridFTPEndPoints.add(_elem2);
+                }
+                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();
+      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 = 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);
+        for (int _i6 = 0; _i6 < _list5.size; ++_i6)
+        {
+          String _elem7;
+          _elem7 = iprot.readString();
+          struct.gridFTPEndPoints.add(_elem7);
+        }
+      }
+      struct.setGridFTPEndPointsIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/59a7443a/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
new file mode 100644
index 0000000..26f7519
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@ -0,0 +1,609 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 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
+ * 
+ */
+@SuppressWarnings("all") 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());
+  }
+
+  private String jobSubmissionInterfaceId; // required
+  private JobSubmissionProtocol jobSubmissionProtocol; // required
+  private int priorityOrder; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    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 void setJobSubmissionInterfaceId(String jobSubmissionInterfaceId) {
+    this.jobSubmissionInterfaceId = jobSubmissionInterfaceId;
+  }
+
+  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 void setJobSubmissionProtocol(JobSubmissionProtocol jobSubmissionProtocol) {
+    this.jobSubmissionProtocol = jobSubmissionProtocol;
+  }
+
+  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 void setPriorityOrder(int priorityOrder) {
+    this.priorityOrder = priorityOrder;
+    setPriorityOrderIsSet(true);
+  }
+
+  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() {
+    return 0;
+  }
+
+  @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 (!isSetJobSubmissionInterfaceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionInterfaceId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetJobSubmissionProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionProtocol' is unset! Struct:" + toString());
+    }
+
+    if (!isSetPriorityOrder()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'priorityOrder' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class 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 = 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();
+      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 = JobSubmissionProtocol.findByValue(iprot.readI32());
+      struct.setJobSubmissionProtocolIsSet(true);
+      struct.priorityOrder = iprot.readI32();
+      struct.setPriorityOrderIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/59a7443a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java
new file mode 100644
index 0000000..3cf0d6a
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.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.1)
+ *
+ * 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 Perforamance 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
+ * 
+ */
+@SuppressWarnings("all") public enum JobSubmissionProtocol implements org.apache.thrift.TEnum {
+  LOCAL(0),
+  SSH(1),
+  GSISSH(2),
+  GRAM(3),
+  UNICORE(4);
+
+  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 GSISSH;
+      case 3:
+        return GRAM;
+      case 4:
+        return UNICORE;
+      default:
+        return null;
+    }
+  }
+}


Mime
View raw message