/*******************************************************************************
* Copyright (c) 2013 IBM Corporation.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v. 1.0 which accompanies this distribution.
*
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
*
* Masaki Wakao
* Yoshio Horiuchi
*******************************************************************************/
package org.eclipse.lyo.samples.excel.common;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.eclipse.lyo.rio.core.IConstants;
public class ConfigSingleton {
private static ConfigSingleton theInstance = new ConfigSingleton();
private String repositoryLocationDefault;
private String modelGroupNameDefault;
private String mapperFileNameDefault;
private String baseUriDefault;
private Map<String, String> nsPrefixes = new HashMap<String, String>();
private Map<String, String> backlinks = new HashMap<String, String>();
private String publisherTitleDefault;
private String publisherIdentifierDefault;
private String publisherIconDefault;
private String serviceDomainDefault;
private Map<String, String> queryCapabilities = new HashMap<String, String>();
private ConfigSingleton() {
Properties prop = new Properties();
try {
prop.loadFromXML(new FileInputStream("config.xml"));
repositoryLocationDefault = prop.getProperty("repositoryLocation");
modelGroupNameDefault = prop.getProperty("modelGroupName");
mapperFileNameDefault = prop.getProperty("mapperFileName");
baseUriDefault = prop.getProperty("baseUri");
publisherTitleDefault = prop.getProperty("publisherTitle");
publisherIdentifierDefault = prop.getProperty("publisherIdentifier");
publisherIconDefault = prop.getProperty("publisherIcon");
serviceDomainDefault = prop.getProperty("serviceDomain");
System.out.println("default repositoryLocation : " + repositoryLocationDefault);
System.out.println("default modelGroupName : " + modelGroupNameDefault);
System.out.println("default mapperFileName : " + mapperFileNameDefault);
System.out.println("default baseUri : " + baseUriDefault);
System.out.println("default publisherTitle : " + publisherTitleDefault);
System.out.println("default publisherIdentifier : " + publisherIdentifierDefault);
System.out.println("default publisherIcon : " + publisherIconDefault);
System.out.println("default serviceDomain : " + serviceDomainDefault);
// prefix to namespace map
nsPrefixes.put(IConstants.DCTERMS_PREFIX, IConstants.DCTERMS_NAMESPACE);
for (int i = 1; ; i++) {
String value = prop.getProperty("namespace" + i);
if (value == null) {
break;
}
String[] tokens = value.split(",");
if (tokens.length > 1) {
nsPrefixes.put(tokens[0], tokens[1]);
System.out.println("namespace prefix = " + tokens[0] + ", uri = " + tokens[1]);
}
}
// backlink map
for (int i = 1; ; i++) {
String value = prop.getProperty("backlink" + i);
if (value == null) {
break;
}
String[] tokens = value.split(",");
if (tokens.length > 1) {
backlinks.put(tokens[0], tokens[1]);
System.out.println("backlink " + tokens[0] + ", " + tokens[1]);
}
}
// query capabilities map
for (int i = 1; ; i++) {
String value = prop.getProperty("queryCapability" + i);
if (value == null) {
break;
}
String[] tokens = value.split(",");
if (tokens.length > 1) {
queryCapabilities.put(tokens[0], tokens[1]);
System.out.println("queryCapability " + tokens[0] + ", " + tokens[1]);
}
}
} catch (Exception e) {
}
}
public static ConfigSingleton getInstance() {
return theInstance;
}
/*
* Model related properties
*/
public String getRepositoryLocationDefault() {
return repositoryLocationDefault;
}
public String getModelGroupNameDefault() {
return modelGroupNameDefault;
}
public String getMapperFileNameDefault() {
return mapperFileNameDefault;
}
public String getBaseUriDefault() {
return baseUriDefault;
}
public Map<String, String> getBacklinks() {
return backlinks;
}
/*
* Namespace related properties
*/
public Map<String, String> getNsPrefixes() {
return nsPrefixes;
}
/*
* Catalog related properties
*/
public String getPublisherTitle() {
return publisherTitleDefault;
}
public String getPublisherIdentifier() {
return publisherIdentifierDefault;
}
public String getPublisherIcon() {
return publisherIconDefault;
}
public String getServiceDomainDefault() {
return serviceDomainDefault;
}
public Map<String, String> getQueryCapabilities() {
return queryCapabilities;
}
}