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 java.util.ArrayList;
011import java.util.Arrays;
012import java.util.List;
013
014/**
015 * The {@code <svc:EmergencyCallData.ServiceInfo>} element.
016 */
017public class ServiceInfo extends AbstractDataProviderReferencing {
018
019    private String serviceEnvironment;                      // mandatory
020    private List<String> serviceTypes = new ArrayList<>();  // mandatory (one or more)
021    private String serviceMobility;                         // mandatory
022
023    public ServiceInfo() {
024    }
025
026    public ServiceInfo(String dataProviderReference, String serviceMobility, String... serviceTypes) {
027        super(dataProviderReference);
028        this.setServiceMobility(serviceMobility);
029        this.serviceTypes.addAll(Arrays.asList(serviceTypes));
030    }
031
032    public String getServiceEnvironment() {
033        return this.serviceEnvironment;
034    }
035    public void setServiceEnvironment(String serviceEnvironment) {
036        this.serviceEnvironment = serviceEnvironment;
037    }
038
039    public List<String> getServiceTypes() {
040        return this.serviceTypes;
041    }
042    public void setServiceTypes(List<String> serviceTypes) {
043        this.serviceTypes = serviceTypes;
044    }
045
046    public String getServiceMobility() {
047        return this.serviceMobility;
048    }
049    public void setServiceMobility(String serviceMobility) {
050        this.serviceMobility = serviceMobility;
051    }
052
053// Cloneable
054
055    @Override
056    public ServiceInfo clone() {
057        final ServiceInfo clone = (ServiceInfo)super.clone();
058        clone.serviceTypes = this.serviceTypes != null ? new ArrayList<>(this.serviceTypes) : null;
059        return clone;
060    }
061}
062