@SuppressWarnings( "unchecked" ) public <V> V findConfigurationInstanceFor( ServiceComposite serviceComposite, UnitOfWork uow ) throws InstantiationException { ServiceDescriptor serviceModel = api.serviceDescriptorFor( serviceComposite ); String identity = serviceComposite.identity().get(); V configuration; try { configuration = uow.get( serviceModel.<V>configurationType(), identity ); uow.pause(); } catch( NoSuchEntityException | EntityTypeNotFoundException e ) { return (V) initializeConfigurationInstance( serviceComposite, uow, serviceModel, identity ); } return configuration; }
UnitOfWork buildUow = module.newUnitOfWork( usecase ); Class<?> type = first( api.serviceDescriptorFor( serviceComposite ).types() ); Class<V> configType = serviceModel.configurationType();