package husacct.control.task.resources; import java.util.ArrayList; import java.util.List; public class ResourceFactory { private static IResource getDefault(){ List<String> list = getAvailableResources(); return get(list.get(0)); } public static IResource get(String identifier){ if(isAvailable(identifier)){ try { ClassLoader myClassLoader = ResourceFactory.class.getClassLoader(); String classNameToBeLoaded = "husacct.control.task.resources." + identifier + "Resource"; Class<?> myClass = myClassLoader.loadClass(classNameToBeLoaded); Object instance = myClass.newInstance(); return (IResource) instance; } catch (Exception e) { e.printStackTrace(); } } return getDefault(); } public static List<String> getAvailableResources(){ List<String> list = new ArrayList<String>(); list.add("Xml"); return list; } private static boolean isAvailable(String identifier){ List<String> list = getAvailableResources(); for(String loader : list){ if(loader.equals(identifier)){ return true; } } return false; } }