(no commit message)
authorErik Brakkee <erik@brakkee.org>
Thu, 15 May 2008 20:29:20 +0000 (20:29 +0000)
committerErik Brakkee <erik@brakkee.org>
Thu, 15 May 2008 20:29:20 +0000 (20:29 +0000)
system/general/src/main/java/org/wamblee/system/components/DatabaseComponentFactory.java [new file with mode: 0644]
system/general/src/main/java/org/wamblee/system/components/ORMappingConfig.java [new file with mode: 0644]

diff --git a/system/general/src/main/java/org/wamblee/system/components/DatabaseComponentFactory.java b/system/general/src/main/java/org/wamblee/system/components/DatabaseComponentFactory.java
new file mode 100644 (file)
index 0000000..c6ddeee
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2008 the original author or authors.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.wamblee.system.components;
+
+import org.wamblee.io.ClassPathResource;
+import org.wamblee.system.core.Container;
+
+public class DatabaseComponentFactory {
+
+    public static void addDatabaseConfig(Container aContainer) {
+        try {
+            aContainer
+                    .addComponent(new PropertyComponent(
+                            "dbProps",
+                            new ClassPathResource(
+                                    "properties/test.org.wamblee.security.database.properties")));
+        } catch (Exception e) {
+            throw new RuntimeException("Could not add database configuration",
+                    e);
+        }
+    }
+
+}
diff --git a/system/general/src/main/java/org/wamblee/system/components/ORMappingConfig.java b/system/general/src/main/java/org/wamblee/system/components/ORMappingConfig.java
new file mode 100644 (file)
index 0000000..880e869
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2008 the original author or authors.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.wamblee.system.components;
+
+public class ORMappingConfig {
+
+    public enum DatabaseType {
+        MYSQL_INNO_DB, DERBY;
+
+        public static interface Switch<T> {
+            T handleMySqlInnoDb();
+
+            T handleDerby();
+        }
+
+        public <T> T handleCases(Switch<T> aSwitch) {
+
+            switch (this) {
+            case MYSQL_INNO_DB: {
+                return aSwitch.handleMySqlInnoDb();
+            }
+            case DERBY: {
+                return aSwitch.handleDerby();
+            }
+            default: {
+                throw new RuntimeException("Unhandled case " + this);
+            }
+            }
+        }
+    };
+
+    private boolean _schemaUpdate;
+    private DatabaseType _type;
+
+    public ORMappingConfig(boolean aSchemaUpdate, DatabaseType aType) {
+        _schemaUpdate = aSchemaUpdate;
+        _type = aType;
+    }
+
+    public boolean isSchemaUpdate() {
+        return _schemaUpdate;
+    }
+
+    public DatabaseType getType() {
+        return _type;
+    }
+
+}