From 766f1f41270f2d79980726ff6ffc930e4cf41988 Mon Sep 17 00:00:00 2001 From: riking Date: Tue, 8 Oct 2013 20:47:20 -0700 Subject: [PATCH] Oh! So that's why it's never used here --- .../database/DatabaseManagerFactory.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java b/src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java index 87f964f46..da3a2ea1f 100644 --- a/src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java +++ b/src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java @@ -10,7 +10,7 @@ public class DatabaseManagerFactory { public static DatabaseManager getDatabaseManager() { if (customManager != null) { try { - return createCustomDatabaseManager(customManager); + return createDefaultCustomDatabaseManager(); } catch (Exception e) { mcMMO.p.debug("Could not create custom database manager"); @@ -29,17 +29,18 @@ public class DatabaseManagerFactory { /** * Sets the custom DatabaseManager class for mcMMO to use. This should be * called prior to mcMMO enabling. - *

+ *

* The provided class must have an empty constructor, which is the one * that will be used. - *

+ *

* This method is intended for API use, but it should not be considered * stable. This method is subject to change and/or removal in future * versions. * * @param clazz the DatabaseManager class to use + * * @throws IllegalArgumentException if the provided class does not have - * an empty constructor + * an empty constructor */ public static void setCustomDatabaseManagerClass(Class clazz) { try { @@ -63,13 +64,24 @@ public class DatabaseManagerFactory { case SQL: return new SQLDatabaseManager(); + case CUSTOM: + try { + return createDefaultCustomDatabaseManager(); + } + catch (Throwable e) { + e.printStackTrace(); + } + default: return null; } } - //TODO: Why is clazz never used here? + public static DatabaseManager createDefaultCustomDatabaseManager() throws Throwable { + return customManager.getConstructor((Class) null).newInstance((Object[]) null); + } + public static DatabaseManager createCustomDatabaseManager(Class clazz) throws Throwable { - return customManager.getConstructor((Class) clazz).newInstance((Object[]) null); + return clazz.getConstructor((Class) null).newInstance((Object[]) null); } }