com.vangent.hieos.pixnotifierutil.config.CrossReferenceConsumerConfig.java Source code

Java tutorial

Introduction

Here is the source code for com.vangent.hieos.pixnotifierutil.config.CrossReferenceConsumerConfig.java

Source

/*
 * This code is subject to the HIEOS License, Version 1.0
 *
 * Copyright(c) 2013 Vangent, Inc.  All rights reserved.
 *
 * 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.
 */
package com.vangent.hieos.pixnotifierutil.config;

import com.vangent.hieos.pixnotifierutil.exception.PIXNotifierUtilException;
import com.vangent.hieos.subjectmodel.SubjectIdentifierDomain;
import com.vangent.hieos.xutil.xconfig.XConfigActor;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.configuration.HierarchicalConfiguration;

/**
 *
 * @author Bernie Thuman
 */
public class CrossReferenceConsumerConfig implements ConfigItem {

    private static String NAME = "name";
    private static String ENABLED = "enabled";
    private static String DEVICE_ID = "device-id";
    private static String DEVICE_NAME = "device-name";
    private static String IDENTIFIER_DOMAINS = "identifier-domains.identifier-domain";
    private static String UNIVERSAL_ID = "universal-id";
    private static String UNIVERSAL_ID_TYPE = "universal-id-type";
    private static String NAMESPACE_ID = "namespace-id";
    private String name;
    private boolean enabled;
    private String deviceId;
    private String deviceName;
    private List<SubjectIdentifierDomain> identifierDomains = new ArrayList<SubjectIdentifierDomain>();
    private XConfigActor hl7v3ConfigActor = null;
    private XConfigActor hl7v2ConfigActor = null;

    /**
     * 
     * @return
     */
    public String getName() {
        return name;
    }

    /**
     *
     * @return
     */
    public String getDeviceId() {
        return deviceId;
    }

    /**
     *
     * @return
     */
    public String getDeviceName() {
        return deviceName;
    }

    /**
     *
     * @return
     */
    public boolean isEnabled() {
        return enabled;
    }

    /**
     *
     * @return
     */
    public boolean isHL7v3NotificationEnabled() {
        return this.hl7v3ConfigActor != null;
    }

    /**
     *
     * @return
     */
    public boolean isHL7v2NotificationEnabled() {
        return this.hl7v2ConfigActor != null;
    }

    /**
     *
     * @return
     */
    public List<SubjectIdentifierDomain> getIdentifierDomains() {
        return identifierDomains;
    }

    /**
     * 
     * @return
     */
    public XConfigActor getHL7v3ConfigActor() {
        return hl7v3ConfigActor;
    }

    /**
     *
     * @return
     */
    public XConfigActor getHL7v2ConfigActor() {
        return hl7v2ConfigActor;
    }

    /**
     * 
     * @param hc
     * @param pixNotifierConfig
     * @throws PIXNotifierUtilException
     */
    @Override
    public void load(HierarchicalConfiguration hc, PIXNotifierConfig pixNotifierConfig)
            throws PIXNotifierUtilException {
        this.enabled = hc.getBoolean(ENABLED, Boolean.FALSE);
        this.name = hc.getString(NAME);
        this.deviceId = hc.getString(DEVICE_ID);
        this.deviceName = hc.getString(DEVICE_NAME);
        List idDomains = hc.configurationsAt(IDENTIFIER_DOMAINS);
        for (Iterator it = idDomains.iterator(); it.hasNext();) {
            HierarchicalConfiguration hcIdentifierDomain = (HierarchicalConfiguration) it.next();
            String universalId = hcIdentifierDomain.getString(UNIVERSAL_ID);
            String universalIdType = hcIdentifierDomain.getString(UNIVERSAL_ID_TYPE);
            String namespaceId = hcIdentifierDomain.getString(NAMESPACE_ID);
            SubjectIdentifierDomain identifierDomain = new SubjectIdentifierDomain();
            identifierDomain.setUniversalId(universalId);
            identifierDomain.setUniversalIdType(universalIdType);
            identifierDomain.setNamespaceId(namespaceId);
            this.identifierDomains.add(identifierDomain);
        }
        // Set XConfigActor given "deviceId".
        hl7v3ConfigActor = pixNotifierConfig.getHL7v3ConfigActor(this.deviceId);
        hl7v2ConfigActor = pixNotifierConfig.getHL7v2ConfigActor(this.deviceId);
    }
}