ref #5710 run term reset on all Term classes
authorAndreas Müller <a.mueller@bgbm.org>
Wed, 10 Jun 2020 10:47:44 +0000 (12:47 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Wed, 10 Jun 2020 10:48:11 +0000 (12:48 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java

index f49f5fb60b50916c25c419ba6fd8c62cea48d0e1..8406376bf33a0503cc4d83a1d4d6727071e745da 100644 (file)
@@ -9,7 +9,6 @@
 
 package eu.etaxonomy.taxeditor.store;
 
-import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.util.concurrent.CancellationException;
 
@@ -32,7 +31,7 @@ import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
 import eu.etaxonomy.cdm.model.name.Rank;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.init.TermLoader;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.l10n.Messages;
@@ -180,8 +179,7 @@ class CdmStoreConnector extends Job {
                                     //loginDialog.onComplete();
                                     CdmStore.getContextManager().notifyContextStart();
                                     loginDialog.onComplete();
-                                    getInstance(Rank.class).resetTerms();
-                                    getInstance(NomenclaturalStatusType.class).resetTerms();
+                                    new TermLoader().unloadAllTerms();
                                     Rank.initDefaultTerms();
                                     NomenclaturalStatusType.initDefaultTerms();
                                 } catch(CdmAuthenticationException cae) {
@@ -206,23 +204,6 @@ class CdmStoreConnector extends Job {
         }
     }
 
-    /**
-     * Returns a new instance for the given class by using the default constructor.
-     * The constructor must be declared but can be unaccessible (e.g. private)
-     * @param termClass
-     * @return
-     */
-    private  <T extends DefinedTermBase> T getInstance(Class<? extends DefinedTermBase> termClass) {
-        try {
-            Constructor<T> c = ((Class<T>)termClass).getDeclaredConstructor();
-            c.setAccessible(true);
-            T termInstance = c.newInstance();
-            return termInstance;
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-
     private ICdmRepository getApplicationController(ICdmSource cdmSource, CdmProgressMonitorAdapter subprogressMonitor) {
         if(cdmSource instanceof ICdmDataSource) {
             return  CdmApplicationController.NewInstance(applicationContextBean,