Java Code Examples for javax.lang.model.element.ElementKind#INTERFACE
The following examples show how to use
javax.lang.model.element.ElementKind#INTERFACE .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ValueNotSpecifiedForRemoteAnnotationInterface.java From netbeans with Apache License 2.0 | 6 votes |
@TriggerTreeKind(Tree.Kind.INTERFACE) public static Collection<ErrorDescription> run(HintContext hintContext) { final EJBProblemContext ctx = HintsUtils.getOrCacheContext(hintContext); if (ctx == null || ctx.getClazz().getKind() != ElementKind.INTERFACE) { return Collections.emptyList(); } AnnotationMirror annRemote = JavaUtils.findAnnotation(ctx.getClazz(), EJBAPIAnnotations.REMOTE); if (annRemote != null && JavaUtils.getAnnotationAttrValue(annRemote, EJBAPIAnnotations.VALUE) != null) { ErrorDescription err = HintsUtils.createProblem( ctx.getClazz(), hintContext.getInfo(), Bundle.ValueNotSpecifiedForRemoteAnnotationInterface_err()); return Collections.singletonList(err); } return Collections.emptyList(); }
Example 2
Source File: Processor.java From GoldenGate with BSD 3-Clause "New" or "Revised" License | 6 votes |
@Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(Bridge.class)) { // Make sure element is an interface declaration if (annotatedElement.getKind() != ElementKind.INTERFACE) { error(annotatedElement, "Only interfaces can be annotated with @%s", Bridge.class.getSimpleName()); return true; } try { new BridgeInterface(annotatedElement, elementUtils, typeUtils).writeToFiler(filer); } catch (Exception e) { error(annotatedElement, "%s", e.getMessage()); } } return true; }
Example 3
Source File: InterfaceEndpointInterface.java From netbeans with Apache License 2.0 | 6 votes |
@Override public ErrorDescription[] apply(TypeElement subject, ProblemContext ctx){ if(subject.getKind() == ElementKind.INTERFACE) { AnnotationMirror annEntity = Utilities.findAnnotation(subject,ANNOTATION_WEBSERVICE); AnnotationTree annotationTree = (AnnotationTree) ctx.getCompilationInfo(). getTrees().getTree(subject, annEntity); //endpointInterface not allowed if(Utilities.getAnnotationAttrValue(annEntity, ANNOTATION_ATTRIBUTE_SEI)!=null) { String label = NbBundle.getMessage(InterfaceEndpointInterface.class, "MSG_IF_SEINotAllowed"); Fix fix = new RemoveAnnotationArgument(ctx.getFileObject(), subject, annEntity, ANNOTATION_ATTRIBUTE_SEI); Tree problemTree = Utilities.getAnnotationArgumentTree(annotationTree, ANNOTATION_ATTRIBUTE_SEI); ctx.setElementToAnnotate(problemTree); ErrorDescription problem = createProblem(subject, ctx, label, fix); ctx.setElementToAnnotate(null); return new ErrorDescription[]{problem}; } } return null; }
Example 4
Source File: JavaEnvironment.java From j2cl with Apache License 2.0 | 6 votes |
private List<String> getClassComponents(javax.lang.model.type.TypeVariable typeVariable) { Element enclosingElement = typeVariable.asElement().getEnclosingElement(); if (enclosingElement.getKind() == ElementKind.CLASS || enclosingElement.getKind() == ElementKind.INTERFACE || enclosingElement.getKind() == ElementKind.ENUM) { return ImmutableList.<String>builder() .addAll(getClassComponents(enclosingElement)) .add( // If it is a class-level type variable, use the simple name (with prefix "C_") as the // current name component. "C_" + typeVariable) .build(); } else { return ImmutableList.<String>builder() .addAll(getClassComponents(enclosingElement.getEnclosingElement())) .add( "M_" + enclosingElement.getSimpleName() + "_" + typeVariable.asElement().getSimpleName()) .build(); } }
Example 5
Source File: SpecParser.java From dataenum with Apache License 2.0 | 6 votes |
public static Spec parse(Element element, ProcessingEnvironment processingEnv) { Messager messager = processingEnv.getMessager(); if (element.getKind() != ElementKind.INTERFACE) { messager.printMessage( Diagnostic.Kind.ERROR, "@DataEnum can only be used on interfaces.", element); return null; } TypeElement dataEnum = (TypeElement) element; List<TypeVariableName> typeVariableNames = new ArrayList<>(); for (TypeParameterElement typeParameterElement : dataEnum.getTypeParameters()) { typeVariableNames.add(TypeVariableName.get(typeParameterElement)); } List<Value> values = ValuesParser.parse(dataEnum, processingEnv); if (values == null) { return null; } ClassName enumInterface = ClassName.get(dataEnum); return new Spec(enumInterface, typeVariableNames, values); }
Example 6
Source File: TypeElementImpl.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
@Override public ElementKind getKind() { if (null != _kindHint) { return _kindHint; } ReferenceBinding refBinding = (ReferenceBinding)_binding; // The order of these comparisons is important: e.g., enum is subset of class if (refBinding.isEnum()) { return ElementKind.ENUM; } else if (refBinding.isAnnotationType()) { return ElementKind.ANNOTATION_TYPE; } else if (refBinding.isInterface()) { return ElementKind.INTERFACE; } else if (refBinding.isClass()) { return ElementKind.CLASS; } else { throw new IllegalArgumentException("TypeElement " + new String(refBinding.shortReadableName()) + //$NON-NLS-1$ " has unexpected attributes " + refBinding.modifiers); //$NON-NLS-1$ } }
Example 7
Source File: DynamicProxyConfigGenerator.java From picocli with Apache License 2.0 | 6 votes |
void visitCommandSpec(CommandSpec spec) { Object userObject = spec.userObject(); if (Proxy.isProxyClass(userObject.getClass())) { Class<?>[] interfaces = userObject.getClass().getInterfaces(); String names = ""; for (Class<?> interf : interfaces) { if (names.length() > 0) { names += ","; } names += interf.getCanonicalName(); // TODO or Class.getName()? } if (names.length() > 0) { commandInterfaces.add(names); } } else if (spec.userObject() instanceof Element && ((Element) spec.userObject()).getKind() == ElementKind.INTERFACE) { commandInterfaces.add(((Element) spec.userObject()).asType().toString()); } for (CommandSpec mixin : spec.mixins().values()) { visitCommandSpec(mixin); } for (CommandLine sub : spec.subcommands().values()) { visitCommandSpec(sub.getCommandSpec()); } }
Example 8
Source File: PatternAnalyser.java From netbeans with Apache License 2.0 | 6 votes |
private void resolveTypes(Parameters p) { List<TypeElement> types = ElementFilter.typesIn(p.element.getEnclosedElements()); for (TypeElement typeElement : types) { if ( typeElement.getKind() == ElementKind.CLASS || typeElement.getKind() == ElementKind.INTERFACE ) { PatternAnalyser pa = new PatternAnalyser( p.ci.getFileObject(), ui ); pa.analyzeAll(p.ci, typeElement); ClassPattern cp = new ClassPattern(pa, typeElement.asType(), BeanUtils.nameAsString(typeElement)); currentClassesPatterns.add(cp); } } }
Example 9
Source File: DeepLinkServiceProcessor.java From OkDeepLink with Apache License 2.0 | 5 votes |
private List<AddressElement> generateAddressElements(RoundEnvironment roundEnv) { List<Element> annotationElements = new ArrayList<>(); for (String annotationType : getSupportedAnnotationTypes()) { TypeElement typeElement = processingEnv.getElementUtils().getTypeElement(annotationType); Set<? extends Element> annotatedElements = roundEnv.getElementsAnnotatedWith(typeElement); for (Element annotatedElement : annotatedElements) { if (!annotationElements.contains(annotatedElement)) { annotationElements.add(annotatedElement); } } } List<AddressElement> serviceElements = new ArrayList<>(); for (Element element : annotationElements) { ElementKind kind = element.getKind(); if (kind != ElementKind.METHOD) { logger.error("Only classes and methods can be with " + getSupportedAnnotationTypes(), element); } if (!isSupportReturnType((ExecutableElement) element)) { logger.error("method only support return type is " + SUPPORT_RETURN_TYPE.toString(), element); } Element enclosingElement = element.getEnclosingElement(); String name = enclosingElement.getSimpleName().toString(); if (!name.endsWith("Service")) { logger.error(name + "this class must be in end with Service", enclosingElement); } if (enclosingElement.getKind() != ElementKind.INTERFACE) { logger.error(name + "this class must be interface", enclosingElement); } serviceElements.add(new AddressElement(element)); } return serviceElements; }
Example 10
Source File: ImportHelper.java From netbeans with Apache License 2.0 | 5 votes |
private static Set<ImportCandidate> findJavaImportCandidates(FileObject fo, String packageName, String missingClass) { final Set<ImportCandidate> candidates = new HashSet<>(); final ClasspathInfo pathInfo = createClasspathInfo(fo); Set<ElementHandle<TypeElement>> typeNames = pathInfo.getClassIndex().getDeclaredTypes( missingClass, NameKind.SIMPLE_NAME, EnumSet.allOf(ClassIndex.SearchScope.class)); for (ElementHandle<TypeElement> typeName : typeNames) { ElementKind kind = typeName.getKind(); // Skip classes within the same package String pkgName = GroovyUtils.stripClassName(typeName.getQualifiedName()); if (packageName == null && pkgName == null) { // Probably both in default package continue; } if (packageName != null && packageName.equals(pkgName)) { continue; } if (kind == ElementKind.CLASS || kind == ElementKind.INTERFACE || kind == ElementKind.ANNOTATION_TYPE) { candidates.add(createImportCandidate(missingClass, typeName.getQualifiedName(), kind)); } } return candidates; }
Example 11
Source File: MethodFinder.java From FreeBuilder with Apache License 2.0 | 5 votes |
/** * Returns all methods, declared and inherited, on {@code type}, except those specified by * {@link Object}. * * <p>If method B overrides method A, only method B will be included in the return set. * Additionally, if methods A and B have the same signature, but are on unrelated interfaces, * one will be arbitrarily picked to be returned. */ public static <E extends Exception> ImmutableSet<ExecutableElement> methodsOn( TypeElement type, Elements elements, ErrorTypeHandling<E> errorTypeHandling) throws E { TypeElement objectType = elements.getTypeElement(Object.class.getCanonicalName()); Map<Signature, ExecutableElement> objectMethods = Maps.uniqueIndex( methodsIn(objectType.getEnclosedElements()), Signature::new); SetMultimap<Signature, ExecutableElement> methods = LinkedHashMultimap.create(); for (TypeElement supertype : getSupertypes(type, errorTypeHandling)) { for (ExecutableElement method : methodsIn(supertype.getEnclosedElements())) { Signature signature = new Signature(method); if (method.getEnclosingElement().equals(objectType)) { continue; // Skip methods specified by Object. } if (objectMethods.containsKey(signature) && method.getEnclosingElement().getKind() == ElementKind.INTERFACE && method.getModifiers().contains(Modifier.ABSTRACT) && elements.overrides(method, objectMethods.get(signature), type)) { continue; // Skip abstract methods on interfaces redelaring Object methods. } Iterator<ExecutableElement> iterator = methods.get(signature).iterator(); while (iterator.hasNext()) { ExecutableElement otherMethod = iterator.next(); if (elements.overrides(method, otherMethod, type) || method.getParameters().equals(otherMethod.getParameters())) { iterator.remove(); } } methods.put(signature, method); } } return ImmutableSet.copyOf(methods.values()); }
Example 12
Source File: CompilationUnit.java From netbeans with Apache License 2.0 | 5 votes |
private ClassNode createClassNode(String name, TypeElement typeElement) { ElementKind kind = typeElement.getKind(); if (kind == ElementKind.ANNOTATION_TYPE) { return createAnnotationType(name, typeElement); } else if (kind == ElementKind.INTERFACE) { return createInterfaceKind(name, typeElement); } else { return createClassType(name, typeElement); } }
Example 13
Source File: ShieldProcessor.java From RHub with Apache License 2.0 | 5 votes |
private void checkIfOK1(Element annotatedElement) { if (annotatedElement.getKind() != ElementKind.METHOD) { throw new IllegalStateException( String.format("Only methods can be annotated with @%s", ProxyTag.class.getSimpleName())); } if (annotatedElement.getEnclosingElement().getKind() != ElementKind.INTERFACE) { throw new IllegalStateException( String.format("Only Interfaces can contain annotation @%s", ProxyTag.class.getSimpleName())); } }
Example 14
Source File: Utils.java From netbeans with Apache License 2.0 | 5 votes |
static boolean isProvider(TypeElement type, AnnotationModelHelper helper) { if (type.getKind() != ElementKind.INTERFACE) { // don't consider interfaces if (helper.hasAnnotation(type.getAnnotationMirrors(), RestConstants.PROVIDER_ANNOTATION)) { // NOI18N return true; } } return false; }
Example 15
Source File: CallEjbCodeGenerator.java From netbeans with Apache License 2.0 | 5 votes |
private static boolean isEnable(FileObject srcFile, TypeElement typeElement) { Project project = FileOwnerQuery.getOwner(srcFile); if (project == null) { return false; } J2eeModuleProvider j2eeModuleProvider = project.getLookup ().lookup (J2eeModuleProvider.class); if (j2eeModuleProvider != null) { if (project.getLookup().lookup(EnterpriseReferenceContainer.class) == null) { return false; } String serverInstanceId = j2eeModuleProvider.getServerInstanceID(); if (serverInstanceId == null) { return true; } J2eePlatform platform = null; try { platform = Deployment.getDefault().getServerInstance(serverInstanceId).getJ2eePlatform(); } catch (InstanceRemovedException ex) { Logger.getLogger(CallEjbCodeGenerator.class.getName()).log(Level.FINE, null, ex); } if (platform == null) { return true; } if (!EjbSupport.getInstance(platform).isEjb31LiteSupported(platform) && !platform.getSupportedTypes().contains(J2eeModule.Type.EJB)) { return false; } } else { return false; } return ElementKind.INTERFACE != typeElement.getKind(); }
Example 16
Source File: CreateElement.java From netbeans with Apache License 2.0 | 5 votes |
private static ElementKind getClassType(Set<ElementKind> types) { if (types.contains(ElementKind.CLASS)) return ElementKind.CLASS; if (types.contains(ElementKind.ANNOTATION_TYPE)) return ElementKind.ANNOTATION_TYPE; if (types.contains(ElementKind.INTERFACE)) return ElementKind.INTERFACE; if (types.contains(ElementKind.ENUM)) return ElementKind.ENUM; return null; }
Example 17
Source File: Utils.java From netbeans with Apache License 2.0 | 5 votes |
static boolean isRestApplication(TypeElement type, AnnotationModelHelper helper) { boolean isRest = false; if (type != null && type.getKind() != ElementKind.INTERFACE) { // don't consider interfaces if (helper.hasAnnotation(type.getAnnotationMirrors(), RestConstants.APPLICATION_PATH)) { // NOI18N isRest = true; } } return isRest; }
Example 18
Source File: JavaUtils.java From netbeans with Apache License 2.0 | 5 votes |
public static String extractClassNameFromType(TypeMirror type){ if (type instanceof DeclaredType){ Element elem = ((DeclaredType)type).asElement(); if (elem.getKind() == ElementKind.CLASS || elem.getKind() == ElementKind.INTERFACE){ return ((TypeElement)elem).getQualifiedName().toString(); } } return null; }
Example 19
Source File: WSInjectiontargetQueryImplementation.java From netbeans with Apache License 2.0 | 5 votes |
public boolean isInjectionTarget(CompilationController controller, TypeElement typeElement) { if (controller == null || typeElement==null) { throw new NullPointerException("Passed null to WSInjectionTargetQueryImplementation.isInjectionTarget(CompilationController, TypeElement)"); // NOI18N } FileObject fo = controller.getFileObject(); Project project = FileOwnerQuery.getOwner(fo); if (ProjectUtil.isJavaEE5orHigher(project) && !isTomcatTargetServer(project) && !(ElementKind.INTERFACE==typeElement.getKind())) { List<? extends AnnotationMirror> annotations = typeElement.getAnnotationMirrors(); boolean found = false; for (AnnotationMirror m : annotations) { Name qualifiedName = ((TypeElement)m.getAnnotationType().asElement()).getQualifiedName(); if (qualifiedName.contentEquals("javax.jws.WebService")) { //NOI18N found = true; break; } if (qualifiedName.contentEquals("javax.jws.WebServiceProvider")) { //NOI18N found = true; break; } } if (found) return true; } return false; }
Example 20
Source File: BindDataSourceSubProcessor.java From kripton with Apache License 2.0 | 4 votes |
/** * Create DAO definition. * * @param schema * the schema * @param globalBeanElements * the global bean elements * @param globalDaoElements * the global dao elements * @param daoItem * the dao item */ protected void createSQLDaoDefinition(SQLiteDatabaseSchema schema, final Map<String, TypeElement> globalBeanElements, final Map<String, TypeElement> globalDaoElements, String daoItem) { Element daoElement = globalDaoElements.get(daoItem); if (daoElement.getKind() != ElementKind.INTERFACE) { String msg = String.format("Class %s: only interfaces can be annotated with @%s annotation", daoElement.getSimpleName().toString(), BindDao.class.getSimpleName()); throw (new InvalidKindForAnnotationException(msg)); } M2MEntity entity = M2MEntity.extractEntityManagedByDAO((TypeElement) daoElement); // add to current schema generated entities too for (GeneratedTypeElement genItem : this.generatedEntities) { if (genItem.getQualifiedName().equals(entity.getQualifiedName())) { schema.generatedEntities.add(genItem); } } boolean generated = daoElement.getAnnotation(BindGeneratedDao.class) != null; final SQLiteDaoDefinition currentDaoDefinition = new SQLiteDaoDefinition(schema, daoItem, (TypeElement) daoElement, entity.getClassName().toString(), generated); // content provider management BindContentProviderPath daoContentProviderPath = daoElement.getAnnotation(BindContentProviderPath.class); if (daoContentProviderPath != null) { currentDaoDefinition.contentProviderEnabled = true; currentDaoDefinition.contentProviderPath = daoContentProviderPath.path(); currentDaoDefinition.contentProviderTypeName = daoContentProviderPath.typeName(); if (StringUtils.isEmpty(currentDaoDefinition.contentProviderTypeName)) { Converter<String, String> convert = CaseFormat.UPPER_CAMEL.converterTo(CaseFormat.LOWER_UNDERSCORE); AssertKripton.assertTrue(currentDaoDefinition.getParent().contentProvider != null, "DAO '%s' has an inconsistent content provider definition, perhaps you forget to use @%s in data source interface?", currentDaoDefinition.getElement().getQualifiedName(), BindContentProvider.class.getSimpleName()); currentDaoDefinition.contentProviderTypeName = currentDaoDefinition .getParent().contentProvider.authority + "." + convert.convert(currentDaoDefinition.getSimpleEntityClassName()); } } // dao is associated to an entity is not contained in analyzed class // set. if (!globalBeanElements.containsKey(currentDaoDefinition.getEntityClassName()) && !isGeneratedEntity(currentDaoDefinition.getEntityClassName())) { throw (new InvalidBeanTypeException(currentDaoDefinition)); } schema.add(currentDaoDefinition); fillMethods(currentDaoDefinition, daoElement); // get @annotation associated to many 2 many relationship BindDaoMany2Many daoMany2Many = daoElement.getAnnotation(BindDaoMany2Many.class); // dao definition must have >0 method associated to query if (currentDaoDefinition.getCollection().size() == 0 && daoMany2Many == null) { throw (new DaoDefinitionWithoutAnnotatedMethodException(currentDaoDefinition)); } }