private < O extends Featurable > O createFeaturable ( Class < O > type , Setup setup ) throws NoSuchMethodException { final O featurable = UtilReflection . createReduce ( type , services , setup ) ; addFeatures ( featurable , services , setup ) ; for ( final Feature feature : featurable . getFeatures ( ) ) { featurable . checkListener ( feature ) ; for ( final Feature other : featurable . getFeatures ( ) ) { if ( feature != other ) { other . checkListener ( feature ) ; } } } return featurable ; }
Create the featurable .