org.apache.airavata.model.data.replica.DataReplicaLocationModel.java Source code

Java tutorial

Introduction

Here is the source code for org.apache.airavata.model.data.replica.DataReplicaLocationModel.java

Source

/**
 * 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;

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)")
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_URI_FIELD_DESC = new org.apache.thrift.protocol.TField(
            "productUri", 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_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 productUri; // 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_URI((short) 2, "productUri"), 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_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_URI
                return PRODUCT_URI;
            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_PATH
                return FILE_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_URI, _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_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_URI, new org.apache.thrift.meta_data.FieldMetaData("productUri",
                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_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.isSetProductUri()) {
            this.productUri = other.productUri;
        }
        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.isSetFilePath()) {
            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.productUri = 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 getProductUri() {
        return this.productUri;
    }

    public void setProductUri(String productUri) {
        this.productUri = productUri;
    }

    public void unsetProductUri() {
        this.productUri = null;
    }

    /** Returns true if field productUri is set (has been assigned a value) and false otherwise */
    public boolean isSetProductUri() {
        return this.productUri != null;
    }

    public void setProductUriIsSet(boolean value) {
        if (!value) {
            this.productUri = 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 unsetFilePath() {
        this.filePath = null;
    }

    /** Returns true if field filePath is set (has been assigned a value) and false otherwise */
    public boolean isSetFilePath() {
        return this.filePath != null;
    }

    public void setFilePathIsSet(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_URI:
            if (value == null) {
                unsetProductUri();
            } else {
                setProductUri((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_PATH:
            if (value == null) {
                unsetFilePath();
            } 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_URI:
            return getProductUri();

        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_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_URI:
            return isSetProductUri();
        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_PATH:
            return isSetFilePath();
        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_productUri = true && this.isSetProductUri();
        boolean that_present_productUri = true && that.isSetProductUri();
        if (this_present_productUri || that_present_productUri) {
            if (!(this_present_productUri && that_present_productUri))
                return false;
            if (!this.productUri.equals(that.productUri))
                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_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_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_productUri = true && (isSetProductUri());
        list.add(present_productUri);
        if (present_productUri)
            list.add(productUri);

        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_filePath = true && (isSetFilePath());
        list.add(present_filePath);
        if (present_filePath)
            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(isSetProductUri()).compareTo(other.isSetProductUri());
        if (lastComparison != 0) {
            return lastComparison;
        }
        if (isSetProductUri()) {
            lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.productUri, other.productUri);
            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(isSetFilePath()).compareTo(other.isSetFilePath());
        if (lastComparison != 0) {
            return lastComparison;
        }
        if (isSetFilePath()) {
            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 (isSetProductUri()) {
            if (!first)
                sb.append(", ");
            sb.append("productUri:");
            if (this.productUri == null) {
                sb.append("null");
            } else {
                sb.append(this.productUri);
            }
            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 (isSetFilePath()) {
            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_URI
                    if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                        struct.productUri = iprot.readString();
                        struct.setProductUriIsSet(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.replica.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.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_PATH
                    if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                        struct.filePath = iprot.readString();
                        struct.setFilePathIsSet(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 _map18 = iprot.readMapBegin();
                            struct.replicaMetadata = new HashMap<String, String>(2 * _map18.size);
                            String _key19;
                            String _val20;
                            for (int _i21 = 0; _i21 < _map18.size; ++_i21) {
                                _key19 = iprot.readString();
                                _val20 = iprot.readString();
                                struct.replicaMetadata.put(_key19, _val20);
                            }
                            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.productUri != null) {
                if (struct.isSetProductUri()) {
                    oprot.writeFieldBegin(PRODUCT_URI_FIELD_DESC);
                    oprot.writeString(struct.productUri);
                    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.isSetFilePath()) {
                    oprot.writeFieldBegin(FILE_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> _iter22 : struct.replicaMetadata.entrySet()) {
                            oprot.writeString(_iter22.getKey());
                            oprot.writeString(_iter22.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.isSetProductUri()) {
                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.isSetFilePath()) {
                optionals.set(10);
            }
            if (struct.isSetReplicaMetadata()) {
                optionals.set(11);
            }
            oprot.writeBitSet(optionals, 12);
            if (struct.isSetReplicaId()) {
                oprot.writeString(struct.replicaId);
            }
            if (struct.isSetProductUri()) {
                oprot.writeString(struct.productUri);
            }
            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.isSetFilePath()) {
                oprot.writeString(struct.filePath);
            }
            if (struct.isSetReplicaMetadata()) {
                {
                    oprot.writeI32(struct.replicaMetadata.size());
                    for (Map.Entry<String, String> _iter23 : struct.replicaMetadata.entrySet()) {
                        oprot.writeString(_iter23.getKey());
                        oprot.writeString(_iter23.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.productUri = iprot.readString();
                struct.setProductUriIsSet(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.replica.ReplicaLocationCategory
                        .findByValue(iprot.readI32());
                struct.setReplicaLocationCategoryIsSet(true);
            }
            if (incoming.get(8)) {
                struct.replicaPersistentType = org.apache.airavata.model.data.replica.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.setFilePathIsSet(true);
            }
            if (incoming.get(11)) {
                {
                    org.apache.thrift.protocol.TMap _map24 = 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 * _map24.size);
                    String _key25;
                    String _val26;
                    for (int _i27 = 0; _i27 < _map24.size; ++_i27) {
                        _key25 = iprot.readString();
                        _val26 = iprot.readString();
                        struct.replicaMetadata.put(_key25, _val26);
                    }
                }
                struct.setReplicaMetadataIsSet(true);
            }
        }
    }

}