/* * Copyright (c) 2006 jDiameter. * https://jdiameter.dev.java.net/ * * License: GPL v3 * * e-mail: erick.svenson@yahoo.com * */ package org.jdiameter.client.api; /** * This interface provide IOC functionality * Data: $Date: 2008/07/03 19:43:10 $ * Revision: $Revision: 1.1 $ * @version 1.5.0.1 */ public interface IAssembler { /** * Return parent IOC * @return IOC instance */ IAssembler getParent(); /** * Return all children * @return all children */ IAssembler[] getChilds(); /** * Register new component * @param aClass class of component * @return instcne of component */ Object getComponentInstance(Class<?> aClass); /** * Register new component * @param object instance of component */ void registerComponentInstance(Object object); /** * Register new component * @param aClass class of component * @param object instance of component */ void registerComponentImplementation(Class<?> aClass, Object object); /** * Release all attached resources */ void destroy(); }