/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package de.cismet.cids.custom.switchon;
import org.apache.commons.lang.StringUtils;
import org.jdom.Element;
import de.cismet.cids.custom.switchon.gui.utils.CismapUtils;
import de.cismet.tools.PropertyReader;
import de.cismet.tools.configuration.Configurable;
import de.cismet.tools.configuration.ConfigurationManager;
import de.cismet.tools.configuration.NoWriteError;
/**
* DOCUMENT ME!
*
* @version $Revision$, $Date$
*/
public final class SwitchOnConstants implements Configurable {
//~ Static fields/initializers ---------------------------------------------
private static volatile SwitchOnConstants instance = null;
public static final String MLESSNUMBER =
"nmless=5061756C612030352E31322E32303035204A75737475732032352E30372E323030382054616E6A612030362E31302E31393734";
//
private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(SwitchOnConstants.class);
public static final String NEWLINE = "<br>";
public static final String LINK_SEPARATOR_TOKEN = "::";
//~ Instance fields --------------------------------------------------------
public final String SRS_GEOM;
public final String SRS_SERVICE;
public String MAP_CALL_STRING;
public final double GEO_BUFFER;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new AlkisConstants object.
*
* @throws RuntimeException DOCUMENT ME!
*/
private SwitchOnConstants() {
try {
final PropertyReader serviceProperties = new PropertyReader(
"/de/cismet/cids/custom/switchon/previewMap.properties");
SRS_GEOM = serviceProperties.getProperty("SRS_GEOM");
SRS_SERVICE = serviceProperties.getProperty("SRS_SERVICE");
MAP_CALL_STRING = serviceProperties.getProperty("MAP_CALL_STRING") + SRS_SERVICE;
GEO_BUFFER = Double.parseDouble(serviceProperties.getProperty("GEO_BUFFER"));
} catch (final Exception ex) {
LOG.fatal("SwitchOnConstants Error!", ex);
throw new RuntimeException(ex);
}
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public static SwitchOnConstants getInstance() {
if (instance == null) {
synchronized (SwitchOnConstants.class) {
if (instance == null) {
instance = new SwitchOnConstants();
instance.initConfigure();
}
}
}
return instance;
}
/**
* Reads the configuration of the optional switchOnConstantsConfiguration.xml. If this file is not present the
* properties from the previewMap.properties will be used.
*/
private void initConfigure() {
try {
final ConfigurationManager manager = CismapUtils.getCismapPlugin().getConfigurationManager();
final String home = manager.getHome();
final String fs = manager.getFileSeperator();
final String folder = manager.getFolder();
final String fileName = "switchOnConstantsConfiguration.xml";
manager.configure(this, home + fs + folder + fs + fileName);
} catch (final Exception ex) {
LOG.warn("SwitchOnConstants Error while loading the optional xml!", ex);
}
}
@Override
public void configure(final Element parent) {
final Element previewMap = parent.getChild("previewMap");
final String url = previewMap.getChildText("previewMapUrl");
if (StringUtils.isNotBlank(url)) {
MAP_CALL_STRING = url;
}
}
@Override
public void masterConfigure(final Element parent) {
}
@Override
public Element getConfiguration() throws NoWriteError {
return null;
}
}