package ragefist.extension; import java.util.logging.Level; import java.util.logging.Logger; /* * Created by Andrey Cherkashin (acherkashin) * http://acherkashin.me * * License * Copyright (c) 2015 Andrey Cherkashin * The project released under the MIT license: http://opensource.org/licenses/MIT */ /** * @author acherkashin */ public class ExtensionLoader { public static Extension load(String name) { Class<?> extensionClass; try { extensionClass = Class.forName("ragefist.extension."+name+".ExtensionHandler"); } catch (ClassNotFoundException ex) { Logger.getLogger(ExtensionLoader.class.getName()).log(Level.SEVERE, null, ex); return null; } Class<? extends Extension> extensionMainClass; try { extensionMainClass = extensionClass.asSubclass(Extension.class); } catch(ClassCastException ex) { Logger.getLogger(ExtensionLoader.class.getName()).log(Level.SEVERE, null, ex); return null; } try { return extensionMainClass.newInstance(); } catch (InstantiationException | IllegalAccessException ex) { Logger.getLogger(ExtensionLoader.class.getName()).log(Level.SEVERE, null, ex); } return null; } }