package org.ripple.power.ioc; import java.util.Map; import org.ripple.power.ioc.injector.Container; import org.ripple.power.ioc.injector.InjectorFactory; public class IocFactory { final static Container defaultContainer = InjectorFactory.createContainer(); public static Container getDefaultContainer() { return defaultContainer; } public static void initialize() { defaultContainer.start(); } public static void destroy() { defaultContainer.stop(); } public static Ioc bind(final Container container, final Class<?> clazz) { return new IocBind(container, clazz); } public static Ioc bind(final Container container, final Class<?> clazz, final int model) { return new IocBind(container, clazz, model); } public static Ioc bind(final Container container, final String className) { try { return new IocBind(container, Class.forName(className)); } catch (ClassNotFoundException e) { throw new RuntimeException(e.getMessage() + " Unable to load!"); } } public static Ioc bind(final Container container, final String className, final Map<Object, Object> args) { return bind(container, className, args.values().toArray()); } public static Ioc bind(final Container container, final String className, final Object[] args) { try { return new IocBind(container, Class.forName(className), args); } catch (ClassNotFoundException e) { throw new RuntimeException(e.getMessage() + " Unable to load!"); } } public static Ioc bind(final Container container, final Class<?> clazz, final Object[] args) { return new IocBind(container, clazz, args); } public static Ioc bind(final Container container, final Class<?> clazz, final Object[] args, final int model) { return new IocBind(container, clazz, args, model); } // ---------- 使用默认容器--------------// public static Ioc bind(final Class<?> clazz) { return new IocBind(defaultContainer, clazz); } public static Ioc bind(final Class<?> clazz, final int model) { return new IocBind(defaultContainer, clazz, model); } public static Ioc bind(final String className) { try { return new IocBind(defaultContainer, Class.forName(className)); } catch (ClassNotFoundException e) { throw new RuntimeException(e.getMessage() + " Unable to load!"); } } public static Ioc bind(final String className, final Map<Object, Object> args) { return bind(defaultContainer, className, args.values().toArray()); } public static Ioc bind(final String className, final Object[] args) { try { return new IocBind(defaultContainer, Class.forName(className), args); } catch (ClassNotFoundException e) { throw new RuntimeException(e.getMessage() + " Unable to load!"); } } public static Ioc bind(final Class<?> clazz, final Object[] args) { return new IocBind(defaultContainer, clazz, args); } public static Ioc bind(final Class<?> clazz, final Object[] args, final int model) { return new IocBind(defaultContainer, clazz, args, model); } }