package org.ripple.power.ioc; import java.util.HashSet; import java.util.Set; import org.ripple.power.ioc.injector.Container; import org.ripple.power.ioc.injector.InjectorFactory; public class IocContainer { final Container defaultContainer; final Set<Object> args; public IocContainer() { defaultContainer = InjectorFactory.createContainer(); args = new HashSet<Object>(20); } public Object getInstance(Class<?> clazz) { return defaultContainer.getInstance(clazz); } public void addValue(Object value) { args.add(value); } public void removeValues() { args.clear(); } public void addConstructor(Class<?> clazz) { IocFactory.bind(defaultContainer, clazz, args.toArray()); } public void addConstructor(Class<?> clazz, Object[] args) { IocFactory.bind(defaultContainer, clazz, args); } public Container getContainer() { return defaultContainer; } public void initialize() { defaultContainer.start(); } public void destroy() { defaultContainer.stop(); args.clear(); } public void finalize() { destroy(); } }