Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/org.eclipse.emf.teneo.commontest/src/org/eclipse/emf/teneo/test/stores/TestDBAdapters.java')
-rwxr-xr-xtests/org.eclipse.emf.teneo.commontest/src/org/eclipse/emf/teneo/test/stores/TestDBAdapters.java102
1 files changed, 102 insertions, 0 deletions
diff --git a/tests/org.eclipse.emf.teneo.commontest/src/org/eclipse/emf/teneo/test/stores/TestDBAdapters.java b/tests/org.eclipse.emf.teneo.commontest/src/org/eclipse/emf/teneo/test/stores/TestDBAdapters.java
new file mode 100755
index 000000000..d92037973
--- /dev/null
+++ b/tests/org.eclipse.emf.teneo.commontest/src/org/eclipse/emf/teneo/test/stores/TestDBAdapters.java
@@ -0,0 +1,102 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others
+ * 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:
+ * Martin Taal
+ * Davide Marchignoli
+ * </copyright>
+ *
+ * $Id: TestDBAdapters.java,v 1.6 2008/05/27 07:42:12 mtaal Exp $
+ */
+
+package org.eclipse.emf.teneo.test.stores;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.eclipse.emf.teneo.test.StoreTestException;
+import org.eclipse.emf.teneo.test.Utils;
+
+/**
+ * Encapsulates multiple database adapters.
+ *
+ * @author Davide Marchignoli
+ * @author Martin Taal
+ * @version $Revision: 1.6 $
+ */
+public class TestDBAdapters {
+
+ /** Map fo adapters by name */
+ private Map dbAdapters = new HashMap();
+
+ /** Add db adapter */
+ public void addDBAdapter(String name, BaseTestDatabaseAdapter dbAdapter) {
+ if (dbAdapters.containsKey(name)) {
+ throw new IllegalArgumentException("Duplicate db adapter " + name);
+ }
+ dbAdapters.put(name, dbAdapter);
+ }
+
+ /** Add db adapter */
+ public void addDBAdapter(String name, Properties initProps) {
+ String dbAdapterClassName = initProps.getProperty("dbadapter");
+ BaseTestDatabaseAdapter testAdapter = null;
+ if (dbAdapterClassName == null) {
+ testAdapter = new BaseTestDatabaseAdapter();
+ } else {
+ try {
+ final Class adapterClass = Class.forName(dbAdapterClassName);
+ testAdapter = (BaseTestDatabaseAdapter) adapterClass.newInstance();
+ } catch (Exception e) {
+ throw new StoreTestException("Exception when creating TestDatabaseAdapter using classname: " +
+ dbAdapterClassName + ", db identifier used in property file: " +
+ initProps.getProperty(Utils.DATABASE_PROP_NAME), e);
+ }
+ }
+ testAdapter.initialize(initProps);
+ addDBAdapter(name, testAdapter);
+ }
+
+ /** Add database adapters */
+ public void addDBAdapters(Properties props) {
+ final Map hProps = Utils.hiearchizeProps(props);
+ for (Iterator i = hProps.keySet().iterator(); i.hasNext();) {
+ String adapterName = (String) i.next();
+ addDBAdapter(adapterName, (Properties) hProps.get(adapterName));
+ }
+ }
+
+ /** Return all db adapters */
+ public Collection getAdapters() {
+ return dbAdapters.values();
+ }
+
+ /** Return names of database adapters */
+ public Set getAdapterNames() {
+ return dbAdapters.keySet();
+ }
+
+ /** Get one adapter by name */
+ public BaseTestDatabaseAdapter get(String adapterName) {
+ return (BaseTestDatabaseAdapter) dbAdapters.get(adapterName);
+ }
+
+ /** Add a database adapter */
+ public void addDBAdapters(InputStream propertiesStream) throws IOException {
+ Properties props = new Properties();
+ props.load(propertiesStream);
+ addDBAdapters(props);
+ }
+} \ No newline at end of file

Back to the top