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/01/12 23:04:49 UTC

[38/50] [abbrv] airavata git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/airavata into data-manager

http://git-wip-us.apache.org/repos/asf/airavata/blob/4fb928e1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileReplicaModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileReplicaModel.java
index 10309a4,0000000..08cd070
mode 100644,000000..100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileReplicaModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/FileReplicaModel.java
@@@ -1,1272 -1,0 +1,1635 @@@
 +/**
 + * 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.replica;
++package org.apache.airavata.model.data.resource;
 +
 +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.3)", date = "2016-01-12")
- public class FileReplicaModel implements org.apache.thrift.TBase<FileReplicaModel, FileReplicaModel._Fields>, java.io.Serializable, Cloneable, Comparable<FileReplicaModel> {
-   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("FileReplicaModel");
- 
-   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)1);
-   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)2);
-   private static final org.apache.thrift.protocol.TField STORAGE_HOSTNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("storageHostname", org.apache.thrift.protocol.TType.STRING, (short)3);
-   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)4);
-   private static final org.apache.thrift.protocol.TField FILE_PATH_FIELD_DESC = new org.apache.thrift.protocol.TField("filePath", org.apache.thrift.protocol.TType.STRING, (short)5);
-   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)6);
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-01-06")
++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 RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceId", 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 STORAGE_RESOURCE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceType", org.apache.thrift.protocol.TType.I32, (short)8);
++  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("fileAbsolutePath", 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 FileReplicaModelStandardSchemeFactory());
-     schemes.put(TupleScheme.class, new FileReplicaModelTupleSchemeFactory());
++    schemes.put(StandardScheme.class, new DataReplicaLocationModelStandardSchemeFactory());
++    schemes.put(TupleScheme.class, new DataReplicaLocationModelTupleSchemeFactory());
 +  }
 +
++  private String replicaId; // optional
++  private String resourceId; // optional
 +  private String replicaName; // optional
 +  private String replicaDescription; // optional
-   private String storageHostname; // optional
-   private String storageResourceId; // optional
-   private String filePath; // optional
 +  private long creationTime; // optional
++  private long lastModifiedTime; // optional
 +  private long validUntilTime; // optional
-   private StorageResourceType storageResourceType; // optional
++  private ReplicaLocationCategory replicaLocationCategory; // optional
 +  private ReplicaPersistentType replicaPersistentType; // optional
++  private String storageResourceId; // optional
++  private String fileAbsolutePath; // 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_NAME((short)1, "replicaName"),
-     REPLICA_DESCRIPTION((short)2, "replicaDescription"),
-     STORAGE_HOSTNAME((short)3, "storageHostname"),
-     STORAGE_RESOURCE_ID((short)4, "storageResourceId"),
-     FILE_PATH((short)5, "filePath"),
-     CREATION_TIME((short)6, "creationTime"),
++    REPLICA_ID((short)1, "replicaId"),
++    RESOURCE_ID((short)2, "resourceId"),
++    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 StorageResourceType
++     * @see ReplicaLocationCategory
 +     */
-     STORAGE_RESOURCE_TYPE((short)8, "storageResourceType"),
++    REPLICA_LOCATION_CATEGORY((short)8, "replicaLocationCategory"),
 +    /**
 +     * 
 +     * @see ReplicaPersistentType
 +     */
-     REPLICA_PERSISTENT_TYPE((short)9, "replicaPersistentType");
++    REPLICA_PERSISTENT_TYPE((short)9, "replicaPersistentType"),
++    STORAGE_RESOURCE_ID((short)10, "storageResourceId"),
++    FILE_ABSOLUTE_PATH((short)11, "fileAbsolutePath"),
++    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_NAME
++        case 1: // REPLICA_ID
++          return REPLICA_ID;
++        case 2: // RESOURCE_ID
++          return RESOURCE_ID;
++        case 3: // REPLICA_NAME
 +          return REPLICA_NAME;
-         case 2: // REPLICA_DESCRIPTION
++        case 4: // REPLICA_DESCRIPTION
 +          return REPLICA_DESCRIPTION;
-         case 3: // STORAGE_HOSTNAME
-           return STORAGE_HOSTNAME;
-         case 4: // STORAGE_RESOURCE_ID
-           return STORAGE_RESOURCE_ID;
-         case 5: // FILE_PATH
-           return FILE_PATH;
-         case 6: // CREATION_TIME
++        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: // STORAGE_RESOURCE_TYPE
-           return STORAGE_RESOURCE_TYPE;
++        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 __VALIDUNTILTIME_ISSET_ID = 1;
++  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_NAME,_Fields.REPLICA_DESCRIPTION,_Fields.STORAGE_HOSTNAME,_Fields.STORAGE_RESOURCE_ID,_Fields.FILE_PATH,_Fields.CREATION_TIME,_Fields.VALID_UNTIL_TIME,_Fields.STORAGE_RESOURCE_TYPE,_Fields.REPLICA_PERSISTENT_TYPE};
++  private static final _Fields optionals[] = {_Fields.REPLICA_ID,_Fields.RESOURCE_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_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, 
++    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.STORAGE_HOSTNAME, new org.apache.thrift.meta_data.FieldMetaData("storageHostname", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
++    tmpMap.put(_Fields.RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("resourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-     tmpMap.put(_Fields.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
++    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.FILE_PATH, new org.apache.thrift.meta_data.FieldMetaData("filePath", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
++    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.STORAGE_RESOURCE_TYPE, new org.apache.thrift.meta_data.FieldMetaData("storageResourceType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, StorageResourceType.class)));
++    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("fileAbsolutePath", 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(FileReplicaModel.class, metaDataMap);
++    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataReplicaLocationModel.class, metaDataMap);
 +  }
 +
-   public FileReplicaModel() {
++  public DataReplicaLocationModel() {
 +  }
 +
 +  /**
 +   * Performs a deep copy on <i>other</i>.
 +   */
-   public FileReplicaModel(FileReplicaModel other) {
++  public DataReplicaLocationModel(DataReplicaLocationModel other) {
 +    __isset_bitfield = other.__isset_bitfield;
++    if (other.isSetReplicaId()) {
++      this.replicaId = other.replicaId;
++    }
++    if (other.isSetResourceId()) {
++      this.resourceId = other.resourceId;
++    }
 +    if (other.isSetReplicaName()) {
 +      this.replicaName = other.replicaName;
 +    }
 +    if (other.isSetReplicaDescription()) {
 +      this.replicaDescription = other.replicaDescription;
 +    }
-     if (other.isSetStorageHostname()) {
-       this.storageHostname = other.storageHostname;
-     }
-     if (other.isSetStorageResourceId()) {
-       this.storageResourceId = other.storageResourceId;
-     }
-     if (other.isSetFilePath()) {
-       this.filePath = other.filePath;
-     }
 +    this.creationTime = other.creationTime;
++    this.lastModifiedTime = other.lastModifiedTime;
 +    this.validUntilTime = other.validUntilTime;
-     if (other.isSetStorageResourceType()) {
-       this.storageResourceType = other.storageResourceType;
++    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.fileAbsolutePath = other.fileAbsolutePath;
++    }
++    if (other.isSetReplicaMetadata()) {
++      Map<String,String> __this__replicaMetadata = new HashMap<String,String>(other.replicaMetadata);
++      this.replicaMetadata = __this__replicaMetadata;
++    }
 +  }
 +
-   public FileReplicaModel deepCopy() {
-     return new FileReplicaModel(this);
++  public DataReplicaLocationModel deepCopy() {
++    return new DataReplicaLocationModel(this);
 +  }
 +
 +  @Override
 +  public void clear() {
++    this.replicaId = null;
++    this.resourceId = null;
 +    this.replicaName = null;
 +    this.replicaDescription = null;
-     this.storageHostname = null;
-     this.storageResourceId = null;
-     this.filePath = null;
 +    setCreationTimeIsSet(false);
 +    this.creationTime = 0;
++    setLastModifiedTimeIsSet(false);
++    this.lastModifiedTime = 0;
 +    setValidUntilTimeIsSet(false);
 +    this.validUntilTime = 0;
-     this.storageResourceType = null;
++    this.replicaLocationCategory = null;
 +    this.replicaPersistentType = null;
++    this.storageResourceId = null;
++    this.fileAbsolutePath = null;
++    this.replicaMetadata = null;
 +  }
 +
-   public String getReplicaName() {
-     return this.replicaName;
++  public String getReplicaId() {
++    return this.replicaId;
 +  }
 +
-   public void setReplicaName(String replicaName) {
-     this.replicaName = replicaName;
++  public void setReplicaId(String replicaId) {
++    this.replicaId = replicaId;
 +  }
 +
-   public void unsetReplicaName() {
-     this.replicaName = null;
++  public void unsetReplicaId() {
++    this.replicaId = null;
 +  }
 +
-   /** Returns true if field replicaName is set (has been assigned a value) and false otherwise */
-   public boolean isSetReplicaName() {
-     return this.replicaName != 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 setReplicaNameIsSet(boolean value) {
++  public void setReplicaIdIsSet(boolean value) {
 +    if (!value) {
-       this.replicaName = null;
++      this.replicaId = null;
 +    }
 +  }
 +
-   public String getReplicaDescription() {
-     return this.replicaDescription;
++  public String getResourceId() {
++    return this.resourceId;
 +  }
 +
-   public void setReplicaDescription(String replicaDescription) {
-     this.replicaDescription = replicaDescription;
++  public void setResourceId(String resourceId) {
++    this.resourceId = resourceId;
 +  }
 +
-   public void unsetReplicaDescription() {
-     this.replicaDescription = null;
++  public void unsetResourceId() {
++    this.resourceId = null;
 +  }
 +
-   /** Returns true if field replicaDescription is set (has been assigned a value) and false otherwise */
-   public boolean isSetReplicaDescription() {
-     return this.replicaDescription != null;
++  /** Returns true if field resourceId is set (has been assigned a value) and false otherwise */
++  public boolean isSetResourceId() {
++    return this.resourceId != null;
 +  }
 +
-   public void setReplicaDescriptionIsSet(boolean value) {
++  public void setResourceIdIsSet(boolean value) {
 +    if (!value) {
-       this.replicaDescription = null;
++      this.resourceId = null;
 +    }
 +  }
 +
-   public String getStorageHostname() {
-     return this.storageHostname;
-   }
- 
-   public void setStorageHostname(String storageHostname) {
-     this.storageHostname = storageHostname;
-   }
- 
-   public void unsetStorageHostname() {
-     this.storageHostname = null;
-   }
- 
-   /** Returns true if field storageHostname is set (has been assigned a value) and false otherwise */
-   public boolean isSetStorageHostname() {
-     return this.storageHostname != null;
-   }
- 
-   public void setStorageHostnameIsSet(boolean value) {
-     if (!value) {
-       this.storageHostname = null;
-     }
-   }
- 
-   public String getStorageResourceId() {
-     return this.storageResourceId;
++  public String getReplicaName() {
++    return this.replicaName;
 +  }
 +
-   public void setStorageResourceId(String storageResourceId) {
-     this.storageResourceId = storageResourceId;
++  public void setReplicaName(String replicaName) {
++    this.replicaName = replicaName;
 +  }
 +
-   public void unsetStorageResourceId() {
-     this.storageResourceId = null;
++  public void unsetReplicaName() {
++    this.replicaName = null;
 +  }
 +
-   /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
-   public boolean isSetStorageResourceId() {
-     return this.storageResourceId != 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 setStorageResourceIdIsSet(boolean value) {
++  public void setReplicaNameIsSet(boolean value) {
 +    if (!value) {
-       this.storageResourceId = null;
++      this.replicaName = null;
 +    }
 +  }
 +
-   public String getFilePath() {
-     return this.filePath;
++  public String getReplicaDescription() {
++    return this.replicaDescription;
 +  }
 +
-   public void setFilePath(String filePath) {
-     this.filePath = filePath;
++  public void setReplicaDescription(String replicaDescription) {
++    this.replicaDescription = replicaDescription;
 +  }
 +
-   public void unsetFilePath() {
-     this.filePath = null;
++  public void unsetReplicaDescription() {
++    this.replicaDescription = null;
 +  }
 +
-   /** Returns true if field filePath is set (has been assigned a value) and false otherwise */
-   public boolean isSetFilePath() {
-     return this.filePath != 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 setFilePathIsSet(boolean value) {
++  public void setReplicaDescriptionIsSet(boolean value) {
 +    if (!value) {
-       this.filePath = null;
++      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 StorageResourceType
++   * @see ReplicaLocationCategory
 +   */
-   public StorageResourceType getStorageResourceType() {
-     return this.storageResourceType;
++  public ReplicaLocationCategory getReplicaLocationCategory() {
++    return this.replicaLocationCategory;
 +  }
 +
 +  /**
 +   * 
-    * @see StorageResourceType
++   * @see ReplicaLocationCategory
 +   */
-   public void setStorageResourceType(StorageResourceType storageResourceType) {
-     this.storageResourceType = storageResourceType;
++  public void setReplicaLocationCategory(ReplicaLocationCategory replicaLocationCategory) {
++    this.replicaLocationCategory = replicaLocationCategory;
 +  }
 +
-   public void unsetStorageResourceType() {
-     this.storageResourceType = null;
++  public void unsetReplicaLocationCategory() {
++    this.replicaLocationCategory = null;
 +  }
 +
-   /** Returns true if field storageResourceType is set (has been assigned a value) and false otherwise */
-   public boolean isSetStorageResourceType() {
-     return this.storageResourceType != 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 setStorageResourceTypeIsSet(boolean value) {
++  public void setReplicaLocationCategoryIsSet(boolean value) {
 +    if (!value) {
-       this.storageResourceType = null;
++      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 getFileAbsolutePath() {
++    return this.fileAbsolutePath;
++  }
++
++  public void setFileAbsolutePath(String fileAbsolutePath) {
++    this.fileAbsolutePath = fileAbsolutePath;
++  }
++
++  public void unsetFileAbsolutePath() {
++    this.fileAbsolutePath = null;
++  }
++
++  /** Returns true if field fileAbsolutePath is set (has been assigned a value) and false otherwise */
++  public boolean isSetFileAbsolutePath() {
++    return this.fileAbsolutePath != null;
++  }
++
++  public void setFileAbsolutePathIsSet(boolean value) {
++    if (!value) {
++      this.fileAbsolutePath = 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_NAME:
++    case REPLICA_ID:
 +      if (value == null) {
-         unsetReplicaName();
++        unsetReplicaId();
 +      } else {
-         setReplicaName((String)value);
++        setReplicaId((String)value);
 +      }
 +      break;
 +
-     case REPLICA_DESCRIPTION:
++    case RESOURCE_ID:
 +      if (value == null) {
-         unsetReplicaDescription();
++        unsetResourceId();
 +      } else {
-         setReplicaDescription((String)value);
++        setResourceId((String)value);
 +      }
 +      break;
 +
-     case STORAGE_HOSTNAME:
++    case REPLICA_NAME:
 +      if (value == null) {
-         unsetStorageHostname();
++        unsetReplicaName();
 +      } else {
-         setStorageHostname((String)value);
++        setReplicaName((String)value);
 +      }
 +      break;
 +
-     case STORAGE_RESOURCE_ID:
++    case REPLICA_DESCRIPTION:
 +      if (value == null) {
-         unsetStorageResourceId();
++        unsetReplicaDescription();
 +      } else {
-         setStorageResourceId((String)value);
++        setReplicaDescription((String)value);
 +      }
 +      break;
 +
-     case FILE_PATH:
++    case CREATION_TIME:
 +      if (value == null) {
-         unsetFilePath();
++        unsetCreationTime();
 +      } else {
-         setFilePath((String)value);
++        setCreationTime((Long)value);
 +      }
 +      break;
 +
-     case CREATION_TIME:
++    case LAST_MODIFIED_TIME:
 +      if (value == null) {
-         unsetCreationTime();
++        unsetLastModifiedTime();
 +      } else {
-         setCreationTime((Long)value);
++        setLastModifiedTime((Long)value);
 +      }
 +      break;
 +
 +    case VALID_UNTIL_TIME:
 +      if (value == null) {
 +        unsetValidUntilTime();
 +      } else {
 +        setValidUntilTime((Long)value);
 +      }
 +      break;
 +
-     case STORAGE_RESOURCE_TYPE:
++    case REPLICA_LOCATION_CATEGORY:
 +      if (value == null) {
-         unsetStorageResourceType();
++        unsetReplicaLocationCategory();
 +      } else {
-         setStorageResourceType((StorageResourceType)value);
++        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 {
++        setFileAbsolutePath((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 RESOURCE_ID:
++      return getResourceId();
++
 +    case REPLICA_NAME:
 +      return getReplicaName();
 +
 +    case REPLICA_DESCRIPTION:
 +      return getReplicaDescription();
 +
-     case STORAGE_HOSTNAME:
-       return getStorageHostname();
- 
-     case STORAGE_RESOURCE_ID:
-       return getStorageResourceId();
- 
-     case FILE_PATH:
-       return getFilePath();
- 
 +    case CREATION_TIME:
 +      return getCreationTime();
 +
++    case LAST_MODIFIED_TIME:
++      return getLastModifiedTime();
++
 +    case VALID_UNTIL_TIME:
 +      return getValidUntilTime();
 +
-     case STORAGE_RESOURCE_TYPE:
-       return getStorageResourceType();
++    case REPLICA_LOCATION_CATEGORY:
++      return getReplicaLocationCategory();
 +
 +    case REPLICA_PERSISTENT_TYPE:
 +      return getReplicaPersistentType();
 +
++    case STORAGE_RESOURCE_ID:
++      return getStorageResourceId();
++
++    case FILE_ABSOLUTE_PATH:
++      return getFileAbsolutePath();
++
++    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 RESOURCE_ID:
++      return isSetResourceId();
 +    case REPLICA_NAME:
 +      return isSetReplicaName();
 +    case REPLICA_DESCRIPTION:
 +      return isSetReplicaDescription();
-     case STORAGE_HOSTNAME:
-       return isSetStorageHostname();
-     case STORAGE_RESOURCE_ID:
-       return isSetStorageResourceId();
-     case FILE_PATH:
-       return isSetFilePath();
 +    case CREATION_TIME:
 +      return isSetCreationTime();
++    case LAST_MODIFIED_TIME:
++      return isSetLastModifiedTime();
 +    case VALID_UNTIL_TIME:
 +      return isSetValidUntilTime();
-     case STORAGE_RESOURCE_TYPE:
-       return isSetStorageResourceType();
++    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 FileReplicaModel)
-       return this.equals((FileReplicaModel)that);
++    if (that instanceof DataReplicaLocationModel)
++      return this.equals((DataReplicaLocationModel)that);
 +    return false;
 +  }
 +
-   public boolean equals(FileReplicaModel that) {
++  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_resourceId = true && this.isSetResourceId();
++    boolean that_present_resourceId = true && that.isSetResourceId();
++    if (this_present_resourceId || that_present_resourceId) {
++      if (!(this_present_resourceId && that_present_resourceId))
++        return false;
++      if (!this.resourceId.equals(that.resourceId))
++        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_storageHostname = true && this.isSetStorageHostname();
-     boolean that_present_storageHostname = true && that.isSetStorageHostname();
-     if (this_present_storageHostname || that_present_storageHostname) {
-       if (!(this_present_storageHostname && that_present_storageHostname))
-         return false;
-       if (!this.storageHostname.equals(that.storageHostname))
-         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_filePath = true && this.isSetFilePath();
-     boolean that_present_filePath = true && that.isSetFilePath();
-     if (this_present_filePath || that_present_filePath) {
-       if (!(this_present_filePath && that_present_filePath))
-         return false;
-       if (!this.filePath.equals(that.filePath))
-         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_storageResourceType = true && this.isSetStorageResourceType();
-     boolean that_present_storageResourceType = true && that.isSetStorageResourceType();
-     if (this_present_storageResourceType || that_present_storageResourceType) {
-       if (!(this_present_storageResourceType && that_present_storageResourceType))
++    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.storageResourceType.equals(that.storageResourceType))
++      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.fileAbsolutePath.equals(that.fileAbsolutePath))
++        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_resourceId = true && (isSetResourceId());
++    list.add(present_resourceId);
++    if (present_resourceId)
++      list.add(resourceId);
++
 +    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_storageHostname = true && (isSetStorageHostname());
-     list.add(present_storageHostname);
-     if (present_storageHostname)
-       list.add(storageHostname);
- 
-     boolean present_storageResourceId = true && (isSetStorageResourceId());
-     list.add(present_storageResourceId);
-     if (present_storageResourceId)
-       list.add(storageResourceId);
- 
-     boolean present_filePath = true && (isSetFilePath());
-     list.add(present_filePath);
-     if (present_filePath)
-       list.add(filePath);
- 
 +    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_storageResourceType = true && (isSetStorageResourceType());
-     list.add(present_storageResourceType);
-     if (present_storageResourceType)
-       list.add(storageResourceType.getValue());
++    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(fileAbsolutePath);
++
++    boolean present_replicaMetadata = true && (isSetReplicaMetadata());
++    list.add(present_replicaMetadata);
++    if (present_replicaMetadata)
++      list.add(replicaMetadata);
++
 +    return list.hashCode();
 +  }
 +
 +  @Override
-   public int compareTo(FileReplicaModel other) {
++  public int compareTo(DataReplicaLocationModel other) {
 +    if (!getClass().equals(other.getClass())) {
 +      return getClass().getName().compareTo(other.getClass().getName());
 +    }
 +
 +    int lastComparison = 0;
 +
-     lastComparison = Boolean.valueOf(isSetReplicaName()).compareTo(other.isSetReplicaName());
++    lastComparison = Boolean.valueOf(isSetReplicaId()).compareTo(other.isSetReplicaId());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
-     if (isSetReplicaName()) {
-       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaName, other.replicaName);
++    if (isSetReplicaId()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaId, other.replicaId);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
-     lastComparison = Boolean.valueOf(isSetReplicaDescription()).compareTo(other.isSetReplicaDescription());
++    lastComparison = Boolean.valueOf(isSetResourceId()).compareTo(other.isSetResourceId());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
-     if (isSetReplicaDescription()) {
-       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaDescription, other.replicaDescription);
++    if (isSetResourceId()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceId, other.resourceId);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
-     lastComparison = Boolean.valueOf(isSetStorageHostname()).compareTo(other.isSetStorageHostname());
++    lastComparison = Boolean.valueOf(isSetReplicaName()).compareTo(other.isSetReplicaName());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
-     if (isSetStorageHostname()) {
-       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageHostname, other.storageHostname);
++    if (isSetReplicaName()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaName, other.replicaName);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
-     lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
++    lastComparison = Boolean.valueOf(isSetReplicaDescription()).compareTo(other.isSetReplicaDescription());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
-     if (isSetStorageResourceId()) {
-       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
++    if (isSetReplicaDescription()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replicaDescription, other.replicaDescription);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
-     lastComparison = Boolean.valueOf(isSetFilePath()).compareTo(other.isSetFilePath());
++    lastComparison = Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
-     if (isSetFilePath()) {
-       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.filePath, other.filePath);
++    if (isSetCreationTime()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creationTime, other.creationTime);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
-     lastComparison = Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
++    lastComparison = Boolean.valueOf(isSetLastModifiedTime()).compareTo(other.isSetLastModifiedTime());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
-     if (isSetCreationTime()) {
-       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creationTime, other.creationTime);
++    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(isSetStorageResourceType()).compareTo(other.isSetStorageResourceType());
++    lastComparison = Boolean.valueOf(isSetReplicaLocationCategory()).compareTo(other.isSetReplicaLocationCategory());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
-     if (isSetStorageResourceType()) {
-       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceType, other.storageResourceType);
++    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.fileAbsolutePath, other.fileAbsolutePath);
++      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("FileReplicaModel(");
++    StringBuilder sb = new StringBuilder("DataReplicaLocationModel(");
 +    boolean first = true;
 +
-     if (isSetReplicaName()) {
-       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) {
++    if (isSetReplicaId()) {
++      sb.append("replicaId:");
++      if (this.replicaId == null) {
 +        sb.append("null");
 +      } else {
-         sb.append(this.replicaDescription);
++        sb.append(this.replicaId);
 +      }
 +      first = false;
 +    }
-     if (isSetStorageHostname()) {
++    if (isSetResourceId()) {
 +      if (!first) sb.append(", ");
-       sb.append("storageHostname:");
-       if (this.storageHostname == null) {
++      sb.append("resourceId:");
++      if (this.resourceId == null) {
 +        sb.append("null");
 +      } else {
-         sb.append(this.storageHostname);
++        sb.append(this.resourceId);
 +      }
 +      first = false;
 +    }
-     if (isSetStorageResourceId()) {
++    if (isSetReplicaName()) {
 +      if (!first) sb.append(", ");
-       sb.append("storageResourceId:");
-       if (this.storageResourceId == null) {
++      sb.append("replicaName:");
++      if (this.replicaName == null) {
 +        sb.append("null");
 +      } else {
-         sb.append(this.storageResourceId);
++        sb.append(this.replicaName);
 +      }
 +      first = false;
 +    }
-     if (isSetFilePath()) {
++    if (isSetReplicaDescription()) {
 +      if (!first) sb.append(", ");
-       sb.append("filePath:");
-       if (this.filePath == null) {
++      sb.append("replicaDescription:");
++      if (this.replicaDescription == null) {
 +        sb.append("null");
 +      } else {
-         sb.append(this.filePath);
++        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 (isSetStorageResourceType()) {
++    if (isSetReplicaLocationCategory()) {
 +      if (!first) sb.append(", ");
-       sb.append("storageResourceType:");
-       if (this.storageResourceType == null) {
++      sb.append("replicaLocationCategory:");
++      if (this.replicaLocationCategory == null) {
 +        sb.append("null");
 +      } else {
-         sb.append(this.storageResourceType);
++        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("fileAbsolutePath:");
++      if (this.fileAbsolutePath == null) {
++        sb.append("null");
++      } else {
++        sb.append(this.fileAbsolutePath);
++      }
++      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 FileReplicaModelStandardSchemeFactory implements SchemeFactory {
-     public FileReplicaModelStandardScheme getScheme() {
-       return new FileReplicaModelStandardScheme();
++  private static class DataReplicaLocationModelStandardSchemeFactory implements SchemeFactory {
++    public DataReplicaLocationModelStandardScheme getScheme() {
++      return new DataReplicaLocationModelStandardScheme();
 +    }
 +  }
 +
-   private static class FileReplicaModelStandardScheme extends StandardScheme<FileReplicaModel> {
++  private static class DataReplicaLocationModelStandardScheme extends StandardScheme<DataReplicaLocationModel> {
 +
-     public void read(org.apache.thrift.protocol.TProtocol iprot, FileReplicaModel struct) throws org.apache.thrift.TException {
++    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_NAME
++          case 1: // REPLICA_ID
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-               struct.replicaName = iprot.readString();
-               struct.setReplicaNameIsSet(true);
++              struct.replicaId = iprot.readString();
++              struct.setReplicaIdIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
-           case 2: // REPLICA_DESCRIPTION
++          case 2: // RESOURCE_ID
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-               struct.replicaDescription = iprot.readString();
-               struct.setReplicaDescriptionIsSet(true);
++              struct.resourceId = iprot.readString();
++              struct.setResourceIdIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
-           case 3: // STORAGE_HOSTNAME
++          case 3: // REPLICA_NAME
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-               struct.storageHostname = iprot.readString();
-               struct.setStorageHostnameIsSet(true);
++              struct.replicaName = iprot.readString();
++              struct.setReplicaNameIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
-           case 4: // STORAGE_RESOURCE_ID
++          case 4: // REPLICA_DESCRIPTION
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-               struct.storageResourceId = iprot.readString();
-               struct.setStorageResourceIdIsSet(true);
++              struct.replicaDescription = iprot.readString();
++              struct.setReplicaDescriptionIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
-           case 5: // FILE_PATH
-             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-               struct.filePath = iprot.readString();
-               struct.setFilePathIsSet(true);
++          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: // CREATION_TIME
++          case 6: // LAST_MODIFIED_TIME
 +            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-               struct.creationTime = iprot.readI64();
-               struct.setCreationTimeIsSet(true);
++              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: // STORAGE_RESOURCE_TYPE
++          case 8: // REPLICA_LOCATION_CATEGORY
 +            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-               struct.storageResourceType = org.apache.airavata.model.data.replica.StorageResourceType.findByValue(iprot.readI32());
-               struct.setStorageResourceTypeIsSet(true);
++              struct.replicaLocationCategory = org.apache.airavata.model.data.resource.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.replica.ReplicaPersistentType.findByValue(iprot.readI32());
++              struct.replicaPersistentType = org.apache.airavata.model.data.resource.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.fileAbsolutePath = 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, FileReplicaModel struct) throws org.apache.thrift.TException {
++    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.resourceId != null) {
++        if (struct.isSetResourceId()) {
++          oprot.writeFieldBegin(RESOURCE_ID_FIELD_DESC);
++          oprot.writeString(struct.resourceId);
++          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.storageHostname != null) {
-         if (struct.isSetStorageHostname()) {
-           oprot.writeFieldBegin(STORAGE_HOSTNAME_FIELD_DESC);
-           oprot.writeString(struct.storageHostname);
-           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.isSetFilePath()) {
-           oprot.writeFieldBegin(FILE_PATH_FIELD_DESC);
-           oprot.writeString(struct.filePath);
-           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.storageResourceType != null) {
-         if (struct.isSetStorageResourceType()) {
-           oprot.writeFieldBegin(STORAGE_RESOURCE_TYPE_FIELD_DESC);
-           oprot.writeI32(struct.storageResourceType.getValue());
++      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.fileAbsolutePath != null) {
++        if (struct.isSetFileAbsolutePath()) {
++          oprot.writeFieldBegin(FILE_ABSOLUTE_PATH_FIELD_DESC);
++          oprot.writeString(struct.fileAbsolutePath);
++          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 FileReplicaModelTupleSchemeFactory implements SchemeFactory {
-     public FileReplicaModelTupleScheme getScheme() {
-       return new FileReplicaModelTupleScheme();
++  private static class DataReplicaLocationModelTupleSchemeFactory implements SchemeFactory {
++    public DataReplicaLocationModelTupleScheme getScheme() {
++      return new DataReplicaLocationModelTupleScheme();
 +    }
 +  }
 +
-   private static class FileReplicaModelTupleScheme extends TupleScheme<FileReplicaModel> {
++  private static class DataReplicaLocationModelTupleScheme extends TupleScheme<DataReplicaLocationModel> {
 +
 +    @Override
-     public void write(org.apache.thrift.protocol.TProtocol prot, FileReplicaModel struct) throws org.apache.thrift.TException {
++    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.isSetReplicaName()) {
++      if (struct.isSetReplicaId()) {
 +        optionals.set(0);
 +      }
-       if (struct.isSetReplicaDescription()) {
++      if (struct.isSetResourceId()) {
 +        optionals.set(1);
 +      }
-       if (struct.isSetStorageHostname()) {
++      if (struct.isSetReplicaName()) {
 +        optionals.set(2);
 +      }
-       if (struct.isSetStorageResourceId()) {
++      if (struct.isSetReplicaDescription()) {
 +        optionals.set(3);
 +      }
-       if (struct.isSetFilePath()) {
++      if (struct.isSetCreationTime()) {
 +        optionals.set(4);
 +      }
-       if (struct.isSetCreationTime()) {
++      if (struct.isSetLastModifiedTime()) {
 +        optionals.set(5);
 +      }
 +      if (struct.isSetValidUntilTime()) {
 +        optionals.set(6);
 +      }
-       if (struct.isSetStorageResourceType()) {
++      if (struct.isSetReplicaLocationCategory()) {
 +        optionals.set(7);
 +      }
 +      if (struct.isSetReplicaPersistentType()) {
 +        optionals.set(8);
 +      }
-       oprot.writeBitSet(optionals, 9);
++      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.isSetResourceId()) {
++        oprot.writeString(struct.resourceId);
++      }
 +      if (struct.isSetReplicaName()) {
 +        oprot.writeString(struct.replicaName);
 +      }
 +      if (struct.isSetReplicaDescription()) {
 +        oprot.writeString(struct.replicaDescription);
 +      }
-       if (struct.isSetStorageHostname()) {
-         oprot.writeString(struct.storageHostname);
-       }
-       if (struct.isSetStorageResourceId()) {
-         oprot.writeString(struct.storageResourceId);
-       }
-       if (struct.isSetFilePath()) {
-         oprot.writeString(struct.filePath);
-       }
 +      if (struct.isSetCreationTime()) {
 +        oprot.writeI64(struct.creationTime);
 +      }
++      if (struct.isSetLastModifiedTime()) {
++        oprot.writeI64(struct.lastModifiedTime);
++      }
 +      if (struct.isSetValidUntilTime()) {
 +        oprot.writeI64(struct.validUntilTime);
 +      }
-       if (struct.isSetStorageResourceType()) {
-         oprot.writeI32(struct.storageResourceType.getValue());
++      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.fileAbsolutePath);
++      }
++      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, FileReplicaModel struct) throws org.apache.thrift.TException {
++    public void read(org.apache.thrift.protocol.TProtocol prot, DataReplicaLocationModel struct) throws org.apache.thrift.TException {
 +      TTupleProtocol iprot = (TTupleProtocol) prot;
-       BitSet incoming = iprot.readBitSet(9);
++      BitSet incoming = iprot.readBitSet(12);
 +      if (incoming.get(0)) {
-         struct.replicaName = iprot.readString();
-         struct.setReplicaNameIsSet(true);
++        struct.replicaId = iprot.readString();
++        struct.setReplicaIdIsSet(true);
 +      }
 +      if (incoming.get(1)) {
-         struct.replicaDescription = iprot.readString();
-         struct.setReplicaDescriptionIsSet(true);
++        struct.resourceId = iprot.readString();
++        struct.setResourceIdIsSet(true);
 +      }
 +      if (incoming.get(2)) {
-         struct.storageHostname = iprot.readString();
-         struct.setStorageHostnameIsSet(true);
++        struct.replicaName = iprot.readString();
++        struct.setReplicaNameIsSet(true);
 +      }
 +      if (incoming.get(3)) {
-         struct.storageResourceId = iprot.readString();
-         struct.setStorageResourceIdIsSet(true);
++        struct.replicaDescription = iprot.readString();
++        struct.setReplicaDescriptionIsSet(true);
 +      }
 +      if (incoming.get(4)) {
-         struct.filePath = iprot.readString();
-         struct.setFilePathIsSet(true);
-       }
-       if (incoming.get(5)) {
 +        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.storageResourceType = org.apache.airavata.model.data.replica.StorageResourceType.findByValue(iprot.readI32());
-         struct.setStorageResourceTypeIsSet(true);
++        struct.replicaLocationCategory = org.apache.airavata.model.data.resource.ReplicaLocationCategory.findByValue(iprot.readI32());
++        struct.setReplicaLocationCategoryIsSet(true);
 +      }
 +      if (incoming.get(8)) {
-         struct.replicaPersistentType = org.apache.airavata.model.data.replica.ReplicaPersistentType.findByValue(iprot.readI32());
++        struct.replicaPersistentType = org.apache.airavata.model.data.resource.ReplicaPersistentType.findByValue(iprot.readI32());
 +        struct.setReplicaPersistentTypeIsSet(true);
 +      }
++      if (incoming.get(9)) {
++        struct.storageResourceId = iprot.readString();
++        struct.setStorageResourceIdIsSet(true);
++      }
++      if (incoming.get(10)) {
++        struct.fileAbsolutePath = 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/4fb928e1/modules/gfac/gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServerHandler.java
----------------------------------------------------------------------