public static Collection<DeclaredType> collectInterfaces(TypeElement type) { @SuppressWarnings({"unchecked"}) Collection<DeclaredType> interfaces = (Collection<DeclaredType>) type.getInterfaces(); for (TypeMirror interfaceType : type.getInterfaces()) { interfaces.addAll(collectInterfaces(getDeclaration(interfaceType))); } return interfaces; }
public static TypeElement getDeclaringClassMethod(TypeMirror theClass, String methodName, TypeMirror[] args) { return getDeclaringClassMethod(getDeclaration(theClass), methodName, args); }
@Override public TypeMirror getHolderValueType(TypeMirror type) { return TypeModeler.getHolderValueType(type, defHolderElement, processingEnv); }
public static VariableElement getValueMember(TypeMirror classType) { return getValueMember(getDeclaration(classType)); }
public static TypeMirror getHolderValueType(TypeMirror type, TypeElement defHolder, ProcessingEnvironment env) { TypeElement typeElement = getDeclaration(type); if (typeElement == null) return null; if (isSubElement(typeElement, defHolder)) { if (type.getKind().equals(TypeKind.DECLARED)) { Collection<? extends TypeMirror> argTypes = ((DeclaredType) type).getTypeArguments(); if (argTypes.size() == 1) { return argTypes.iterator().next(); } else if (argTypes.isEmpty()) { VariableElement member = getValueMember(typeElement); if (member != null) { return member.asType(); } } } } return null; }
public static boolean isSubclass(TypeElement subType, TypeElement superType, ProcessingEnvironment env) { return !subType.equals(superType) && isSubElement(subType, superType); }
@Override public boolean isRemote(TypeElement typeElement) { return TypeModeler.isRemote(typeElement); }
@Override public boolean isServiceException(TypeMirror typeMirror) { return processingEnv.getTypeUtils().isSubtype(typeMirror, exceptionElement) && !processingEnv.getTypeUtils().isSubtype(typeMirror, runtimeExceptionElement) && !TypeModeler.isRemoteException(processingEnv, typeMirror); }
public static VariableElement getValueMember(TypeElement type) { VariableElement member = null; for (VariableElement field : ElementFilter.fieldsIn(type.getEnclosedElements())) { if ("value".equals(field.getSimpleName().toString())) { member = field; break; } } if (member == null && type.getKind().equals(ElementKind.CLASS)) member = getValueMember(type.getSuperclass()); return member; }
public static boolean isSubclass(String subTypeName, String superTypeName, ProcessingEnvironment env) { return isSubclass(env.getElementUtils().getTypeElement(subTypeName), env.getElementUtils().getTypeElement(superTypeName), env); }
public static TypeElement getDeclaringClassMethod(TypeElement theClass, String methodName, TypeMirror[] args) { TypeElement retClass = null; if (theClass.getKind().equals(ElementKind.CLASS)) { TypeMirror superClass = theClass.getSuperclass(); if (!superClass.getKind().equals(TypeKind.NONE)) retClass = getDeclaringClassMethod(superClass, methodName, args); } if (retClass == null) { for (TypeMirror interfaceType : theClass.getInterfaces()) { retClass = getDeclaringClassMethod(interfaceType, methodName, args); } } if (retClass == null) { Collection<? extends ExecutableElement> methods = ElementFilter.methodsIn(theClass.getEnclosedElements()); for (ExecutableElement method : methods) { if (method.getSimpleName().toString().equals(methodName)) { retClass = theClass; break; } } } return retClass; }
public static TypeMirror getHolderValueType(TypeMirror type, TypeElement defHolder, ProcessingEnvironment env) { TypeElement typeElement = getDeclaration(type); if (typeElement == null) return null; if (isSubElement(typeElement, defHolder)) { if (type.getKind().equals(TypeKind.DECLARED)) { Collection<? extends TypeMirror> argTypes = ((DeclaredType) type).getTypeArguments(); if (argTypes.size() == 1) { return argTypes.iterator().next(); } else if (argTypes.isEmpty()) { VariableElement member = getValueMember(typeElement); if (member != null) { return member.asType(); } } } } return null; }
public static VariableElement getValueMember(TypeMirror classType) { return getValueMember(getDeclaration(classType)); }
public static boolean isSubclass(TypeElement subType, TypeElement superType, ProcessingEnvironment env) { return !subType.equals(superType) && isSubElement(subType, superType); }
@Override public boolean isRemote(TypeElement typeElement) { return TypeModeler.isRemote(typeElement); }
@Override public boolean isServiceException(TypeMirror typeMirror) { return processingEnv.getTypeUtils().isSubtype(typeMirror, exceptionElement) && !processingEnv.getTypeUtils().isSubtype(typeMirror, runtimeExceptionElement) && !TypeModeler.isRemoteException(processingEnv, typeMirror); }
public static VariableElement getValueMember(TypeElement type) { VariableElement member = null; for (VariableElement field : ElementFilter.fieldsIn(type.getEnclosedElements())) { if ("value".equals(field.getSimpleName().toString())) { member = field; break; } } if (member == null && type.getKind().equals(ElementKind.CLASS)) member = getValueMember(type.getSuperclass()); return member; }
public static boolean isSubclass(String subTypeName, String superTypeName, ProcessingEnvironment env) { return isSubclass(env.getElementUtils().getTypeElement(subTypeName), env.getElementUtils().getTypeElement(superTypeName), env); }
public static TypeElement getDeclaringClassMethod(TypeElement theClass, String methodName, TypeMirror[] args) { TypeElement retClass = null; if (theClass.getKind().equals(ElementKind.CLASS)) { TypeMirror superClass = theClass.getSuperclass(); if (!superClass.getKind().equals(TypeKind.NONE)) retClass = getDeclaringClassMethod(superClass, methodName, args); } if (retClass == null) { for (TypeMirror interfaceType : theClass.getInterfaces()) { retClass = getDeclaringClassMethod(interfaceType, methodName, args); } } if (retClass == null) { Collection<? extends ExecutableElement> methods = ElementFilter.methodsIn(theClass.getEnclosedElements()); for (ExecutableElement method : methods) { if (method.getSimpleName().toString().equals(methodName)) { retClass = theClass; break; } } } return retClass; }
public static TypeMirror getHolderValueType(TypeMirror type, TypeElement defHolder, ProcessingEnvironment env) { TypeElement typeElement = getDeclaration(type); if (typeElement == null) return null; if (isSubElement(typeElement, defHolder)) { if (type.getKind().equals(TypeKind.DECLARED)) { Collection<? extends TypeMirror> argTypes = ((DeclaredType) type).getTypeArguments(); if (argTypes.size() == 1) { return argTypes.iterator().next(); } else if (argTypes.isEmpty()) { VariableElement member = getValueMember(typeElement); if (member != null) { return member.asType(); } } } } return null; }