@SuppressWarnings( "unchecked" ) @Override public T importService( final ImportedServiceDescriptor serviceDescriptor ) throws ServiceImporterException { return Stream.of( serviceDescriptor, module, layer, application ) .flatMap( holder -> serviceDescriptor.types().map( type -> (T) holder.metaInfo( type ) ) ) .filter( Objects::nonNull ) .findFirst().orElse( null ); }
@SuppressWarnings( "unchecked" ) @Override public T importService( final ImportedServiceDescriptor serviceDescriptor ) throws ServiceImporterException { return Stream.of( serviceDescriptor, module, layer, application ) .flatMap( holder -> serviceDescriptor.types().map( type -> (T) holder.metaInfo( type ) ) ) .filter( Objects::nonNull ) .findFirst().orElse( null ); }
@Override public <T> Converter<T> converterFor( MetaInfoHolder metaInfoHolder ) { Converter converter = metaInfoHolder.metaInfo( Converter.class ); if( converter != null ) { return castConverter( converter ); } ConvertedBy convertedBy = metaInfoHolder.metaInfo( ConvertedBy.class ); if( convertedBy != null ) { return converterInstanceOf( convertedBy.value() ); } return null; }
@Override public <T> Converter<T> converterFor( MetaInfoHolder metaInfoHolder ) { Converter converter = metaInfoHolder.metaInfo( Converter.class ); if( converter != null ) { return castConverter( converter ); } ConvertedBy convertedBy = metaInfoHolder.metaInfo( ConvertedBy.class ); if( convertedBy != null ) { return converterInstanceOf( convertedBy.value() ); } return null; }