You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2014/06/29 16:41:51 UTC

[2/8] Generated data models of app catalog

http://git-wip-us.apache.org/repos/asf/airavata/blob/227c78db/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/deployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/deployment/SetEnvPaths.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/deployment/SetEnvPaths.java
new file mode 100644
index 0000000..125a29f
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/deployment/SetEnvPaths.java
@@ -0,0 +1,500 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT 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.application.deployment;
+
+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;
+
+/**
+ * Key Value pairs to be used to set environments
+ * 
+ * name:
+ *   Name of the environment variable such as PATH, LD_LIBRARY_PATH, NETCDF_HOME.
+ * 
+ * value:
+ *   Value of the environment variable to set
+ */
+@SuppressWarnings("all") public class SetEnvPaths implements org.apache.thrift.TBase<SetEnvPaths, SetEnvPaths._Fields>, java.io.Serializable, Cloneable, Comparable<SetEnvPaths> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetEnvPaths");
+
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("value", org.apache.thrift.protocol.TType.STRING, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new SetEnvPathsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new SetEnvPathsTupleSchemeFactory());
+  }
+
+  private String name; // required
+  private String value; // 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 {
+    NAME((short)1, "name"),
+    VALUE((short)2, "value");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // NAME
+          return NAME;
+        case 2: // VALUE
+          return VALUE;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.VALUE, new org.apache.thrift.meta_data.FieldMetaData("value", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SetEnvPaths.class, metaDataMap);
+  }
+
+  public SetEnvPaths() {
+  }
+
+  public SetEnvPaths(
+    String name,
+    String value)
+  {
+    this();
+    this.name = name;
+    this.value = value;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public SetEnvPaths(SetEnvPaths other) {
+    if (other.isSetName()) {
+      this.name = other.name;
+    }
+    if (other.isSetValue()) {
+      this.value = other.value;
+    }
+  }
+
+  public SetEnvPaths deepCopy() {
+    return new SetEnvPaths(this);
+  }
+
+  @Override
+  public void clear() {
+    this.name = null;
+    this.value = null;
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public void unsetName() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false otherwise */
+  public boolean isSetName() {
+    return this.name != null;
+  }
+
+  public void setNameIsSet(boolean value) {
+    if (!value) {
+      this.name = null;
+    }
+  }
+
+  public String getValue() {
+    return this.value;
+  }
+
+  public void setValue(String value) {
+    this.value = value;
+  }
+
+  public void unsetValue() {
+    this.value = null;
+  }
+
+  /** Returns true if field value is set (has been assigned a value) and false otherwise */
+  public boolean isSetValue() {
+    return this.value != null;
+  }
+
+  public void setValueIsSet(boolean value) {
+    if (!value) {
+      this.value = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case NAME:
+      if (value == null) {
+        unsetName();
+      } else {
+        setName((String)value);
+      }
+      break;
+
+    case VALUE:
+      if (value == null) {
+        unsetValue();
+      } else {
+        setValue((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case NAME:
+      return getName();
+
+    case VALUE:
+      return getValue();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case NAME:
+      return isSetName();
+    case VALUE:
+      return isSetValue();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof SetEnvPaths)
+      return this.equals((SetEnvPaths)that);
+    return false;
+  }
+
+  public boolean equals(SetEnvPaths that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
+        return false;
+      if (!this.name.equals(that.name))
+        return false;
+    }
+
+    boolean this_present_value = true && this.isSetValue();
+    boolean that_present_value = true && that.isSetValue();
+    if (this_present_value || that_present_value) {
+      if (!(this_present_value && that_present_value))
+        return false;
+      if (!this.value.equals(that.value))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(SetEnvPaths other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetValue()).compareTo(other.isSetValue());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValue()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.value, other.value);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("SetEnvPaths(");
+    boolean first = true;
+
+    sb.append("name:");
+    if (this.name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.name);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("value:");
+    if (this.value == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.value);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetName()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' is unset! Struct:" + toString());
+    }
+
+    if (!isSetValue()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'value' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class SetEnvPathsStandardSchemeFactory implements SchemeFactory {
+    public SetEnvPathsStandardScheme getScheme() {
+      return new SetEnvPathsStandardScheme();
+    }
+  }
+
+  private static class SetEnvPathsStandardScheme extends StandardScheme<SetEnvPaths> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, SetEnvPaths struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // VALUE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.value = iprot.readString();
+              struct.setValueIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          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, SetEnvPaths struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        oprot.writeFieldEnd();
+      }
+      if (struct.value != null) {
+        oprot.writeFieldBegin(VALUE_FIELD_DESC);
+        oprot.writeString(struct.value);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class SetEnvPathsTupleSchemeFactory implements SchemeFactory {
+    public SetEnvPathsTupleScheme getScheme() {
+      return new SetEnvPathsTupleScheme();
+    }
+  }
+
+  private static class SetEnvPathsTupleScheme extends TupleScheme<SetEnvPaths> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, SetEnvPaths struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.name);
+      oprot.writeString(struct.value);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, SetEnvPaths struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.name = iprot.readString();
+      struct.setNameIsSet(true);
+      struct.value = iprot.readString();
+      struct.setValueIsSet(true);
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/227c78db/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/deployment/applicationDeploymentModelConstants.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/deployment/applicationDeploymentModelConstants.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/deployment/applicationDeploymentModelConstants.java
new file mode 100644
index 0000000..14f1193
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/deployment/applicationDeploymentModelConstants.java
@@ -0,0 +1,55 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+/**
+ * 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.application.deployment;
+
+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 applicationDeploymentModelConstants {
+
+  public static final String DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS";
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/227c78db/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/interface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/interface/ApplicationInterfaceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/interface/ApplicationInterfaceDescription.java
new file mode 100644
index 0000000..4ebba2b
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/interface/ApplicationInterfaceDescription.java
@@ -0,0 +1,1063 @@
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT 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.application.interface;
+
+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;
+
+/**
+ * Application Interface Description
+ * 
+ * 
+ * appDeploymentId:
+ *   Corelated the interface to a particular application deployment
+ * 
+ * 
+ */
+@SuppressWarnings("all") public class ApplicationInterfaceDescription implements org.apache.thrift.TBase<ApplicationInterfaceDescription, ApplicationInterfaceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationInterfaceDescription> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationInterfaceDescription");
+
+  private static final org.apache.thrift.protocol.TField IS_EMPTY_FIELD_DESC = new org.apache.thrift.protocol.TField("isEmpty", org.apache.thrift.protocol.TType.BOOL, (short)1);
+  private static final org.apache.thrift.protocol.TField APPLICATION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField APPLICATION_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationName", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField APPLICATION_MODULES_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationModules", org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField APPLICATION_INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationInputs", org.apache.thrift.protocol.TType.LIST, (short)5);
+  private static final org.apache.thrift.protocol.TField APPLICATION_OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationOutputs", org.apache.thrift.protocol.TType.LIST, (short)6);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ApplicationInterfaceDescriptionStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ApplicationInterfaceDescriptionTupleSchemeFactory());
+  }
+
+  private boolean isEmpty; // required
+  private String applicationInterfaceId; // required
+  private String applicationName; // required
+  private List<String> applicationModules; // optional
+  private List<InputDataObjectType> applicationInputs; // optional
+  private List<OutputDataObjectType> applicationOutputs; // 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 {
+    IS_EMPTY((short)1, "isEmpty"),
+    APPLICATION_INTERFACE_ID((short)2, "applicationInterfaceId"),
+    APPLICATION_NAME((short)3, "applicationName"),
+    APPLICATION_MODULES((short)4, "applicationModules"),
+    APPLICATION_INPUTS((short)5, "applicationInputs"),
+    APPLICATION_OUTPUTS((short)6, "applicationOutputs");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // IS_EMPTY
+          return IS_EMPTY;
+        case 2: // APPLICATION_INTERFACE_ID
+          return APPLICATION_INTERFACE_ID;
+        case 3: // APPLICATION_NAME
+          return APPLICATION_NAME;
+        case 4: // APPLICATION_MODULES
+          return APPLICATION_MODULES;
+        case 5: // APPLICATION_INPUTS
+          return APPLICATION_INPUTS;
+        case 6: // APPLICATION_OUTPUTS
+          return APPLICATION_OUTPUTS;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __ISEMPTY_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.APPLICATION_MODULES,_Fields.APPLICATION_INPUTS,_Fields.APPLICATION_OUTPUTS};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.IS_EMPTY, new org.apache.thrift.meta_data.FieldMetaData("isEmpty", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.APPLICATION_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("applicationInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APPLICATION_NAME, new org.apache.thrift.meta_data.FieldMetaData("applicationName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.APPLICATION_MODULES, new org.apache.thrift.meta_data.FieldMetaData("applicationModules", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    tmpMap.put(_Fields.APPLICATION_INPUTS, new org.apache.thrift.meta_data.FieldMetaData("applicationInputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InputDataObjectType.class))));
+    tmpMap.put(_Fields.APPLICATION_OUTPUTS, new org.apache.thrift.meta_data.FieldMetaData("applicationOutputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, OutputDataObjectType.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ApplicationInterfaceDescription.class, metaDataMap);
+  }
+
+  public ApplicationInterfaceDescription() {
+    this.isEmpty = false;
+
+    this.applicationInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+  }
+
+  public ApplicationInterfaceDescription(
+    boolean isEmpty,
+    String applicationInterfaceId,
+    String applicationName)
+  {
+    this();
+    this.isEmpty = isEmpty;
+    setIsEmptyIsSet(true);
+    this.applicationInterfaceId = applicationInterfaceId;
+    this.applicationName = applicationName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ApplicationInterfaceDescription(ApplicationInterfaceDescription other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.isEmpty = other.isEmpty;
+    if (other.isSetApplicationInterfaceId()) {
+      this.applicationInterfaceId = other.applicationInterfaceId;
+    }
+    if (other.isSetApplicationName()) {
+      this.applicationName = other.applicationName;
+    }
+    if (other.isSetApplicationModules()) {
+      List<String> __this__applicationModules = new ArrayList<String>(other.applicationModules);
+      this.applicationModules = __this__applicationModules;
+    }
+    if (other.isSetApplicationInputs()) {
+      List<InputDataObjectType> __this__applicationInputs = new ArrayList<InputDataObjectType>(other.applicationInputs.size());
+      for (InputDataObjectType other_element : other.applicationInputs) {
+        __this__applicationInputs.add(new InputDataObjectType(other_element));
+      }
+      this.applicationInputs = __this__applicationInputs;
+    }
+    if (other.isSetApplicationOutputs()) {
+      List<OutputDataObjectType> __this__applicationOutputs = new ArrayList<OutputDataObjectType>(other.applicationOutputs.size());
+      for (OutputDataObjectType other_element : other.applicationOutputs) {
+        __this__applicationOutputs.add(new OutputDataObjectType(other_element));
+      }
+      this.applicationOutputs = __this__applicationOutputs;
+    }
+  }
+
+  public ApplicationInterfaceDescription deepCopy() {
+    return new ApplicationInterfaceDescription(this);
+  }
+
+  @Override
+  public void clear() {
+    this.isEmpty = false;
+
+    this.applicationInterfaceId = "DO_NOT_SET_AT_CLIENTS";
+
+    this.applicationName = null;
+    this.applicationModules = null;
+    this.applicationInputs = null;
+    this.applicationOutputs = null;
+  }
+
+  public boolean isIsEmpty() {
+    return this.isEmpty;
+  }
+
+  public void setIsEmpty(boolean isEmpty) {
+    this.isEmpty = isEmpty;
+    setIsEmptyIsSet(true);
+  }
+
+  public void unsetIsEmpty() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ISEMPTY_ISSET_ID);
+  }
+
+  /** Returns true if field isEmpty is set (has been assigned a value) and false otherwise */
+  public boolean isSetIsEmpty() {
+    return EncodingUtils.testBit(__isset_bitfield, __ISEMPTY_ISSET_ID);
+  }
+
+  public void setIsEmptyIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ISEMPTY_ISSET_ID, value);
+  }
+
+  public String getApplicationInterfaceId() {
+    return this.applicationInterfaceId;
+  }
+
+  public void setApplicationInterfaceId(String applicationInterfaceId) {
+    this.applicationInterfaceId = applicationInterfaceId;
+  }
+
+  public void unsetApplicationInterfaceId() {
+    this.applicationInterfaceId = null;
+  }
+
+  /** Returns true if field applicationInterfaceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationInterfaceId() {
+    return this.applicationInterfaceId != null;
+  }
+
+  public void setApplicationInterfaceIdIsSet(boolean value) {
+    if (!value) {
+      this.applicationInterfaceId = null;
+    }
+  }
+
+  public String getApplicationName() {
+    return this.applicationName;
+  }
+
+  public void setApplicationName(String applicationName) {
+    this.applicationName = applicationName;
+  }
+
+  public void unsetApplicationName() {
+    this.applicationName = null;
+  }
+
+  /** Returns true if field applicationName is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationName() {
+    return this.applicationName != null;
+  }
+
+  public void setApplicationNameIsSet(boolean value) {
+    if (!value) {
+      this.applicationName = null;
+    }
+  }
+
+  public int getApplicationModulesSize() {
+    return (this.applicationModules == null) ? 0 : this.applicationModules.size();
+  }
+
+  public java.util.Iterator<String> getApplicationModulesIterator() {
+    return (this.applicationModules == null) ? null : this.applicationModules.iterator();
+  }
+
+  public void addToApplicationModules(String elem) {
+    if (this.applicationModules == null) {
+      this.applicationModules = new ArrayList<String>();
+    }
+    this.applicationModules.add(elem);
+  }
+
+  public List<String> getApplicationModules() {
+    return this.applicationModules;
+  }
+
+  public void setApplicationModules(List<String> applicationModules) {
+    this.applicationModules = applicationModules;
+  }
+
+  public void unsetApplicationModules() {
+    this.applicationModules = null;
+  }
+
+  /** Returns true if field applicationModules is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationModules() {
+    return this.applicationModules != null;
+  }
+
+  public void setApplicationModulesIsSet(boolean value) {
+    if (!value) {
+      this.applicationModules = null;
+    }
+  }
+
+  public int getApplicationInputsSize() {
+    return (this.applicationInputs == null) ? 0 : this.applicationInputs.size();
+  }
+
+  public java.util.Iterator<InputDataObjectType> getApplicationInputsIterator() {
+    return (this.applicationInputs == null) ? null : this.applicationInputs.iterator();
+  }
+
+  public void addToApplicationInputs(InputDataObjectType elem) {
+    if (this.applicationInputs == null) {
+      this.applicationInputs = new ArrayList<InputDataObjectType>();
+    }
+    this.applicationInputs.add(elem);
+  }
+
+  public List<InputDataObjectType> getApplicationInputs() {
+    return this.applicationInputs;
+  }
+
+  public void setApplicationInputs(List<InputDataObjectType> applicationInputs) {
+    this.applicationInputs = applicationInputs;
+  }
+
+  public void unsetApplicationInputs() {
+    this.applicationInputs = null;
+  }
+
+  /** Returns true if field applicationInputs is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationInputs() {
+    return this.applicationInputs != null;
+  }
+
+  public void setApplicationInputsIsSet(boolean value) {
+    if (!value) {
+      this.applicationInputs = null;
+    }
+  }
+
+  public int getApplicationOutputsSize() {
+    return (this.applicationOutputs == null) ? 0 : this.applicationOutputs.size();
+  }
+
+  public java.util.Iterator<OutputDataObjectType> getApplicationOutputsIterator() {
+    return (this.applicationOutputs == null) ? null : this.applicationOutputs.iterator();
+  }
+
+  public void addToApplicationOutputs(OutputDataObjectType elem) {
+    if (this.applicationOutputs == null) {
+      this.applicationOutputs = new ArrayList<OutputDataObjectType>();
+    }
+    this.applicationOutputs.add(elem);
+  }
+
+  public List<OutputDataObjectType> getApplicationOutputs() {
+    return this.applicationOutputs;
+  }
+
+  public void setApplicationOutputs(List<OutputDataObjectType> applicationOutputs) {
+    this.applicationOutputs = applicationOutputs;
+  }
+
+  public void unsetApplicationOutputs() {
+    this.applicationOutputs = null;
+  }
+
+  /** Returns true if field applicationOutputs is set (has been assigned a value) and false otherwise */
+  public boolean isSetApplicationOutputs() {
+    return this.applicationOutputs != null;
+  }
+
+  public void setApplicationOutputsIsSet(boolean value) {
+    if (!value) {
+      this.applicationOutputs = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case IS_EMPTY:
+      if (value == null) {
+        unsetIsEmpty();
+      } else {
+        setIsEmpty((Boolean)value);
+      }
+      break;
+
+    case APPLICATION_INTERFACE_ID:
+      if (value == null) {
+        unsetApplicationInterfaceId();
+      } else {
+        setApplicationInterfaceId((String)value);
+      }
+      break;
+
+    case APPLICATION_NAME:
+      if (value == null) {
+        unsetApplicationName();
+      } else {
+        setApplicationName((String)value);
+      }
+      break;
+
+    case APPLICATION_MODULES:
+      if (value == null) {
+        unsetApplicationModules();
+      } else {
+        setApplicationModules((List<String>)value);
+      }
+      break;
+
+    case APPLICATION_INPUTS:
+      if (value == null) {
+        unsetApplicationInputs();
+      } else {
+        setApplicationInputs((List<InputDataObjectType>)value);
+      }
+      break;
+
+    case APPLICATION_OUTPUTS:
+      if (value == null) {
+        unsetApplicationOutputs();
+      } else {
+        setApplicationOutputs((List<OutputDataObjectType>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case IS_EMPTY:
+      return Boolean.valueOf(isIsEmpty());
+
+    case APPLICATION_INTERFACE_ID:
+      return getApplicationInterfaceId();
+
+    case APPLICATION_NAME:
+      return getApplicationName();
+
+    case APPLICATION_MODULES:
+      return getApplicationModules();
+
+    case APPLICATION_INPUTS:
+      return getApplicationInputs();
+
+    case APPLICATION_OUTPUTS:
+      return getApplicationOutputs();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case IS_EMPTY:
+      return isSetIsEmpty();
+    case APPLICATION_INTERFACE_ID:
+      return isSetApplicationInterfaceId();
+    case APPLICATION_NAME:
+      return isSetApplicationName();
+    case APPLICATION_MODULES:
+      return isSetApplicationModules();
+    case APPLICATION_INPUTS:
+      return isSetApplicationInputs();
+    case APPLICATION_OUTPUTS:
+      return isSetApplicationOutputs();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ApplicationInterfaceDescription)
+      return this.equals((ApplicationInterfaceDescription)that);
+    return false;
+  }
+
+  public boolean equals(ApplicationInterfaceDescription that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_isEmpty = true;
+    boolean that_present_isEmpty = true;
+    if (this_present_isEmpty || that_present_isEmpty) {
+      if (!(this_present_isEmpty && that_present_isEmpty))
+        return false;
+      if (this.isEmpty != that.isEmpty)
+        return false;
+    }
+
+    boolean this_present_applicationInterfaceId = true && this.isSetApplicationInterfaceId();
+    boolean that_present_applicationInterfaceId = true && that.isSetApplicationInterfaceId();
+    if (this_present_applicationInterfaceId || that_present_applicationInterfaceId) {
+      if (!(this_present_applicationInterfaceId && that_present_applicationInterfaceId))
+        return false;
+      if (!this.applicationInterfaceId.equals(that.applicationInterfaceId))
+        return false;
+    }
+
+    boolean this_present_applicationName = true && this.isSetApplicationName();
+    boolean that_present_applicationName = true && that.isSetApplicationName();
+    if (this_present_applicationName || that_present_applicationName) {
+      if (!(this_present_applicationName && that_present_applicationName))
+        return false;
+      if (!this.applicationName.equals(that.applicationName))
+        return false;
+    }
+
+    boolean this_present_applicationModules = true && this.isSetApplicationModules();
+    boolean that_present_applicationModules = true && that.isSetApplicationModules();
+    if (this_present_applicationModules || that_present_applicationModules) {
+      if (!(this_present_applicationModules && that_present_applicationModules))
+        return false;
+      if (!this.applicationModules.equals(that.applicationModules))
+        return false;
+    }
+
+    boolean this_present_applicationInputs = true && this.isSetApplicationInputs();
+    boolean that_present_applicationInputs = true && that.isSetApplicationInputs();
+    if (this_present_applicationInputs || that_present_applicationInputs) {
+      if (!(this_present_applicationInputs && that_present_applicationInputs))
+        return false;
+      if (!this.applicationInputs.equals(that.applicationInputs))
+        return false;
+    }
+
+    boolean this_present_applicationOutputs = true && this.isSetApplicationOutputs();
+    boolean that_present_applicationOutputs = true && that.isSetApplicationOutputs();
+    if (this_present_applicationOutputs || that_present_applicationOutputs) {
+      if (!(this_present_applicationOutputs && that_present_applicationOutputs))
+        return false;
+      if (!this.applicationOutputs.equals(that.applicationOutputs))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  @Override
+  public int compareTo(ApplicationInterfaceDescription other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetIsEmpty()).compareTo(other.isSetIsEmpty());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIsEmpty()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isEmpty, other.isEmpty);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationInterfaceId()).compareTo(other.isSetApplicationInterfaceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationInterfaceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationInterfaceId, other.applicationInterfaceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationName()).compareTo(other.isSetApplicationName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationName, other.applicationName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationModules()).compareTo(other.isSetApplicationModules());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationModules()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationModules, other.applicationModules);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationInputs()).compareTo(other.isSetApplicationInputs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationInputs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationInputs, other.applicationInputs);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetApplicationOutputs()).compareTo(other.isSetApplicationOutputs());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetApplicationOutputs()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationOutputs, other.applicationOutputs);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("ApplicationInterfaceDescription(");
+    boolean first = true;
+
+    sb.append("isEmpty:");
+    sb.append(this.isEmpty);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("applicationInterfaceId:");
+    if (this.applicationInterfaceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.applicationInterfaceId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("applicationName:");
+    if (this.applicationName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.applicationName);
+    }
+    first = false;
+    if (isSetApplicationModules()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationModules:");
+      if (this.applicationModules == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationModules);
+      }
+      first = false;
+    }
+    if (isSetApplicationInputs()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationInputs:");
+      if (this.applicationInputs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationInputs);
+      }
+      first = false;
+    }
+    if (isSetApplicationOutputs()) {
+      if (!first) sb.append(", ");
+      sb.append("applicationOutputs:");
+      if (this.applicationOutputs == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationOutputs);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetIsEmpty()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'isEmpty' is unset! Struct:" + toString());
+    }
+
+    if (!isSetApplicationInterfaceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'applicationInterfaceId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetApplicationName()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'applicationName' 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 ApplicationInterfaceDescriptionStandardSchemeFactory implements SchemeFactory {
+    public ApplicationInterfaceDescriptionStandardScheme getScheme() {
+      return new ApplicationInterfaceDescriptionStandardScheme();
+    }
+  }
+
+  private static class ApplicationInterfaceDescriptionStandardScheme extends StandardScheme<ApplicationInterfaceDescription> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ApplicationInterfaceDescription struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // IS_EMPTY
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.isEmpty = iprot.readBool();
+              struct.setIsEmptyIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // APPLICATION_INTERFACE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.applicationInterfaceId = iprot.readString();
+              struct.setApplicationInterfaceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // APPLICATION_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.applicationName = iprot.readString();
+              struct.setApplicationNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // APPLICATION_MODULES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.applicationModules = new ArrayList<String>(_list0.size);
+                for (int _i1 = 0; _i1 < _list0.size; ++_i1)
+                {
+                  String _elem2;
+                  _elem2 = iprot.readString();
+                  struct.applicationModules.add(_elem2);
+                }
+                iprot.readListEnd();
+              }
+              struct.setApplicationModulesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // APPLICATION_INPUTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.applicationInputs = new ArrayList<InputDataObjectType>(_list3.size);
+                for (int _i4 = 0; _i4 < _list3.size; ++_i4)
+                {
+                  InputDataObjectType _elem5;
+                  _elem5 = new InputDataObjectType();
+                  _elem5.read(iprot);
+                  struct.applicationInputs.add(_elem5);
+                }
+                iprot.readListEnd();
+              }
+              struct.setApplicationInputsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // APPLICATION_OUTPUTS
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list6 = iprot.readListBegin();
+                struct.applicationOutputs = new ArrayList<OutputDataObjectType>(_list6.size);
+                for (int _i7 = 0; _i7 < _list6.size; ++_i7)
+                {
+                  OutputDataObjectType _elem8;
+                  _elem8 = new OutputDataObjectType();
+                  _elem8.read(iprot);
+                  struct.applicationOutputs.add(_elem8);
+                }
+                iprot.readListEnd();
+              }
+              struct.setApplicationOutputsIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, ApplicationInterfaceDescription struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(IS_EMPTY_FIELD_DESC);
+      oprot.writeBool(struct.isEmpty);
+      oprot.writeFieldEnd();
+      if (struct.applicationInterfaceId != null) {
+        oprot.writeFieldBegin(APPLICATION_INTERFACE_ID_FIELD_DESC);
+        oprot.writeString(struct.applicationInterfaceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.applicationName != null) {
+        oprot.writeFieldBegin(APPLICATION_NAME_FIELD_DESC);
+        oprot.writeString(struct.applicationName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.applicationModules != null) {
+        if (struct.isSetApplicationModules()) {
+          oprot.writeFieldBegin(APPLICATION_MODULES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.applicationModules.size()));
+            for (String _iter9 : struct.applicationModules)
+            {
+              oprot.writeString(_iter9);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.applicationInputs != null) {
+        if (struct.isSetApplicationInputs()) {
+          oprot.writeFieldBegin(APPLICATION_INPUTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.applicationInputs.size()));
+            for (InputDataObjectType _iter10 : struct.applicationInputs)
+            {
+              _iter10.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.applicationOutputs != null) {
+        if (struct.isSetApplicationOutputs()) {
+          oprot.writeFieldBegin(APPLICATION_OUTPUTS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.applicationOutputs.size()));
+            for (OutputDataObjectType _iter11 : struct.applicationOutputs)
+            {
+              _iter11.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ApplicationInterfaceDescriptionTupleSchemeFactory implements SchemeFactory {
+    public ApplicationInterfaceDescriptionTupleScheme getScheme() {
+      return new ApplicationInterfaceDescriptionTupleScheme();
+    }
+  }
+
+  private static class ApplicationInterfaceDescriptionTupleScheme extends TupleScheme<ApplicationInterfaceDescription> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ApplicationInterfaceDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeBool(struct.isEmpty);
+      oprot.writeString(struct.applicationInterfaceId);
+      oprot.writeString(struct.applicationName);
+      BitSet optionals = new BitSet();
+      if (struct.isSetApplicationModules()) {
+        optionals.set(0);
+      }
+      if (struct.isSetApplicationInputs()) {
+        optionals.set(1);
+      }
+      if (struct.isSetApplicationOutputs()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetApplicationModules()) {
+        {
+          oprot.writeI32(struct.applicationModules.size());
+          for (String _iter12 : struct.applicationModules)
+          {
+            oprot.writeString(_iter12);
+          }
+        }
+      }
+      if (struct.isSetApplicationInputs()) {
+        {
+          oprot.writeI32(struct.applicationInputs.size());
+          for (InputDataObjectType _iter13 : struct.applicationInputs)
+          {
+            _iter13.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetApplicationOutputs()) {
+        {
+          oprot.writeI32(struct.applicationOutputs.size());
+          for (OutputDataObjectType _iter14 : struct.applicationOutputs)
+          {
+            _iter14.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ApplicationInterfaceDescription struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.isEmpty = iprot.readBool();
+      struct.setIsEmptyIsSet(true);
+      struct.applicationInterfaceId = iprot.readString();
+      struct.setApplicationInterfaceIdIsSet(true);
+      struct.applicationName = iprot.readString();
+      struct.setApplicationNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TList _list15 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.applicationModules = new ArrayList<String>(_list15.size);
+          for (int _i16 = 0; _i16 < _list15.size; ++_i16)
+          {
+            String _elem17;
+            _elem17 = iprot.readString();
+            struct.applicationModules.add(_elem17);
+          }
+        }
+        struct.setApplicationModulesIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TList _list18 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.applicationInputs = new ArrayList<InputDataObjectType>(_list18.size);
+          for (int _i19 = 0; _i19 < _list18.size; ++_i19)
+          {
+            InputDataObjectType _elem20;
+            _elem20 = new InputDataObjectType();
+            _elem20.read(iprot);
+            struct.applicationInputs.add(_elem20);
+          }
+        }
+        struct.setApplicationInputsIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list21 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.applicationOutputs = new ArrayList<OutputDataObjectType>(_list21.size);
+          for (int _i22 = 0; _i22 < _list21.size; ++_i22)
+          {
+            OutputDataObjectType _elem23;
+            _elem23 = new OutputDataObjectType();
+            _elem23.read(iprot);
+            struct.applicationOutputs.add(_elem23);
+          }
+        }
+        struct.setApplicationOutputsIsSet(true);
+      }
+    }
+  }
+
+}
+

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