You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/03/22 17:37:21 UTC

[06/16] airavata git commit: refactoring the datacatalog code

http://git-wip-us.apache.org/repos/asf/airavata/blob/a963d3f0/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataReplicaLocationModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataReplicaLocationModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataReplicaLocationModel.java
new file mode 100644
index 0000000..d426a2e
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/DataReplicaLocationModel.java
@@ -0,0 +1,1618 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.product;
+
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.protocol.TTupleProtocol;
+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 javax.annotation.Generated;
+import java.util.*;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-03-22")
+public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataReplicaLocationModel, DataReplicaLocationModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataReplicaLocationModel> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataReplicaLocationModel");
+
+  private static final org.apache.thrift.protocol.TField REPLICA_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField PRODUCT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("productId", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField REPLICA_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaName", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField REPLICA_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaDescription", org.apache.thrift.protocol.TType.STRING, (short)4);
+  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)5);
+  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedTime", org.apache.thrift.protocol.TType.I64, (short)6);
+  private static final org.apache.thrift.protocol.TField VALID_UNTIL_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("validUntilTime", org.apache.thrift.protocol.TType.I64, (short)7);
+  private static final org.apache.thrift.protocol.TField REPLICA_LOCATION_CATEGORY_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaLocationCategory", org.apache.thrift.protocol.TType.I32, (short)8);
+  private static final org.apache.thrift.protocol.TField REPLICA_PERSISTENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaPersistentType", org.apache.thrift.protocol.TType.I32, (short)9);
+  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)10);
+  private static final org.apache.thrift.protocol.TField FILE_ABSOLUTE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("filePath", org.apache.thrift.protocol.TType.STRING, (short)11);
+  private static final org.apache.thrift.protocol.TField REPLICA_METADATA_FIELD_DESC = new org.apache.thrift.protocol.TField("replicaMetadata", org.apache.thrift.protocol.TType.MAP, (short)12);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new DataReplicaLocationModelStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new DataReplicaLocationModelTupleSchemeFactory());
+  }
+
+  private String replicaId; // optional
+  private String productId; // optional
+  private String replicaName; // optional
+  private String replicaDescription; // optional
+  private long creationTime; // optional
+  private long lastModifiedTime; // optional
+  private long validUntilTime; // optional
+  private ReplicaLocationCategory replicaLocationCategory; // optional
+  private ReplicaPersistentType replicaPersistentType; // optional
+  private String storageResourceId; // optional
+  private String filePath; // optional
+  private Map<String,String> replicaMetadata; // 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 {
+    REPLICA_ID((short)1, "replicaId"),
+    PRODUCT_ID((short)2, "productId"),
+    REPLICA_NAME((short)3, "replicaName"),
+    REPLICA_DESCRIPTION((short)4, "replicaDescription"),
+    CREATION_TIME((short)5, "creationTime"),
+    LAST_MODIFIED_TIME((short)6, "lastModifiedTime"),
+    VALID_UNTIL_TIME((short)7, "validUntilTime"),
+    /**
+     * 
+     * @see ReplicaLocationCategory
+     */
+    REPLICA_LOCATION_CATEGORY((short)8, "replicaLocationCategory"),
+    /**
+     * 
+     * @see ReplicaPersistentType
+     */
+    REPLICA_PERSISTENT_TYPE((short)9, "replicaPersistentType"),
+    STORAGE_RESOURCE_ID((short)10, "storageResourceId"),
+    FILE_ABSOLUTE_PATH((short)11, "filePath"),
+    REPLICA_METADATA((short)12, "replicaMetadata");
+
+    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: // REPLICA_ID
+          return REPLICA_ID;
+        case 2: // PRODUCT_ID
+          return PRODUCT_ID;
+        case 3: // REPLICA_NAME
+          return REPLICA_NAME;
+        case 4: // REPLICA_DESCRIPTION
+          return REPLICA_DESCRIPTION;
+        case 5: // CREATION_TIME
+          return CREATION_TIME;
+        case 6: // LAST_MODIFIED_TIME
+          return LAST_MODIFIED_TIME;
+        case 7: // VALID_UNTIL_TIME
+          return VALID_UNTIL_TIME;
+        case 8: // REPLICA_LOCATION_CATEGORY
+          return REPLICA_LOCATION_CATEGORY;
+        case 9: // REPLICA_PERSISTENT_TYPE
+          return REPLICA_PERSISTENT_TYPE;
+        case 10: // STORAGE_RESOURCE_ID
+          return STORAGE_RESOURCE_ID;
+        case 11: // FILE_ABSOLUTE_PATH
+          return FILE_ABSOLUTE_PATH;
+        case 12: // REPLICA_METADATA
+          return REPLICA_METADATA;
+        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 __LASTMODIFIEDTIME_ISSET_ID = 1;
+  private static final int __VALIDUNTILTIME_ISSET_ID = 2;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.REPLICA_ID,_Fields.PRODUCT_ID,_Fields.REPLICA_NAME,_Fields.REPLICA_DESCRIPTION,_Fields.CREATION_TIME,_Fields.LAST_MODIFIED_TIME,_Fields.VALID_UNTIL_TIME,_Fields.REPLICA_LOCATION_CATEGORY,_Fields.REPLICA_PERSISTENT_TYPE,_Fields.STORAGE_RESOURCE_ID,_Fields.FILE_ABSOLUTE_PATH,_Fields.REPLICA_METADATA};
+  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.REPLICA_ID, new org.apache.thrift.meta_data.FieldMetaData("replicaId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PRODUCT_ID, new org.apache.thrift.meta_data.FieldMetaData("productId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REPLICA_NAME, new org.apache.thrift.meta_data.FieldMetaData("replicaName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REPLICA_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("replicaDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        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.LAST_MODIFIED_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.VALID_UNTIL_TIME, new org.apache.thrift.meta_data.FieldMetaData("validUntilTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.REPLICA_LOCATION_CATEGORY, new org.apache.thrift.meta_data.FieldMetaData("replicaLocationCategory", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ReplicaLocationCategory.class)));
+    tmpMap.put(_Fields.REPLICA_PERSISTENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("replicaPersistentType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ReplicaPersistentType.class)));
+    tmpMap.put(_Fields.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_ABSOLUTE_PATH, new org.apache.thrift.meta_data.FieldMetaData("filePath", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REPLICA_METADATA, new org.apache.thrift.meta_data.FieldMetaData("replicaMetadata", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataReplicaLocationModel.class, metaDataMap);
+  }
+
+  public DataReplicaLocationModel() {
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public DataReplicaLocationModel(DataReplicaLocationModel other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetReplicaId()) {
+      this.replicaId = other.replicaId;
+    }
+    if (other.isSetProductId()) {
+      this.productId = other.productId;
+    }
+    if (other.isSetReplicaName()) {
+      this.replicaName = other.replicaName;
+    }
+    if (other.isSetReplicaDescription()) {
+      this.replicaDescription = other.replicaDescription;
+    }
+    this.creationTime = other.creationTime;
+    this.lastModifiedTime = other.lastModifiedTime;
+    this.validUntilTime = other.validUntilTime;
+    if (other.isSetReplicaLocationCategory()) {
+      this.replicaLocationCategory = other.replicaLocationCategory;
+    }
+    if (other.isSetReplicaPersistentType()) {
+      this.replicaPersistentType = other.replicaPersistentType;
+    }
+    if (other.isSetStorageResourceId()) {
+      this.storageResourceId = other.storageResourceId;
+    }
+    if (other.isSetFileAbsolutePath()) {
+      this.filePath = other.filePath;
+    }
+    if (other.isSetReplicaMetadata()) {
+      Map<String,String> __this__replicaMetadata = new HashMap<String,String>(other.replicaMetadata);
+      this.replicaMetadata = __this__replicaMetadata;
+    }
+  }
+
+  public DataReplicaLocationModel deepCopy() {
+    return new DataReplicaLocationModel(this);
+  }
+
+  @Override
+  public void clear() {
+    this.replicaId = null;
+    this.productId = null;
+    this.replicaName = null;
+    this.replicaDescription = null;
+    setCreationTimeIsSet(false);
+    this.creationTime = 0;
+    setLastModifiedTimeIsSet(false);
+    this.lastModifiedTime = 0;
+    setValidUntilTimeIsSet(false);
+    this.validUntilTime = 0;
+    this.replicaLocationCategory = null;
+    this.replicaPersistentType = null;
+    this.storageResourceId = null;
+    this.filePath = null;
+    this.replicaMetadata = null;
+  }
+
+  public String getReplicaId() {
+    return this.replicaId;
+  }
+
+  public void setReplicaId(String replicaId) {
+    this.replicaId = replicaId;
+  }
+
+  public void unsetReplicaId() {
+    this.replicaId = null;
+  }
+
+  /** Returns true if field replicaId is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaId() {
+    return this.replicaId != null;
+  }
+
+  public void setReplicaIdIsSet(boolean value) {
+    if (!value) {
+      this.replicaId = null;
+    }
+  }
+
+  public String getProductId() {
+    return this.productId;
+  }
+
+  public void setProductId(String productId) {
+    this.productId = productId;
+  }
+
+  public void unsetProductId() {
+    this.productId = null;
+  }
+
+  /** Returns true if field productId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProductId() {
+    return this.productId != null;
+  }
+
+  public void setProductIdIsSet(boolean value) {
+    if (!value) {
+      this.productId = null;
+    }
+  }
+
+  public String getReplicaName() {
+    return this.replicaName;
+  }
+
+  public void setReplicaName(String replicaName) {
+    this.replicaName = replicaName;
+  }
+
+  public void unsetReplicaName() {
+    this.replicaName = null;
+  }
+
+  /** Returns true if field replicaName is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaName() {
+    return this.replicaName != null;
+  }
+
+  public void setReplicaNameIsSet(boolean value) {
+    if (!value) {
+      this.replicaName = null;
+    }
+  }
+
+  public String getReplicaDescription() {
+    return this.replicaDescription;
+  }
+
+  public void setReplicaDescription(String replicaDescription) {
+    this.replicaDescription = replicaDescription;
+  }
+
+  public void unsetReplicaDescription() {
+    this.replicaDescription = null;
+  }
+
+  /** Returns true if field replicaDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaDescription() {
+    return this.replicaDescription != null;
+  }
+
+  public void setReplicaDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.replicaDescription = 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 long getLastModifiedTime() {
+    return this.lastModifiedTime;
+  }
+
+  public void setLastModifiedTime(long lastModifiedTime) {
+    this.lastModifiedTime = lastModifiedTime;
+    setLastModifiedTimeIsSet(true);
+  }
+
+  public void unsetLastModifiedTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
+  }
+
+  /** Returns true if field lastModifiedTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetLastModifiedTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID);
+  }
+
+  public void setLastModifiedTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTMODIFIEDTIME_ISSET_ID, value);
+  }
+
+  public long getValidUntilTime() {
+    return this.validUntilTime;
+  }
+
+  public void setValidUntilTime(long validUntilTime) {
+    this.validUntilTime = validUntilTime;
+    setValidUntilTimeIsSet(true);
+  }
+
+  public void unsetValidUntilTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID);
+  }
+
+  /** Returns true if field validUntilTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetValidUntilTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID);
+  }
+
+  public void setValidUntilTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __VALIDUNTILTIME_ISSET_ID, value);
+  }
+
+  /**
+   * 
+   * @see ReplicaLocationCategory
+   */
+  public ReplicaLocationCategory getReplicaLocationCategory() {
+    return this.replicaLocationCategory;
+  }
+
+  /**
+   * 
+   * @see ReplicaLocationCategory
+   */
+  public void setReplicaLocationCategory(ReplicaLocationCategory replicaLocationCategory) {
+    this.replicaLocationCategory = replicaLocationCategory;
+  }
+
+  public void unsetReplicaLocationCategory() {
+    this.replicaLocationCategory = null;
+  }
+
+  /** Returns true if field replicaLocationCategory is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaLocationCategory() {
+    return this.replicaLocationCategory != null;
+  }
+
+  public void setReplicaLocationCategoryIsSet(boolean value) {
+    if (!value) {
+      this.replicaLocationCategory = null;
+    }
+  }
+
+  /**
+   * 
+   * @see ReplicaPersistentType
+   */
+  public ReplicaPersistentType getReplicaPersistentType() {
+    return this.replicaPersistentType;
+  }
+
+  /**
+   * 
+   * @see ReplicaPersistentType
+   */
+  public void setReplicaPersistentType(ReplicaPersistentType replicaPersistentType) {
+    this.replicaPersistentType = replicaPersistentType;
+  }
+
+  public void unsetReplicaPersistentType() {
+    this.replicaPersistentType = null;
+  }
+
+  /** Returns true if field replicaPersistentType is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaPersistentType() {
+    return this.replicaPersistentType != null;
+  }
+
+  public void setReplicaPersistentTypeIsSet(boolean value) {
+    if (!value) {
+      this.replicaPersistentType = null;
+    }
+  }
+
+  public String getStorageResourceId() {
+    return this.storageResourceId;
+  }
+
+  public void setStorageResourceId(String storageResourceId) {
+    this.storageResourceId = storageResourceId;
+  }
+
+  public void unsetStorageResourceId() {
+    this.storageResourceId = null;
+  }
+
+  /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageResourceId() {
+    return this.storageResourceId != null;
+  }
+
+  public void setStorageResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.storageResourceId = null;
+    }
+  }
+
+  public String getFilePath() {
+    return this.filePath;
+  }
+
+  public void setFilePath(String filePath) {
+    this.filePath = filePath;
+  }
+
+  public void unsetFileAbsolutePath() {
+    this.filePath = null;
+  }
+
+  /** Returns true if field filePath is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileAbsolutePath() {
+    return this.filePath != null;
+  }
+
+  public void setFileAbsolutePathIsSet(boolean value) {
+    if (!value) {
+      this.filePath = null;
+    }
+  }
+
+  public int getReplicaMetadataSize() {
+    return (this.replicaMetadata == null) ? 0 : this.replicaMetadata.size();
+  }
+
+  public void putToReplicaMetadata(String key, String val) {
+    if (this.replicaMetadata == null) {
+      this.replicaMetadata = new HashMap<String,String>();
+    }
+    this.replicaMetadata.put(key, val);
+  }
+
+  public Map<String,String> getReplicaMetadata() {
+    return this.replicaMetadata;
+  }
+
+  public void setReplicaMetadata(Map<String,String> replicaMetadata) {
+    this.replicaMetadata = replicaMetadata;
+  }
+
+  public void unsetReplicaMetadata() {
+    this.replicaMetadata = null;
+  }
+
+  /** Returns true if field replicaMetadata is set (has been assigned a value) and false otherwise */
+  public boolean isSetReplicaMetadata() {
+    return this.replicaMetadata != null;
+  }
+
+  public void setReplicaMetadataIsSet(boolean value) {
+    if (!value) {
+      this.replicaMetadata = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case REPLICA_ID:
+      if (value == null) {
+        unsetReplicaId();
+      } else {
+        setReplicaId((String)value);
+      }
+      break;
+
+    case PRODUCT_ID:
+      if (value == null) {
+        unsetProductId();
+      } else {
+        setProductId((String)value);
+      }
+      break;
+
+    case REPLICA_NAME:
+      if (value == null) {
+        unsetReplicaName();
+      } else {
+        setReplicaName((String)value);
+      }
+      break;
+
+    case REPLICA_DESCRIPTION:
+      if (value == null) {
+        unsetReplicaDescription();
+      } else {
+        setReplicaDescription((String)value);
+      }
+      break;
+
+    case CREATION_TIME:
+      if (value == null) {
+        unsetCreationTime();
+      } else {
+        setCreationTime((Long)value);
+      }
+      break;
+
+    case LAST_MODIFIED_TIME:
+      if (value == null) {
+        unsetLastModifiedTime();
+      } else {
+        setLastModifiedTime((Long)value);
+      }
+      break;
+
+    case VALID_UNTIL_TIME:
+      if (value == null) {
+        unsetValidUntilTime();
+      } else {
+        setValidUntilTime((Long)value);
+      }
+      break;
+
+    case REPLICA_LOCATION_CATEGORY:
+      if (value == null) {
+        unsetReplicaLocationCategory();
+      } else {
+        setReplicaLocationCategory((ReplicaLocationCategory)value);
+      }
+      break;
+
+    case REPLICA_PERSISTENT_TYPE:
+      if (value == null) {
+        unsetReplicaPersistentType();
+      } else {
+        setReplicaPersistentType((ReplicaPersistentType)value);
+      }
+      break;
+
+    case STORAGE_RESOURCE_ID:
+      if (value == null) {
+        unsetStorageResourceId();
+      } else {
+        setStorageResourceId((String)value);
+      }
+      break;
+
+    case FILE_ABSOLUTE_PATH:
+      if (value == null) {
+        unsetFileAbsolutePath();
+      } else {
+        setFilePath((String) value);
+      }
+      break;
+
+    case REPLICA_METADATA:
+      if (value == null) {
+        unsetReplicaMetadata();
+      } else {
+        setReplicaMetadata((Map<String,String>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case REPLICA_ID:
+      return getReplicaId();
+
+    case PRODUCT_ID:
+      return getProductId();
+
+    case REPLICA_NAME:
+      return getReplicaName();
+
+    case REPLICA_DESCRIPTION:
+      return getReplicaDescription();
+
+    case CREATION_TIME:
+      return getCreationTime();
+
+    case LAST_MODIFIED_TIME:
+      return getLastModifiedTime();
+
+    case VALID_UNTIL_TIME:
+      return getValidUntilTime();
+
+    case REPLICA_LOCATION_CATEGORY:
+      return getReplicaLocationCategory();
+
+    case REPLICA_PERSISTENT_TYPE:
+      return getReplicaPersistentType();
+
+    case STORAGE_RESOURCE_ID:
+      return getStorageResourceId();
+
+    case FILE_ABSOLUTE_PATH:
+      return getFilePath();
+
+    case REPLICA_METADATA:
+      return getReplicaMetadata();
+
+    }
+    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 REPLICA_ID:
+      return isSetReplicaId();
+    case PRODUCT_ID:
+      return isSetProductId();
+    case REPLICA_NAME:
+      return isSetReplicaName();
+    case REPLICA_DESCRIPTION:
+      return isSetReplicaDescription();
+    case CREATION_TIME:
+      return isSetCreationTime();
+    case LAST_MODIFIED_TIME:
+      return isSetLastModifiedTime();
+    case VALID_UNTIL_TIME:
+      return isSetValidUntilTime();
+    case REPLICA_LOCATION_CATEGORY:
+      return isSetReplicaLocationCategory();
+    case REPLICA_PERSISTENT_TYPE:
+      return isSetReplicaPersistentType();
+    case STORAGE_RESOURCE_ID:
+      return isSetStorageResourceId();
+    case FILE_ABSOLUTE_PATH:
+      return isSetFileAbsolutePath();
+    case REPLICA_METADATA:
+      return isSetReplicaMetadata();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof DataReplicaLocationModel)
+      return this.equals((DataReplicaLocationModel)that);
+    return false;
+  }
+
+  public boolean equals(DataReplicaLocationModel that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_replicaId = true && this.isSetReplicaId();
+    boolean that_present_replicaId = true && that.isSetReplicaId();
+    if (this_present_replicaId || that_present_replicaId) {
+      if (!(this_present_replicaId && that_present_replicaId))
+        return false;
+      if (!this.replicaId.equals(that.replicaId))
+        return false;
+    }
+
+    boolean this_present_productId = true && this.isSetProductId();
+    boolean that_present_productId = true && that.isSetProductId();
+    if (this_present_productId || that_present_productId) {
+      if (!(this_present_productId && that_present_productId))
+        return false;
+      if (!this.productId.equals(that.productId))
+        return false;
+    }
+
+    boolean this_present_replicaName = true && this.isSetReplicaName();
+    boolean that_present_replicaName = true && that.isSetReplicaName();
+    if (this_present_replicaName || that_present_replicaName) {
+      if (!(this_present_replicaName && that_present_replicaName))
+        return false;
+      if (!this.replicaName.equals(that.replicaName))
+        return false;
+    }
+
+    boolean this_present_replicaDescription = true && this.isSetReplicaDescription();
+    boolean that_present_replicaDescription = true && that.isSetReplicaDescription();
+    if (this_present_replicaDescription || that_present_replicaDescription) {
+      if (!(this_present_replicaDescription && that_present_replicaDescription))
+        return false;
+      if (!this.replicaDescription.equals(that.replicaDescription))
+        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_lastModifiedTime = true && this.isSetLastModifiedTime();
+    boolean that_present_lastModifiedTime = true && that.isSetLastModifiedTime();
+    if (this_present_lastModifiedTime || that_present_lastModifiedTime) {
+      if (!(this_present_lastModifiedTime && that_present_lastModifiedTime))
+        return false;
+      if (this.lastModifiedTime != that.lastModifiedTime)
+        return false;
+    }
+
+    boolean this_present_validUntilTime = true && this.isSetValidUntilTime();
+    boolean that_present_validUntilTime = true && that.isSetValidUntilTime();
+    if (this_present_validUntilTime || that_present_validUntilTime) {
+      if (!(this_present_validUntilTime && that_present_validUntilTime))
+        return false;
+      if (this.validUntilTime != that.validUntilTime)
+        return false;
+    }
+
+    boolean this_present_replicaLocationCategory = true && this.isSetReplicaLocationCategory();
+    boolean that_present_replicaLocationCategory = true && that.isSetReplicaLocationCategory();
+    if (this_present_replicaLocationCategory || that_present_replicaLocationCategory) {
+      if (!(this_present_replicaLocationCategory && that_present_replicaLocationCategory))
+        return false;
+      if (!this.replicaLocationCategory.equals(that.replicaLocationCategory))
+        return false;
+    }
+
+    boolean this_present_replicaPersistentType = true && this.isSetReplicaPersistentType();
+    boolean that_present_replicaPersistentType = true && that.isSetReplicaPersistentType();
+    if (this_present_replicaPersistentType || that_present_replicaPersistentType) {
+      if (!(this_present_replicaPersistentType && that_present_replicaPersistentType))
+        return false;
+      if (!this.replicaPersistentType.equals(that.replicaPersistentType))
+        return false;
+    }
+
+    boolean this_present_storageResourceId = true && this.isSetStorageResourceId();
+    boolean that_present_storageResourceId = true && that.isSetStorageResourceId();
+    if (this_present_storageResourceId || that_present_storageResourceId) {
+      if (!(this_present_storageResourceId && that_present_storageResourceId))
+        return false;
+      if (!this.storageResourceId.equals(that.storageResourceId))
+        return false;
+    }
+
+    boolean this_present_fileAbsolutePath = true && this.isSetFileAbsolutePath();
+    boolean that_present_fileAbsolutePath = true && that.isSetFileAbsolutePath();
+    if (this_present_fileAbsolutePath || that_present_fileAbsolutePath) {
+      if (!(this_present_fileAbsolutePath && that_present_fileAbsolutePath))
+        return false;
+      if (!this.filePath.equals(that.filePath))
+        return false;
+    }
+
+    boolean this_present_replicaMetadata = true && this.isSetReplicaMetadata();
+    boolean that_present_replicaMetadata = true && that.isSetReplicaMetadata();
+    if (this_present_replicaMetadata || that_present_replicaMetadata) {
+      if (!(this_present_replicaMetadata && that_present_replicaMetadata))
+        return false;
+      if (!this.replicaMetadata.equals(that.replicaMetadata))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_replicaId = true && (isSetReplicaId());
+    list.add(present_replicaId);
+    if (present_replicaId)
+      list.add(replicaId);
+
+    boolean present_productId = true && (isSetProductId());
+    list.add(present_productId);
+    if (present_productId)
+      list.add(productId);
+
+    boolean present_replicaName = true && (isSetReplicaName());
+    list.add(present_replicaName);
+    if (present_replicaName)
+      list.add(replicaName);
+
+    boolean present_replicaDescription = true && (isSetReplicaDescription());
+    list.add(present_replicaDescription);
+    if (present_replicaDescription)
+      list.add(replicaDescription);
+
+    boolean present_creationTime = true && (isSetCreationTime());
+    list.add(present_creationTime);
+    if (present_creationTime)
+      list.add(creationTime);
+
+    boolean present_lastModifiedTime = true && (isSetLastModifiedTime());
+    list.add(present_lastModifiedTime);
+    if (present_lastModifiedTime)
+      list.add(lastModifiedTime);
+
+    boolean present_validUntilTime = true && (isSetValidUntilTime());
+    list.add(present_validUntilTime);
+    if (present_validUntilTime)
+      list.add(validUntilTime);
+
+    boolean present_replicaLocationCategory = true && (isSetReplicaLocationCategory());
+    list.add(present_replicaLocationCategory);
+    if (present_replicaLocationCategory)
+      list.add(replicaLocationCategory.getValue());
+
+    boolean present_replicaPersistentType = true && (isSetReplicaPersistentType());
+    list.add(present_replicaPersistentType);
+    if (present_replicaPersistentType)
+      list.add(replicaPersistentType.getValue());
+
+    boolean present_storageResourceId = true && (isSetStorageResourceId());
+    list.add(present_storageResourceId);
+    if (present_storageResourceId)
+      list.add(storageResourceId);
+
+    boolean present_fileAbsolutePath = true && (isSetFileAbsolutePath());
+    list.add(present_fileAbsolutePath);
+    if (present_fileAbsolutePath)
+      list.add(filePath);
+
+    boolean present_replicaMetadata = true && (isSetReplicaMetadata());
+    list.add(present_replicaMetadata);
+    if (present_replicaMetadata)
+      list.add(replicaMetadata);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(DataReplicaLocationModel other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetReplicaId()).compareTo(other.isSetReplicaId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaId, other.replicaId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetProductId()).compareTo(other.isSetProductId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetProductId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productId, other.productId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaName()).compareTo(other.isSetReplicaName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaName, other.replicaName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaDescription()).compareTo(other.isSetReplicaDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaDescription, other.replicaDescription);
+      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(isSetLastModifiedTime()).compareTo(other.isSetLastModifiedTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLastModifiedTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedTime, other.lastModifiedTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetValidUntilTime()).compareTo(other.isSetValidUntilTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValidUntilTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validUntilTime, other.validUntilTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaLocationCategory()).compareTo(other.isSetReplicaLocationCategory());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaLocationCategory()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaLocationCategory, other.replicaLocationCategory);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaPersistentType()).compareTo(other.isSetReplicaPersistentType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaPersistentType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaPersistentType, other.replicaPersistentType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileAbsolutePath()).compareTo(other.isSetFileAbsolutePath());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileAbsolutePath()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filePath, other.filePath);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReplicaMetadata()).compareTo(other.isSetReplicaMetadata());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReplicaMetadata()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaMetadata, other.replicaMetadata);
+      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("DataReplicaLocationModel(");
+    boolean first = true;
+
+    if (isSetReplicaId()) {
+      sb.append("replicaId:");
+      if (this.replicaId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaId);
+      }
+      first = false;
+    }
+    if (isSetProductId()) {
+      if (!first) sb.append(", ");
+      sb.append("productId:");
+      if (this.productId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.productId);
+      }
+      first = false;
+    }
+    if (isSetReplicaName()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaName:");
+      if (this.replicaName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaName);
+      }
+      first = false;
+    }
+    if (isSetReplicaDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaDescription:");
+      if (this.replicaDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaDescription);
+      }
+      first = false;
+    }
+    if (isSetCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("creationTime:");
+      sb.append(this.creationTime);
+      first = false;
+    }
+    if (isSetLastModifiedTime()) {
+      if (!first) sb.append(", ");
+      sb.append("lastModifiedTime:");
+      sb.append(this.lastModifiedTime);
+      first = false;
+    }
+    if (isSetValidUntilTime()) {
+      if (!first) sb.append(", ");
+      sb.append("validUntilTime:");
+      sb.append(this.validUntilTime);
+      first = false;
+    }
+    if (isSetReplicaLocationCategory()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaLocationCategory:");
+      if (this.replicaLocationCategory == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaLocationCategory);
+      }
+      first = false;
+    }
+    if (isSetReplicaPersistentType()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaPersistentType:");
+      if (this.replicaPersistentType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaPersistentType);
+      }
+      first = false;
+    }
+    if (isSetStorageResourceId()) {
+      if (!first) sb.append(", ");
+      sb.append("storageResourceId:");
+      if (this.storageResourceId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.storageResourceId);
+      }
+      first = false;
+    }
+    if (isSetFileAbsolutePath()) {
+      if (!first) sb.append(", ");
+      sb.append("filePath:");
+      if (this.filePath == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.filePath);
+      }
+      first = false;
+    }
+    if (isSetReplicaMetadata()) {
+      if (!first) sb.append(", ");
+      sb.append("replicaMetadata:");
+      if (this.replicaMetadata == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.replicaMetadata);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // 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 DataReplicaLocationModelStandardSchemeFactory implements SchemeFactory {
+    public DataReplicaLocationModelStandardScheme getScheme() {
+      return new DataReplicaLocationModelStandardScheme();
+    }
+  }
+
+  private static class DataReplicaLocationModelStandardScheme extends StandardScheme<DataReplicaLocationModel> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, DataReplicaLocationModel 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: // REPLICA_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.replicaId = iprot.readString();
+              struct.setReplicaIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PRODUCT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.productId = iprot.readString();
+              struct.setProductIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // REPLICA_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.replicaName = iprot.readString();
+              struct.setReplicaNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // REPLICA_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.replicaDescription = iprot.readString();
+              struct.setReplicaDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // 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 6: // LAST_MODIFIED_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.lastModifiedTime = iprot.readI64();
+              struct.setLastModifiedTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // VALID_UNTIL_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.validUntilTime = iprot.readI64();
+              struct.setValidUntilTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // REPLICA_LOCATION_CATEGORY
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.replicaLocationCategory = org.apache.airavata.model.data.product.ReplicaLocationCategory.findByValue(iprot.readI32());
+              struct.setReplicaLocationCategoryIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // REPLICA_PERSISTENT_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.replicaPersistentType = org.apache.airavata.model.data.product.ReplicaPersistentType.findByValue(iprot.readI32());
+              struct.setReplicaPersistentTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // STORAGE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageResourceId = iprot.readString();
+              struct.setStorageResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // FILE_ABSOLUTE_PATH
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.filePath = iprot.readString();
+              struct.setFileAbsolutePathIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // REPLICA_METADATA
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map26 = iprot.readMapBegin();
+                struct.replicaMetadata = new HashMap<String,String>(2*_map26.size);
+                String _key27;
+                String _val28;
+                for (int _i29 = 0; _i29 < _map26.size; ++_i29)
+                {
+                  _key27 = iprot.readString();
+                  _val28 = iprot.readString();
+                  struct.replicaMetadata.put(_key27, _val28);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setReplicaMetadataIsSet(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, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.replicaId != null) {
+        if (struct.isSetReplicaId()) {
+          oprot.writeFieldBegin(REPLICA_ID_FIELD_DESC);
+          oprot.writeString(struct.replicaId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.productId != null) {
+        if (struct.isSetProductId()) {
+          oprot.writeFieldBegin(PRODUCT_ID_FIELD_DESC);
+          oprot.writeString(struct.productId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaName != null) {
+        if (struct.isSetReplicaName()) {
+          oprot.writeFieldBegin(REPLICA_NAME_FIELD_DESC);
+          oprot.writeString(struct.replicaName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaDescription != null) {
+        if (struct.isSetReplicaDescription()) {
+          oprot.writeFieldBegin(REPLICA_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.replicaDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.creationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetLastModifiedTime()) {
+        oprot.writeFieldBegin(LAST_MODIFIED_TIME_FIELD_DESC);
+        oprot.writeI64(struct.lastModifiedTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetValidUntilTime()) {
+        oprot.writeFieldBegin(VALID_UNTIL_TIME_FIELD_DESC);
+        oprot.writeI64(struct.validUntilTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.replicaLocationCategory != null) {
+        if (struct.isSetReplicaLocationCategory()) {
+          oprot.writeFieldBegin(REPLICA_LOCATION_CATEGORY_FIELD_DESC);
+          oprot.writeI32(struct.replicaLocationCategory.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaPersistentType != null) {
+        if (struct.isSetReplicaPersistentType()) {
+          oprot.writeFieldBegin(REPLICA_PERSISTENT_TYPE_FIELD_DESC);
+          oprot.writeI32(struct.replicaPersistentType.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.storageResourceId != null) {
+        if (struct.isSetStorageResourceId()) {
+          oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
+          oprot.writeString(struct.storageResourceId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.filePath != null) {
+        if (struct.isSetFileAbsolutePath()) {
+          oprot.writeFieldBegin(FILE_ABSOLUTE_PATH_FIELD_DESC);
+          oprot.writeString(struct.filePath);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.replicaMetadata != null) {
+        if (struct.isSetReplicaMetadata()) {
+          oprot.writeFieldBegin(REPLICA_METADATA_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.replicaMetadata.size()));
+            for (Map.Entry<String, String> _iter30 : struct.replicaMetadata.entrySet())
+            {
+              oprot.writeString(_iter30.getKey());
+              oprot.writeString(_iter30.getValue());
+            }
+            oprot.writeMapEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class DataReplicaLocationModelTupleSchemeFactory implements SchemeFactory {
+    public DataReplicaLocationModelTupleScheme getScheme() {
+      return new DataReplicaLocationModelTupleScheme();
+    }
+  }
+
+  private static class DataReplicaLocationModelTupleScheme extends TupleScheme<DataReplicaLocationModel> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetReplicaId()) {
+        optionals.set(0);
+      }
+      if (struct.isSetProductId()) {
+        optionals.set(1);
+      }
+      if (struct.isSetReplicaName()) {
+        optionals.set(2);
+      }
+      if (struct.isSetReplicaDescription()) {
+        optionals.set(3);
+      }
+      if (struct.isSetCreationTime()) {
+        optionals.set(4);
+      }
+      if (struct.isSetLastModifiedTime()) {
+        optionals.set(5);
+      }
+      if (struct.isSetValidUntilTime()) {
+        optionals.set(6);
+      }
+      if (struct.isSetReplicaLocationCategory()) {
+        optionals.set(7);
+      }
+      if (struct.isSetReplicaPersistentType()) {
+        optionals.set(8);
+      }
+      if (struct.isSetStorageResourceId()) {
+        optionals.set(9);
+      }
+      if (struct.isSetFileAbsolutePath()) {
+        optionals.set(10);
+      }
+      if (struct.isSetReplicaMetadata()) {
+        optionals.set(11);
+      }
+      oprot.writeBitSet(optionals, 12);
+      if (struct.isSetReplicaId()) {
+        oprot.writeString(struct.replicaId);
+      }
+      if (struct.isSetProductId()) {
+        oprot.writeString(struct.productId);
+      }
+      if (struct.isSetReplicaName()) {
+        oprot.writeString(struct.replicaName);
+      }
+      if (struct.isSetReplicaDescription()) {
+        oprot.writeString(struct.replicaDescription);
+      }
+      if (struct.isSetCreationTime()) {
+        oprot.writeI64(struct.creationTime);
+      }
+      if (struct.isSetLastModifiedTime()) {
+        oprot.writeI64(struct.lastModifiedTime);
+      }
+      if (struct.isSetValidUntilTime()) {
+        oprot.writeI64(struct.validUntilTime);
+      }
+      if (struct.isSetReplicaLocationCategory()) {
+        oprot.writeI32(struct.replicaLocationCategory.getValue());
+      }
+      if (struct.isSetReplicaPersistentType()) {
+        oprot.writeI32(struct.replicaPersistentType.getValue());
+      }
+      if (struct.isSetStorageResourceId()) {
+        oprot.writeString(struct.storageResourceId);
+      }
+      if (struct.isSetFileAbsolutePath()) {
+        oprot.writeString(struct.filePath);
+      }
+      if (struct.isSetReplicaMetadata()) {
+        {
+          oprot.writeI32(struct.replicaMetadata.size());
+          for (Map.Entry<String, String> _iter31 : struct.replicaMetadata.entrySet())
+          {
+            oprot.writeString(_iter31.getKey());
+            oprot.writeString(_iter31.getValue());
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(12);
+      if (incoming.get(0)) {
+        struct.replicaId = iprot.readString();
+        struct.setReplicaIdIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.productId = iprot.readString();
+        struct.setProductIdIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.replicaName = iprot.readString();
+        struct.setReplicaNameIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.replicaDescription = iprot.readString();
+        struct.setReplicaDescriptionIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.creationTime = iprot.readI64();
+        struct.setCreationTimeIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.lastModifiedTime = iprot.readI64();
+        struct.setLastModifiedTimeIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.validUntilTime = iprot.readI64();
+        struct.setValidUntilTimeIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.replicaLocationCategory = org.apache.airavata.model.data.product.ReplicaLocationCategory.findByValue(iprot.readI32());
+        struct.setReplicaLocationCategoryIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.replicaPersistentType = org.apache.airavata.model.data.product.ReplicaPersistentType.findByValue(iprot.readI32());
+        struct.setReplicaPersistentTypeIsSet(true);
+      }
+      if (incoming.get(9)) {
+        struct.storageResourceId = iprot.readString();
+        struct.setStorageResourceIdIsSet(true);
+      }
+      if (incoming.get(10)) {
+        struct.filePath = iprot.readString();
+        struct.setFileAbsolutePathIsSet(true);
+      }
+      if (incoming.get(11)) {
+        {
+          org.apache.thrift.protocol.TMap _map32 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.replicaMetadata = new HashMap<String,String>(2*_map32.size);
+          String _key33;
+          String _val34;
+          for (int _i35 = 0; _i35 < _map32.size; ++_i35)
+          {
+            _key33 = iprot.readString();
+            _val34 = iprot.readString();
+            struct.replicaMetadata.put(_key33, _val34);
+          }
+        }
+        struct.setReplicaMetadataIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/a963d3f0/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaLocationCategory.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaLocationCategory.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaLocationCategory.java
new file mode 100644
index 0000000..9985c80
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaLocationCategory.java
@@ -0,0 +1,68 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.product;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum ReplicaLocationCategory implements org.apache.thrift.TEnum {
+  GATEWAY_DATA_STORE(0),
+  COMPUTE_RESOURCE(1),
+  LONG_TERM_STORAGE_RESOURCE(2),
+  OTHER(3);
+
+  private final int value;
+
+  private ReplicaLocationCategory(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 ReplicaLocationCategory findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return GATEWAY_DATA_STORE;
+      case 1:
+        return COMPUTE_RESOURCE;
+      case 2:
+        return LONG_TERM_STORAGE_RESOURCE;
+      case 3:
+        return OTHER;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a963d3f0/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaPersistentType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaPersistentType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaPersistentType.java
new file mode 100644
index 0000000..22df336
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/product/ReplicaPersistentType.java
@@ -0,0 +1,62 @@
+/**
+ * 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.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.data.product;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum ReplicaPersistentType implements org.apache.thrift.TEnum {
+  TRANSIENT(0),
+  PERSISTENT(1);
+
+  private final int value;
+
+  private ReplicaPersistentType(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 ReplicaPersistentType findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return TRANSIENT;
+      case 1:
+        return PERSISTENT;
+      default:
+        return null;
+    }
+  }
+}