} else if( entry instanceof FeatureDirective ) { FeatureDirective directive = (FeatureDirective) entry; int feature = directive.getFeature(); if( FeatureDirective.URI == feature ) { return m_component.getURI(); } else if( FeatureDirective.NAME == feature ) { return m_component.getName(); } else if( FeatureDirective.WORK == feature ) { return m_controller.getControllerContext().getWorkingDirectory(); } else if( FeatureDirective.TEMP == feature ) { return m_controller.getControllerContext().getTempDirectory(); } else {  throw new IllegalStateException( "Bad feature reference: " + feature ); }
    public Object get( String key )    {        Object entry = super.get( key );        if( null == entry )        {            return null;        }        else if( entry instanceof Resolvable )        {            Resolvable service = (Resolvable) entry;            try            {                return service.resolve();            }            catch( Throwable e )            {                final String error =                   "Unexpected error while attempting to resolve the value of context entry."                  + "\nEnclosing component: " + m_component.getURI()                  + "\nProvider: " + service                  + "\nContext Key: " + key;                throw new ComponentRuntimeException( error, e );            }        }        else        {            return entry;        }    }