blob: bf5b303686c4c79ba0fe244be0ed40d77f912022 [file] [log] [blame]
/**
* Copyright (c) 2011, 2015 - Bernhard Edler (Wien), Loetz GmbH&Co.KG (Heidelberg)
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Bernhard Edler - Initial implementation
*/
package org.eclipse.osbp.runtime.common.datasource.config;
import java.util.Arrays;
import java.util.HashMap;
import org.eclipse.osbp.runtime.common.util.OSGiUtil;
public abstract class CommonDatasourceConfig {
public static String DRIVER_NAME = "";
private static String EMPTY_STRING = "";
protected static String OSGI_DRIVER_NAME = "osgi.jdbc.driver.name";
protected HashMap<String, String> properties;
public CommonDatasourceConfig() {
properties = new HashMap<String, String>();
}
public HashMap<String, String> getProperties() {
return properties;
}
public void setProperties(HashMap<String, String> properties) {
this.properties = properties;
}
protected void setValue(String key, String value) {
if (properties.containsKey(key)) {
properties.remove(key);
properties.put(key, value);
} else {
properties.put(key, value);
}
}
protected String getValue(String key) {
return properties.containsKey(key) ? properties.get(key) : EMPTY_STRING;
}
protected HashMap<String, String> filterProperties(String[] keySet) {
for (String key : properties.keySet()) {
if (!Arrays.asList(keySet).contains(key)) {
properties.remove(key);
}
}
return properties;
};
public static String[] getPropertyKeysForDriver(String driverName) {
if (EmbeddedDerbyDatasourceConfig.DRIVER_NAME.equals(driverName)) {
return OSGiUtil
.getEnumValues(EmbeddedDerbyDatasourceConfig.Keys.class);
} else if (ClientDerbyDatasourceConfig.DRIVER_NAME.equals(driverName)) {
return OSGiUtil
.getEnumValues(ClientDerbyDatasourceConfig.Keys.class);
} else if (MySQLDatasourceConfig.DRIVER_NAME.equals(driverName)) {
return OSGiUtil
.getEnumValues(MySQLDatasourceConfig.Keys.class);
} else {
return null;
}
}
}