001    package com.hammurapi.config.runtime;
002    
003    import org.eclipse.emf.ecore.EObject;
004    
005    import com.hammurapi.config.bootstrap.ConfigurationException;
006    
007    /**
008     * Objects which need lifecycle management and advanced configuration (beyond property injection) shall implement this interface.
009     * @author Pavel Vlasov
010     * @param <D> Model element type which is used to configure given instance.
011     */
012    public interface Component<D extends EObject> {
013            
014            /**
015             * Initializes element
016             * @param context
017             */
018            void init(ConfigurationContext<D> context) throws ConfigurationException;
019            
020    }