< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider.processor/src/org/graalvm/compiler/serviceprovider/processor/ServiceProviderProcessor.java

Print this page
rev 52509 : [mq]: graal2


 102                         if (kind == ElementKind.PACKAGE) {
 103                             serviceName = ((PackageElement) enclosing).getQualifiedName().toString() + "." + serviceName;
 104                             break;
 105                         } else if (kind == ElementKind.CLASS || kind == ElementKind.INTERFACE) {
 106                             serviceName = ((TypeElement) enclosing).getSimpleName().toString() + "$" + serviceName;
 107                             enclosing = enclosing.getEnclosingElement();
 108                         } else {
 109                             String msg = String.format("Cannot generate provider descriptor for service class %s as it is not nested in a package, class or interface",
 110                                             serviceElement.getQualifiedName());
 111                             processingEnv.getMessager().printMessage(Kind.ERROR, msg, serviceProvider);
 112                             return;
 113                         }
 114                     }
 115                     serviceProviders.put(serviceProvider, serviceName);
 116                 }
 117             }
 118         }
 119     }
 120 
 121     @Override
 122     public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
 123         if (roundEnv.processingOver()) {
 124             for (Entry<TypeElement, String> e : serviceProviders.entrySet()) {
 125                 createProviderFile(e.getKey().getQualifiedName().toString(), e.getValue(), e.getKey());
 126             }
 127             serviceProviders.clear();
 128             return true;
 129         }
 130 
 131         TypeElement serviceProviderTypeElement = getTypeElement(SERVICE_PROVIDER_CLASS_NAME);
 132         for (Element element : roundEnv.getElementsAnnotatedWith(serviceProviderTypeElement)) {
 133             assert element.getKind().isClass();
 134             processElement((TypeElement) element);
 135         }
 136 
 137         return true;
 138     }
 139 }


 102                         if (kind == ElementKind.PACKAGE) {
 103                             serviceName = ((PackageElement) enclosing).getQualifiedName().toString() + "." + serviceName;
 104                             break;
 105                         } else if (kind == ElementKind.CLASS || kind == ElementKind.INTERFACE) {
 106                             serviceName = ((TypeElement) enclosing).getSimpleName().toString() + "$" + serviceName;
 107                             enclosing = enclosing.getEnclosingElement();
 108                         } else {
 109                             String msg = String.format("Cannot generate provider descriptor for service class %s as it is not nested in a package, class or interface",
 110                                             serviceElement.getQualifiedName());
 111                             processingEnv.getMessager().printMessage(Kind.ERROR, msg, serviceProvider);
 112                             return;
 113                         }
 114                     }
 115                     serviceProviders.put(serviceProvider, serviceName);
 116                 }
 117             }
 118         }
 119     }
 120 
 121     @Override
 122     public boolean doProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
 123         if (roundEnv.processingOver()) {
 124             for (Entry<TypeElement, String> e : serviceProviders.entrySet()) {
 125                 createProviderFile(e.getKey().getQualifiedName().toString(), e.getValue(), e.getKey());
 126             }
 127             serviceProviders.clear();
 128             return true;
 129         }
 130 
 131         TypeElement serviceProviderTypeElement = getTypeElement(SERVICE_PROVIDER_CLASS_NAME);
 132         for (Element element : roundEnv.getElementsAnnotatedWith(serviceProviderTypeElement)) {
 133             assert element.getKind().isClass();
 134             processElement((TypeElement) element);
 135         }
 136 
 137         return true;
 138     }
 139 }
< prev index next >