001
002/*
003 * Copyright (C) 2010 Archie L. Cobbs. All rights reserved.
004 *
005 * $Id$
006 */
007
008package org.dellroad.jibxbindings.pidf.lo.ecd;
009
010import org.dellroad.jibxbindings.vcard.VCardMarshaller;
011
012import ezvcard.VCard;
013
014/**
015 * The {@code <pi:EmergencyCallData.SubscriberInfo>} element.
016 */
017public class SubscriberInfo extends AbstractDataProviderReferencing {
018
019    private boolean privacyRequested;                       // mandatory
020    private VCard subscriberData;
021
022    public SubscriberInfo() {
023    }
024
025    public SubscriberInfo(String dataProviderReference, boolean privacyRequested, VCard subscriberData) {
026        super(dataProviderReference);
027        this.setPrivacyRequested(privacyRequested);
028        this.setSubscriberData(subscriberData);
029    }
030
031    public boolean isPrivacyRequested() {
032        return this.privacyRequested;
033    }
034    public void setPrivacyRequested(boolean privacyRequested) {
035        this.privacyRequested = privacyRequested;
036    }
037
038    public VCard getSubscriberData() {
039        return this.subscriberData;
040    }
041    public void setSubscriberData(VCard subscriberData) {
042        this.subscriberData = subscriberData;
043    }
044
045// JiBX
046
047    public boolean hasSubscriberData() {
048        return this.getSubscriberData() != null;
049    }
050
051// Cloneable
052
053    @Override
054    public SubscriberInfo clone() {
055        final SubscriberInfo clone = (SubscriberInfo)super.clone();
056        clone.subscriberData = this.subscriberData != null ? VCardMarshaller.clone(this.subscriberData) : null;
057        return clone;
058    }
059}
060