airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sma...@apache.org
Subject [05/10] Committed generated classes for thrift models - AIRAVATA-1203
Date Thu, 03 Jul 2014 20:13:53 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/DataMovementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.java
new file mode 100644
index 0000000..f36c113
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementInterface.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;
+
+/**
+ * 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
+ * 
+ */
+@SuppressWarnings("all") 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());
+  }
+
+  private String dataMovementInterfaceId; // required
+  private DataMovementProtocol dataMovementProtocol; // 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 {
+    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 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 DataMovementProtocol
+   */
+  public DataMovementProtocol getDataMovementProtocol() {
+    return this.dataMovementProtocol;
+  }
+
+  /**
+   * 
+   * @see DataMovementProtocol
+   */
+  public void setDataMovementProtocol(DataMovementProtocol dataMovementProtocol) {
+    this.dataMovementProtocol = dataMovementProtocol;
+  }
+
+  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 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 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() {
+    return 0;
+  }
+
+  @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 (!isSetDataMovementInterfaceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementInterfaceId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetDataMovementProtocol()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'dataMovementProtocol' 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 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 = 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();
+      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 = DataMovementProtocol.findByValue(iprot.readI32());
+      struct.setDataMovementProtocolIsSet(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/DataMovementProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementProtocol.java
new file mode 100644
index 0000000..031a5bf
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DataMovementProtocol.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.
+     */
+/**
+ * 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 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
+ * 
+ */
+@SuppressWarnings("all") 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;
+    }
+  }
+}

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/FileSystems.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java
new file mode 100644
index 0000000..30ec33d
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.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.
+     */
+/**
+ * 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 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.
+ * 
+ */
+@SuppressWarnings("all") 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;
+    }
+  }
+}

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/GSISSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GSISSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GSISSHJobSubmission.java
new file mode 100644
index 0000000..363f95c
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GSISSHJobSubmission.java
@@ -0,0 +1,1262 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT 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 GSISSHJobSubmission implements org.apache.thrift.TBase<GSISSHJobSubmission, GSISSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GSISSHJobSubmission> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GSISSHJobSubmission");
+
+  private static final org.apache.thrift.protocol.TField JOB_SUBMISSION_DATA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobSubmissionDataID", org.apache.thrift.protocol.TType.STRING, (short)1);
+  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)2);
+  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)3);
+  private static final org.apache.thrift.protocol.TField EXPORTS_FIELD_DESC = new org.apache.thrift.protocol.TField("exports", org.apache.thrift.protocol.TType.SET, (short)4);
+  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)5);
+  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)6);
+  private static final org.apache.thrift.protocol.TField INSTALLED_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("installedPath", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField MONITOR_MODE_FIELD_DESC = new org.apache.thrift.protocol.TField("monitorMode", 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 GSISSHJobSubmissionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GSISSHJobSubmissionTupleSchemeFactory());
+  }
+
+  private String jobSubmissionDataID; // required
+  private ResourceJobManager resourceJobManager; // required
+  private int sshPort; // optional
+  private Set<String> exports; // optional
+  private List<String> preJobCommands; // optional
+  private List<String> postJobCommands; // optional
+  private String installedPath; // optional
+  private String monitorMode; // 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_DATA_ID((short)1, "jobSubmissionDataID"),
+    /**
+     * 
+     * @see ResourceJobManager
+     */
+    RESOURCE_JOB_MANAGER((short)2, "resourceJobManager"),
+    SSH_PORT((short)3, "sshPort"),
+    EXPORTS((short)4, "exports"),
+    PRE_JOB_COMMANDS((short)5, "preJobCommands"),
+    POST_JOB_COMMANDS((short)6, "postJobCommands"),
+    INSTALLED_PATH((short)7, "installedPath"),
+    MONITOR_MODE((short)8, "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: // JOB_SUBMISSION_DATA_ID
+          return JOB_SUBMISSION_DATA_ID;
+        case 2: // RESOURCE_JOB_MANAGER
+          return RESOURCE_JOB_MANAGER;
+        case 3: // SSH_PORT
+          return SSH_PORT;
+        case 4: // EXPORTS
+          return EXPORTS;
+        case 5: // PRE_JOB_COMMANDS
+          return PRE_JOB_COMMANDS;
+        case 6: // POST_JOB_COMMANDS
+          return POST_JOB_COMMANDS;
+        case 7: // INSTALLED_PATH
+          return INSTALLED_PATH;
+        case 8: // 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
+  private static final int __SSHPORT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.SSH_PORT,_Fields.EXPORTS,_Fields.PRE_JOB_COMMANDS,_Fields.POST_JOB_COMMANDS,_Fields.INSTALLED_PATH,_Fields.MONITOR_MODE};
+  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_DATA_ID, new org.apache.thrift.meta_data.FieldMetaData("jobSubmissionDataID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    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.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.EXPORTS, new org.apache.thrift.meta_data.FieldMetaData("exports", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.INSTALLED_PATH, new org.apache.thrift.meta_data.FieldMetaData("installedPath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.MONITOR_MODE, new org.apache.thrift.meta_data.FieldMetaData("monitorMode", 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(GSISSHJobSubmission.class, metaDataMap);
+  }
+
+  public GSISSHJobSubmission() {
+    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.sshPort = 22;
+
+  }
+
+  public GSISSHJobSubmission(
+    String jobSubmissionDataID,
+    ResourceJobManager resourceJobManager)
+  {
+    this();
+    this.jobSubmissionDataID = jobSubmissionDataID;
+    this.resourceJobManager = resourceJobManager;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public GSISSHJobSubmission(GSISSHJobSubmission other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetJobSubmissionDataID()) {
+      this.jobSubmissionDataID = other.jobSubmissionDataID;
+    }
+    if (other.isSetResourceJobManager()) {
+      this.resourceJobManager = other.resourceJobManager;
+    }
+    this.sshPort = other.sshPort;
+    if (other.isSetExports()) {
+      Set<String> __this__exports = new HashSet<String>(other.exports);
+      this.exports = __this__exports;
+    }
+    if (other.isSetPreJobCommands()) {
+      List<String> __this__preJobCommands = new ArrayList<String>(other.preJobCommands);
+      this.preJobCommands = __this__preJobCommands;
+    }
+    if (other.isSetPostJobCommands()) {
+      List<String> __this__postJobCommands = new ArrayList<String>(other.postJobCommands);
+      this.postJobCommands = __this__postJobCommands;
+    }
+    if (other.isSetInstalledPath()) {
+      this.installedPath = other.installedPath;
+    }
+    if (other.isSetMonitorMode()) {
+      this.monitorMode = other.monitorMode;
+    }
+  }
+
+  public GSISSHJobSubmission deepCopy() {
+    return new GSISSHJobSubmission(this);
+  }
+
+  @Override
+  public void clear() {
+    this.jobSubmissionDataID = "DO_NOT_SET_AT_CLIENTS";
+
+    this.resourceJobManager = null;
+    this.sshPort = 22;
+
+    this.exports = null;
+    this.preJobCommands = null;
+    this.postJobCommands = null;
+    this.installedPath = null;
+    this.monitorMode = null;
+  }
+
+  public String getJobSubmissionDataID() {
+    return this.jobSubmissionDataID;
+  }
+
+  public void setJobSubmissionDataID(String jobSubmissionDataID) {
+    this.jobSubmissionDataID = jobSubmissionDataID;
+  }
+
+  public void unsetJobSubmissionDataID() {
+    this.jobSubmissionDataID = null;
+  }
+
+  /** Returns true if field jobSubmissionDataID is set (has been assigned a value) and false otherwise */
+  public boolean isSetJobSubmissionDataID() {
+    return this.jobSubmissionDataID != null;
+  }
+
+  public void setJobSubmissionDataIDIsSet(boolean value) {
+    if (!value) {
+      this.jobSubmissionDataID = 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 getSshPort() {
+    return this.sshPort;
+  }
+
+  public void setSshPort(int sshPort) {
+    this.sshPort = sshPort;
+    setSshPortIsSet(true);
+  }
+
+  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 int getExportsSize() {
+    return (this.exports == null) ? 0 : this.exports.size();
+  }
+
+  public java.util.Iterator<String> getExportsIterator() {
+    return (this.exports == null) ? null : this.exports.iterator();
+  }
+
+  public void addToExports(String elem) {
+    if (this.exports == null) {
+      this.exports = new HashSet<String>();
+    }
+    this.exports.add(elem);
+  }
+
+  public Set<String> getExports() {
+    return this.exports;
+  }
+
+  public void setExports(Set<String> exports) {
+    this.exports = exports;
+  }
+
+  public void unsetExports() {
+    this.exports = null;
+  }
+
+  /** Returns true if field exports is set (has been assigned a value) and false otherwise */
+  public boolean isSetExports() {
+    return this.exports != null;
+  }
+
+  public void setExportsIsSet(boolean value) {
+    if (!value) {
+      this.exports = null;
+    }
+  }
+
+  public int getPreJobCommandsSize() {
+    return (this.preJobCommands == null) ? 0 : this.preJobCommands.size();
+  }
+
+  public java.util.Iterator<String> getPreJobCommandsIterator() {
+    return (this.preJobCommands == null) ? null : this.preJobCommands.iterator();
+  }
+
+  public void addToPreJobCommands(String elem) {
+    if (this.preJobCommands == null) {
+      this.preJobCommands = new ArrayList<String>();
+    }
+    this.preJobCommands.add(elem);
+  }
+
+  public List<String> getPreJobCommands() {
+    return this.preJobCommands;
+  }
+
+  public void setPreJobCommands(List<String> preJobCommands) {
+    this.preJobCommands = preJobCommands;
+  }
+
+  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<String> getPostJobCommandsIterator() {
+    return (this.postJobCommands == null) ? null : this.postJobCommands.iterator();
+  }
+
+  public void addToPostJobCommands(String elem) {
+    if (this.postJobCommands == null) {
+      this.postJobCommands = new ArrayList<String>();
+    }
+    this.postJobCommands.add(elem);
+  }
+
+  public List<String> getPostJobCommands() {
+    return this.postJobCommands;
+  }
+
+  public void setPostJobCommands(List<String> postJobCommands) {
+    this.postJobCommands = postJobCommands;
+  }
+
+  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 String getInstalledPath() {
+    return this.installedPath;
+  }
+
+  public void setInstalledPath(String installedPath) {
+    this.installedPath = installedPath;
+  }
+
+  public void unsetInstalledPath() {
+    this.installedPath = null;
+  }
+
+  /** Returns true if field installedPath is set (has been assigned a value) and false otherwise */
+  public boolean isSetInstalledPath() {
+    return this.installedPath != null;
+  }
+
+  public void setInstalledPathIsSet(boolean value) {
+    if (!value) {
+      this.installedPath = null;
+    }
+  }
+
+  public String getMonitorMode() {
+    return this.monitorMode;
+  }
+
+  public void setMonitorMode(String monitorMode) {
+    this.monitorMode = monitorMode;
+  }
+
+  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 JOB_SUBMISSION_DATA_ID:
+      if (value == null) {
+        unsetJobSubmissionDataID();
+      } else {
+        setJobSubmissionDataID((String)value);
+      }
+      break;
+
+    case RESOURCE_JOB_MANAGER:
+      if (value == null) {
+        unsetResourceJobManager();
+      } else {
+        setResourceJobManager((ResourceJobManager)value);
+      }
+      break;
+
+    case SSH_PORT:
+      if (value == null) {
+        unsetSshPort();
+      } else {
+        setSshPort((Integer)value);
+      }
+      break;
+
+    case EXPORTS:
+      if (value == null) {
+        unsetExports();
+      } else {
+        setExports((Set<String>)value);
+      }
+      break;
+
+    case PRE_JOB_COMMANDS:
+      if (value == null) {
+        unsetPreJobCommands();
+      } else {
+        setPreJobCommands((List<String>)value);
+      }
+      break;
+
+    case POST_JOB_COMMANDS:
+      if (value == null) {
+        unsetPostJobCommands();
+      } else {
+        setPostJobCommands((List<String>)value);
+      }
+      break;
+
+    case INSTALLED_PATH:
+      if (value == null) {
+        unsetInstalledPath();
+      } else {
+        setInstalledPath((String)value);
+      }
+      break;
+
+    case MONITOR_MODE:
+      if (value == null) {
+        unsetMonitorMode();
+      } else {
+        setMonitorMode((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case JOB_SUBMISSION_DATA_ID:
+      return getJobSubmissionDataID();
+
+    case RESOURCE_JOB_MANAGER:
+      return getResourceJobManager();
+
+    case SSH_PORT:
+      return Integer.valueOf(getSshPort());
+
+    case EXPORTS:
+      return getExports();
+
+    case PRE_JOB_COMMANDS:
+      return getPreJobCommands();
+
+    case POST_JOB_COMMANDS:
+      return getPostJobCommands();
+
+    case INSTALLED_PATH:
+      return getInstalledPath();
+
+    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 JOB_SUBMISSION_DATA_ID:
+      return isSetJobSubmissionDataID();
+    case RESOURCE_JOB_MANAGER:
+      return isSetResourceJobManager();
+    case SSH_PORT:
+      return isSetSshPort();
+    case EXPORTS:
+      return isSetExports();
+    case PRE_JOB_COMMANDS:
+      return isSetPreJobCommands();
+    case POST_JOB_COMMANDS:
+      return isSetPostJobCommands();
+    case INSTALLED_PATH:
+      return isSetInstalledPath();
+    case MONITOR_MODE:
+      return isSetMonitorMode();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof GSISSHJobSubmission)
+      return this.equals((GSISSHJobSubmission)that);
+    return false;
+  }
+
+  public boolean equals(GSISSHJobSubmission that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_jobSubmissionDataID = true && this.isSetJobSubmissionDataID();
+    boolean that_present_jobSubmissionDataID = true && that.isSetJobSubmissionDataID();
+    if (this_present_jobSubmissionDataID || that_present_jobSubmissionDataID) {
+      if (!(this_present_jobSubmissionDataID && that_present_jobSubmissionDataID))
+        return false;
+      if (!this.jobSubmissionDataID.equals(that.jobSubmissionDataID))
+        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_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_exports = true && this.isSetExports();
+    boolean that_present_exports = true && that.isSetExports();
+    if (this_present_exports || that_present_exports) {
+      if (!(this_present_exports && that_present_exports))
+        return false;
+      if (!this.exports.equals(that.exports))
+        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;
+    }
+
+    boolean this_present_installedPath = true && this.isSetInstalledPath();
+    boolean that_present_installedPath = true && that.isSetInstalledPath();
+    if (this_present_installedPath || that_present_installedPath) {
+      if (!(this_present_installedPath && that_present_installedPath))
+        return false;
+      if (!this.installedPath.equals(that.installedPath))
+        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() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(GSISSHJobSubmission other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetJobSubmissionDataID()).compareTo(other.isSetJobSubmissionDataID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetJobSubmissionDataID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobSubmissionDataID, other.jobSubmissionDataID);
+      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(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(isSetExports()).compareTo(other.isSetExports());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetExports()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.exports, other.exports);
+      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;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetInstalledPath()).compareTo(other.isSetInstalledPath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetInstalledPath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.installedPath, other.installedPath);
+      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;
+      }
+    }
+    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("GSISSHJobSubmission(");
+    boolean first = true;
+
+    sb.append("jobSubmissionDataID:");
+    if (this.jobSubmissionDataID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.jobSubmissionDataID);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("resourceJobManager:");
+    if (this.resourceJobManager == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.resourceJobManager);
+    }
+    first = false;
+    if (isSetSshPort()) {
+      if (!first) sb.append(", ");
+      sb.append("sshPort:");
+      sb.append(this.sshPort);
+      first = false;
+    }
+    if (isSetExports()) {
+      if (!first) sb.append(", ");
+      sb.append("exports:");
+      if (this.exports == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.exports);
+      }
+      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;
+    }
+    if (isSetInstalledPath()) {
+      if (!first) sb.append(", ");
+      sb.append("installedPath:");
+      if (this.installedPath == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.installedPath);
+      }
+      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;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetJobSubmissionDataID()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'jobSubmissionDataID' 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 {
+      // 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 GSISSHJobSubmissionStandardSchemeFactory implements SchemeFactory {
+    public GSISSHJobSubmissionStandardScheme getScheme() {
+      return new GSISSHJobSubmissionStandardScheme();
+    }
+  }
+
+  private static class GSISSHJobSubmissionStandardScheme extends StandardScheme<GSISSHJobSubmission> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, GSISSHJobSubmission 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_DATA_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.jobSubmissionDataID = iprot.readString();
+              struct.setJobSubmissionDataIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // 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 3: // 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 4: // EXPORTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
+              {
+                org.apache.thrift.protocol.TSet _set16 = iprot.readSetBegin();
+                struct.exports = new HashSet<String>(2*_set16.size);
+                for (int _i17 = 0; _i17 < _set16.size; ++_i17)
+                {
+                  String _elem18;
+                  _elem18 = iprot.readString();
+                  struct.exports.add(_elem18);
+                }
+                iprot.readSetEnd();
+              }
+              struct.setExportsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // PRE_JOB_COMMANDS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list19 = iprot.readListBegin();
+                struct.preJobCommands = new ArrayList<String>(_list19.size);
+                for (int _i20 = 0; _i20 < _list19.size; ++_i20)
+                {
+                  String _elem21;
+                  _elem21 = iprot.readString();
+                  struct.preJobCommands.add(_elem21);
+                }
+                iprot.readListEnd();
+              }
+              struct.setPreJobCommandsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // POST_JOB_COMMANDS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list22 = iprot.readListBegin();
+                struct.postJobCommands = new ArrayList<String>(_list22.size);
+                for (int _i23 = 0; _i23 < _list22.size; ++_i23)
+                {
+                  String _elem24;
+                  _elem24 = iprot.readString();
+                  struct.postJobCommands.add(_elem24);
+                }
+                iprot.readListEnd();
+              }
+              struct.setPostJobCommandsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // INSTALLED_PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.installedPath = iprot.readString();
+              struct.setInstalledPathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // MONITOR_MODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.monitorMode = iprot.readString();
+              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();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, GSISSHJobSubmission struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.jobSubmissionDataID != null) {
+        oprot.writeFieldBegin(JOB_SUBMISSION_DATA_ID_FIELD_DESC);
+        oprot.writeString(struct.jobSubmissionDataID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.resourceJobManager != null) {
+        oprot.writeFieldBegin(RESOURCE_JOB_MANAGER_FIELD_DESC);
+        oprot.writeI32(struct.resourceJobManager.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetSshPort()) {
+        oprot.writeFieldBegin(SSH_PORT_FIELD_DESC);
+        oprot.writeI32(struct.sshPort);
+        oprot.writeFieldEnd();
+      }
+      if (struct.exports != null) {
+        if (struct.isSetExports()) {
+          oprot.writeFieldBegin(EXPORTS_FIELD_DESC);
+          {
+            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.exports.size()));
+            for (String _iter25 : struct.exports)
+            {
+              oprot.writeString(_iter25);
+            }
+            oprot.writeSetEnd();
+          }
+          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.STRING, struct.preJobCommands.size()));
+            for (String _iter26 : struct.preJobCommands)
+            {
+              oprot.writeString(_iter26);
+            }
+            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.STRING, struct.postJobCommands.size()));
+            for (String _iter27 : struct.postJobCommands)
+            {
+              oprot.writeString(_iter27);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.installedPath != null) {
+        if (struct.isSetInstalledPath()) {
+          oprot.writeFieldBegin(INSTALLED_PATH_FIELD_DESC);
+          oprot.writeString(struct.installedPath);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.monitorMode != null) {
+        if (struct.isSetMonitorMode()) {
+          oprot.writeFieldBegin(MONITOR_MODE_FIELD_DESC);
+          oprot.writeString(struct.monitorMode);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GSISSHJobSubmissionTupleSchemeFactory implements SchemeFactory {
+    public GSISSHJobSubmissionTupleScheme getScheme() {
+      return new GSISSHJobSubmissionTupleScheme();
+    }
+  }
+
+  private static class GSISSHJobSubmissionTupleScheme extends TupleScheme<GSISSHJobSubmission> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, GSISSHJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.jobSubmissionDataID);
+      oprot.writeI32(struct.resourceJobManager.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetSshPort()) {
+        optionals.set(0);
+      }
+      if (struct.isSetExports()) {
+        optionals.set(1);
+      }
+      if (struct.isSetPreJobCommands()) {
+        optionals.set(2);
+      }
+      if (struct.isSetPostJobCommands()) {
+        optionals.set(3);
+      }
+      if (struct.isSetInstalledPath()) {
+        optionals.set(4);
+      }
+      if (struct.isSetMonitorMode()) {
+        optionals.set(5);
+      }
+      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetSshPort()) {
+        oprot.writeI32(struct.sshPort);
+      }
+      if (struct.isSetExports()) {
+        {
+          oprot.writeI32(struct.exports.size());
+          for (String _iter28 : struct.exports)
+          {
+            oprot.writeString(_iter28);
+          }
+        }
+      }
+      if (struct.isSetPreJobCommands()) {
+        {
+          oprot.writeI32(struct.preJobCommands.size());
+          for (String _iter29 : struct.preJobCommands)
+          {
+            oprot.writeString(_iter29);
+          }
+        }
+      }
+      if (struct.isSetPostJobCommands()) {
+        {
+          oprot.writeI32(struct.postJobCommands.size());
+          for (String _iter30 : struct.postJobCommands)
+          {
+            oprot.writeString(_iter30);
+          }
+        }
+      }
+      if (struct.isSetInstalledPath()) {
+        oprot.writeString(struct.installedPath);
+      }
+      if (struct.isSetMonitorMode()) {
+        oprot.writeString(struct.monitorMode);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, GSISSHJobSubmission struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.jobSubmissionDataID = iprot.readString();
+      struct.setJobSubmissionDataIDIsSet(true);
+      struct.resourceJobManager = ResourceJobManager.findByValue(iprot.readI32());
+      struct.setResourceJobManagerIsSet(true);
+      BitSet incoming = iprot.readBitSet(6);
+      if (incoming.get(0)) {
+        struct.sshPort = iprot.readI32();
+        struct.setSshPortIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TSet _set31 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.exports = new HashSet<String>(2*_set31.size);
+          for (int _i32 = 0; _i32 < _set31.size; ++_i32)
+          {
+            String _elem33;
+            _elem33 = iprot.readString();
+            struct.exports.add(_elem33);
+          }
+        }
+        struct.setExportsIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list34 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.preJobCommands = new ArrayList<String>(_list34.size);
+          for (int _i35 = 0; _i35 < _list34.size; ++_i35)
+          {
+            String _elem36;
+            _elem36 = iprot.readString();
+            struct.preJobCommands.add(_elem36);
+          }
+        }
+        struct.setPreJobCommandsIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list37 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.postJobCommands = new ArrayList<String>(_list37.size);
+          for (int _i38 = 0; _i38 < _list37.size; ++_i38)
+          {
+            String _elem39;
+            _elem39 = iprot.readString();
+            struct.postJobCommands.add(_elem39);
+          }
+        }
+        struct.setPostJobCommandsIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.installedPath = iprot.readString();
+        struct.setInstalledPathIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.monitorMode = iprot.readString();
+        struct.setMonitorModeIsSet(true);
+      }
+    }
+  }
+
+}
+


Mime
View raw message