...
 
Commits (2)
package de.bps.asist.core.manager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import de.bps.asist.module.AbstractAsistModule;
......@@ -9,7 +12,7 @@ public class ASiSTModuleManager {
private static final ASiSTModuleManager INSTANCE = new ASiSTModuleManager();
private List<AbstractAsistModule> modules = new ArrayList<>();
private Map<Class<? extends AbstractAsistModule>, AbstractAsistModule> modules = Collections.synchronizedMap(new LinkedHashMap<Class<? extends AbstractAsistModule>, AbstractAsistModule>());
private ASiSTModuleManager(){
}
......@@ -18,23 +21,20 @@ public class ASiSTModuleManager {
return INSTANCE;
}
public void resetModuleList(){
modules = new ArrayList<>();
public void resetModuleList() {
this.modules.clear();
}
public void register(AbstractAsistModule module){
modules.add(module);
public void register(AbstractAsistModule module) {
this.modules.put(module.getClass(), module);
}
public <T extends AbstractAsistModule> T getModule( Class<T> moduleClass, T defaultValue ) {
T resultModule = defaultValue;
for ( AbstractAsistModule registeredModule: this.modules ) {
if( moduleClass.isInstance( registeredModule ) ) {
defaultValue = (T)registeredModule;
break;
public <T extends AbstractAsistModule> T getModule(Class<T> moduleClass, T defaultValue) {
T module = (T) this.modules.get(moduleClass);
if (module == null) {
module = defaultValue;
}
}
return resultModule;
return module;
}
public <T extends AbstractAsistModule> T getModule( Class<T> moduleClass) {
......@@ -42,7 +42,6 @@ public class ASiSTModuleManager {
}
public List<AbstractAsistModule> getModules() {
return modules;
return new ArrayList<>(modules.values());
}
}
\ No newline at end of file