All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ccsds.moims.mo.mal.helpertools.connections.ConfigurationConsumer Maven / Gradle / Ivy

/* ----------------------------------------------------------------------------
 * Copyright (C) 2021      European Space Agency
 *                         European Space Operations Centre
 *                         Darmstadt
 *                         Germany
 * ----------------------------------------------------------------------------
 * System                : CCSDS MO MAL Java API
 * ----------------------------------------------------------------------------
 * Licensed under the European Space Agency Public License, Version 2.0
 * You may not use this file except in compliance with the License.
 *
 * Except as expressly set forth in this License, the Software is provided to
 * You on an "as is" basis and without warranties of any kind, including without
 * limitation merchantability, fitness for a particular purpose, absence of
 * defects or errors, accuracy or non-infringement of intellectual property rights.
 * 
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 * ----------------------------------------------------------------------------
 */
package org.ccsds.moims.mo.mal.helpertools.connections;

import org.ccsds.moims.mo.mal.helpertools.helpers.HelperMisc;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.ccsds.moims.mo.mal.structures.Identifier;
import org.ccsds.moims.mo.mal.structures.SessionType;

/**
 * Holds the configurations for a Consumer.
 */
public class ConfigurationConsumer {

    private final Identifier network;
    private final SessionType session;
    private final Identifier sessionName;

    /**
     * @return Network zone
     */
    public Identifier getNetwork() {
        return this.network;
    }

    /**
     * @return Session Type
     */
    public SessionType getSession() {
        return this.session;
    }

    /**
     * @return Session name
     */
    public Identifier getSessionName() {
        return this.sessionName;
    }

    /**
     * Initializes the class with the values made available in the PROPERTIES.
     * This includes the generation of the domain from the properties:
     * ORGANIZATION_NAME, MISSION_NAME, MO_APP_NAME
     *
     * It also generates the network zone field from the properties:
     * ORGANIZATION_NAME, MISSION_NAME, NETWORK_ZONE, DEVICE_NAME
     *
     * Additionally, it sets the session to SessionType.LIVE and sets the
     * session name as LIVE.
     */
    public ConfigurationConsumer() {
        if (System.getProperty(HelperMisc.PROP_ORGANIZATION_NAME) == null) {
            try {
                // The property does not exist?
                HelperMisc.loadConsumerProperties(); // try to load the properties from the file...
            } catch (IOException ex) {
                Logger.getLogger(ConfigurationConsumer.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        // ------------------------Network----------------------------
        String networkString = "";
        if (System.getProperty(HelperMisc.PROP_NETWORK) != null) {
            networkString = System.getProperty(HelperMisc.PROP_NETWORK);
        } else {
            if (System.getProperty(HelperMisc.PROP_ORGANIZATION_NAME) != null) {
                networkString = networkString.concat(System.getProperty(HelperMisc.PROP_ORGANIZATION_NAME));
            } else {
                networkString += "OrganizationName";
            }

            networkString += ".";

            if (System.getProperty(HelperMisc.PROP_MISSION_NAME) != null) {
                networkString = networkString.concat(System.getProperty(HelperMisc.PROP_MISSION_NAME));
            } else {
                networkString += "MissionName";
            }

            networkString += ".";

            if (System.getProperty(HelperMisc.PROP_NETWORK_ZONE) != null) {
                networkString = networkString.concat(System.getProperty(HelperMisc.PROP_NETWORK_ZONE));
            } else {
                networkString += "NetworkZone";
            }

            networkString += ".";

            if (System.getProperty(HelperMisc.PROP_DEVICE_NAME) != null) {
                networkString = networkString.concat(System.getProperty(HelperMisc.PROP_DEVICE_NAME));
            } else {
                networkString += "DeviceName";
            }
        }

        this.network = new Identifier(networkString);
        this.session = SessionType.LIVE;
        this.sessionName = HelperMisc.SESSION_NAME; // Default it to "LIVE"
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy