< prev index next >

src/java.base/share/classes/java/util/ServiceLoader.java

Print this page
rev 14279 : [mq]: 8140281-deprecation-optional.get


 583 
 584         @Override
 585         boolean hasNextService() {
 586 
 587             // already have the next provider cached
 588             if (nextProvider != null)
 589                 return true;
 590 
 591             while (true) {
 592 
 593                 // next provider
 594                 if (providersIterator != null && providersIterator.hasNext()) {
 595                     nextProvider = providersIterator.next();
 596                     return true;
 597                 }
 598 
 599                 // next descriptor
 600                 if (descriptorIterator.hasNext()) {
 601                     ModuleDescriptor descriptor = descriptorIterator.next();
 602 
 603                     nextModule = currentLayer.findModule(descriptor.name()).get();
 604 
 605                     Provides provides = descriptor.provides().get(serviceName);
 606                     providersIterator = provides.providers().iterator();
 607 
 608                     continue;
 609                 }
 610 
 611                 // next layer
 612                 Layer parent = currentLayer.parent().orElse(null);
 613                 if (parent == null)
 614                     return false;
 615 
 616                 currentLayer = parent;
 617                 descriptorIterator = descriptors(currentLayer, serviceName);
 618             }
 619         }
 620 
 621         @Override
 622         S nextService() {
 623             if (!hasNextService())




 583 
 584         @Override
 585         boolean hasNextService() {
 586 
 587             // already have the next provider cached
 588             if (nextProvider != null)
 589                 return true;
 590 
 591             while (true) {
 592 
 593                 // next provider
 594                 if (providersIterator != null && providersIterator.hasNext()) {
 595                     nextProvider = providersIterator.next();
 596                     return true;
 597                 }
 598 
 599                 // next descriptor
 600                 if (descriptorIterator.hasNext()) {
 601                     ModuleDescriptor descriptor = descriptorIterator.next();
 602 
 603                     nextModule = currentLayer.findModule(descriptor.name()).getWhenPresent();
 604 
 605                     Provides provides = descriptor.provides().get(serviceName);
 606                     providersIterator = provides.providers().iterator();
 607 
 608                     continue;
 609                 }
 610 
 611                 // next layer
 612                 Layer parent = currentLayer.parent().orElse(null);
 613                 if (parent == null)
 614                     return false;
 615 
 616                 currentLayer = parent;
 617                 descriptorIterator = descriptors(currentLayer, serviceName);
 618             }
 619         }
 620 
 621         @Override
 622         S nextService() {
 623             if (!hasNextService())


< prev index next >