private List<? extends ModelDescriptor> getAllServices() { return allServices.computeIfAbsent( () -> concat( concat( module.serviceComposites(), concat( concat( module.layer().visibleServices( layer ), module.layer().visibleServices( application ) ), module.layer().usedLayers().layers() .flatMap( layer -> layer.visibleServices( application ) ) ) ), concat( module.importedServices(), concat( concat( module.layer().visibleServices( layer ), module.layer().visibleServices( application ) ), module.layer().usedLayers().layers() .flatMap( layer -> layer.visibleServices( application ) ) ) ) ).collect( toList() ) ); }