public TypeMirror createWithWildcard(Class<?> clazz) { return createWithWildcard(clazz.getCanonicalName()); }
private boolean isCookieCollection(DeclaredType type) { TypeMirror collectionType = utils.createWithWildcard(Collection.class); Optional<TypeMirror> typeArg = extractCollectionTypeArg(type); return utils.getTypes().isAssignable(type, collectionType) && typeArg.isPresent() && isType(typeArg.get()) && asTypeElement(typeArg.get()).getQualifiedName().contentEquals(Cookie.class.getCanonicalName()); }
private boolean isGwtEventType(Element element, TypeMirror typeMirror) { return hasModifiers(Modifier.PUBLIC, Modifier.STATIC).apply(element) && isType(typeMirror) && utils.getTypes().isSubtype(typeMirror, utils.createWithWildcard(Event.Type.class)) && asDeclared(typeMirror).getTypeArguments().size() == 1; }
private Type asGatekeeper(TypeElement element) { TypeMirror type = element.asType(); TypeMirror gatekeeperType = utils.createWithWildcard(Gatekeeper.class); if (!hasModifiers(Modifier.ABSTRACT).apply(element) && hasModifiers(Modifier.PUBLIC).apply(element) && utils.getTypes().isSubtype(type, gatekeeperType)) { return new Type(type); } logger.error().context(element) .log("Element annotated with @DefaultGatekeeper is invalid. It must be a public, non-abstract class " + "and implement Gatekeeper."); throw new UnableToProcessException(); }
private DeclaredType getEventTypeMirror() { if (eventTypeMirror == null) { List<? extends TypeMirror> parameterTypes = asExecutable(element.asType()).getParameterTypes(); if (parameterTypes.size() != 1) { throwInvalidProxyMethodArguments(); } TypeMirror parameterType = parameterTypes.get(0); TypeMirror genericEventType = utils.createWithWildcard(Event.class); if (!utils.getTypes().isAssignable(parameterType, genericEventType)) { throwInvalidProxyMethodArguments(); } eventTypeMirror = asDeclared(parameterType); } return eventTypeMirror; }