You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/06/13 01:16:53 UTC

[24/31] airavata git commit: generated new data model classes.

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

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