airavata-commits mailing list archives

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

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

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


Mime
View raw message