001
002/*
003 * Copyright (C) 2010 Archie L. Cobbs. All rights reserved.
004 *
005 * $Id$
006 */
007
008package org.dellroad.jibxbindings.pidf.lo;
009
010import java.util.ArrayList;
011import java.util.List;
012
013import org.dellroad.jibxbindings.pidf.lo.ecd.EmergencyCallDataReference;
014import org.dellroad.jibxbindings.pidf.lo.ecd.EmergencyCallDataValue;
015
016/**
017 * The {@code <gp:provided-by>} element as defined in RFC 4119.
018 */
019public class ProvidedBy implements Cloneable {
020
021    private String dataProviderReference;
022    private List<EmergencyCallDataReference> references = new ArrayList<>();
023    private List<EmergencyCallDataValue> values = new ArrayList<>();
024
025    public String getDataProviderReference() {
026        return this.dataProviderReference;
027    }
028    public void setDataProviderReference(String dataProviderReference) {
029        this.dataProviderReference = dataProviderReference;
030    }
031
032    public List<EmergencyCallDataReference> getReferences() {
033        return this.references;
034    }
035    public void setReferences(List<EmergencyCallDataReference> references) {
036        this.references = references;
037    }
038
039    public List<EmergencyCallDataValue> getValues() {
040        return this.values;
041    }
042    public void setValues(List<EmergencyCallDataValue> values) {
043        this.values = values;
044    }
045
046// Cloneable
047
048    @Override
049    public ProvidedBy clone() {
050        final ProvidedBy clone;
051        try {
052            clone = (ProvidedBy)super.clone();
053        } catch (CloneNotSupportedException e) {
054            throw new RuntimeException(e);
055        }
056        if (this.references != null) {
057            clone.references = new ArrayList<>(this.references.size());
058            for (EmergencyCallDataReference reference : this.references)
059                clone.references.add(reference.clone());
060        }
061        if (this.values != null) {
062            clone.values = new ArrayList<>(this.values.size());
063            for (EmergencyCallDataValue value : this.values)
064                clone.values.add(value.clone());
065        }
066        return clone;
067    }
068}
069