Class ElementUtils
- java.lang.Object
-
- com.oracle.truffle.dsl.processor.java.ElementUtils
-
public class ElementUtils extends java.lang.Object
THIS IS NOT PUBLIC API.
-
-
Constructor Summary
Constructors Constructor Description ElementUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static javax.lang.model.type.TypeMirror
boxType(ProcessorContext context, javax.lang.model.type.TypeMirror primitiveType)
static boolean
canThrowType(java.util.List<? extends javax.lang.model.type.TypeMirror> thrownTypes, javax.lang.model.type.TypeMirror exceptionType)
static java.util.List<javax.lang.model.element.AnnotationMirror>
collectAnnotations(ProcessorContext context, javax.lang.model.element.AnnotationMirror markerAnnotation, java.lang.String elementName, javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
static int
compareByTypeHierarchy(javax.lang.model.type.TypeMirror t1, javax.lang.model.type.TypeMirror t2)
static java.lang.String
createConstantName(java.lang.String simpleName)
static java.lang.String
createReferenceName(javax.lang.model.element.ExecutableElement method)
static javax.lang.model.type.TypeMirror
eraseGenericTypes(javax.lang.model.type.TypeMirror type)
static javax.lang.model.type.TypeMirror
fillInGenericWildcards(javax.lang.model.type.TypeMirror type)
static javax.lang.model.element.AnnotationMirror
findAnnotationMirror(java.util.List<? extends javax.lang.model.element.AnnotationMirror> mirrors, javax.lang.model.element.TypeElement expectedAnnotationType)
static javax.lang.model.element.AnnotationMirror
findAnnotationMirror(javax.annotation.processing.ProcessingEnvironment processingEnv, java.util.List<? extends javax.lang.model.element.AnnotationMirror> mirrors, java.lang.Class<?> annotationClass)
static javax.lang.model.element.AnnotationMirror
findAnnotationMirror(javax.annotation.processing.ProcessingEnvironment processingEnv, javax.lang.model.element.Element element, java.lang.Class<?> annotationClass)
static javax.lang.model.element.ExecutableElement
findExecutableElement(javax.lang.model.type.DeclaredType type, java.lang.String name)
static javax.lang.model.element.TypeElement
findNearestEnclosingType(javax.lang.model.element.Element element)
static javax.lang.model.element.PackageElement
findPackageElement(javax.lang.model.element.Element type)
static javax.lang.model.element.TypeElement
findRootEnclosingType(javax.lang.model.element.Element element)
static javax.lang.model.element.VariableElement
findVariableElement(javax.lang.model.type.DeclaredType type, java.lang.String name)
static java.lang.String
firstLetterLowerCase(java.lang.String name)
static java.lang.String
firstLetterUpperCase(java.lang.String name)
static java.lang.String
fixECJBinaryNameIssue(java.lang.String name)
static javax.lang.model.element.TypeElement
fromTypeMirror(javax.lang.model.type.TypeMirror mirror)
static <T> T
getAnnotationValue(java.lang.Class<T> expectedType, javax.lang.model.element.AnnotationMirror mirror, java.lang.String name)
static javax.lang.model.element.AnnotationValue
getAnnotationValue(javax.lang.model.element.AnnotationMirror mirror, java.lang.String name)
static <T> java.util.List<T>
getAnnotationValueList(java.lang.Class<T> expectedListType, javax.lang.model.element.AnnotationMirror mirror, java.lang.String name)
static java.util.List<javax.lang.model.type.TypeMirror>
getAssignableTypes(ProcessorContext context, javax.lang.model.type.TypeMirror type)
static javax.lang.model.type.TypeMirror
getCommonSuperType(ProcessorContext context, javax.lang.model.type.TypeMirror[] types)
static java.util.List<javax.lang.model.element.ExecutableElement>
getDeclaredMethodsInSuperTypes(javax.lang.model.element.TypeElement declaringElement, java.lang.String name, javax.lang.model.type.TypeMirror... params)
Gets the methods in the super type hierarchy (excluding interfaces) that are overridden by a method in a subtype.static java.lang.String
getDeclaredName(javax.lang.model.type.DeclaredType element, boolean includeTypeVariables)
static javax.lang.model.type.DeclaredType
getDeclaredType(javax.lang.model.element.TypeElement typeElem, javax.lang.model.type.TypeMirror... typeArgs)
static java.util.List<javax.lang.model.element.TypeElement>
getDeclaredTypes(javax.lang.model.element.TypeElement element)
static java.util.List<javax.lang.model.element.TypeElement>
getDirectSuperTypes(javax.lang.model.element.TypeElement element)
static java.util.List<javax.lang.model.element.Element>
getElementHierarchy(javax.lang.model.element.Element e)
static java.lang.String
getEnclosedQualifiedName(javax.lang.model.type.DeclaredType mirror)
static java.lang.String
getPackageName(javax.lang.model.element.TypeElement element)
static java.lang.String
getPackageName(javax.lang.model.type.TypeMirror mirror)
static java.lang.String
getQualifiedName(javax.lang.model.element.TypeElement element)
static java.lang.String
getQualifiedName(javax.lang.model.type.TypeMirror mirror)
static java.util.List<java.lang.String>
getQualifiedSuperTypeNames(javax.lang.model.element.TypeElement element)
static java.lang.String
getReadableSignature(javax.lang.model.element.ExecutableElement method)
static java.lang.String
getSimpleName(javax.lang.model.element.TypeElement element)
static java.lang.String
getSimpleName(javax.lang.model.type.TypeMirror mirror)
static javax.lang.model.element.TypeElement
getSuperType(javax.lang.model.element.TypeElement element)
Gets the element representing the super class of a given type element.static java.util.List<javax.lang.model.element.TypeElement>
getSuperTypes(javax.lang.model.element.TypeElement element)
static javax.lang.model.type.TypeMirror
getType(javax.annotation.processing.ProcessingEnvironment processingEnv, java.lang.Class<?> element)
static java.lang.String
getTypeId(javax.lang.model.type.TypeMirror mirror)
static java.lang.String
getUniqueIdentifier(javax.lang.model.type.TypeMirror typeMirror)
static javax.lang.model.element.Modifier
getVisibility(java.util.Set<javax.lang.model.element.Modifier> modifier)
static boolean
hasError(javax.lang.model.type.TypeMirror mirror)
static boolean
isAssignable(javax.lang.model.type.TypeMirror from, javax.lang.model.type.TypeMirror to)
static boolean
isDeclaredMethodInSuperType(javax.lang.model.element.TypeElement element, java.lang.String name, javax.lang.model.type.TypeMirror[] params)
static boolean
isEnclosedIn(javax.lang.model.element.Element enclosedIn, javax.lang.model.element.Element element)
static boolean
isObject(javax.lang.model.type.TypeMirror actualType)
static boolean
isPrimitive(javax.lang.model.type.TypeMirror mirror)
static boolean
isSubtype(javax.lang.model.type.TypeMirror type1, javax.lang.model.type.TypeMirror type2)
static boolean
isTopLevelClass(javax.lang.model.type.TypeMirror importType)
static boolean
isVoid(javax.lang.model.type.TypeMirror mirror)
static java.util.Set<javax.lang.model.element.Modifier>
modifiers(javax.lang.model.element.Modifier... modifier)
static boolean
needsCastTo(javax.lang.model.type.TypeMirror sourceType, javax.lang.model.type.TypeMirror targetType)
static java.lang.String
printException(java.lang.Throwable e)
static boolean
typeEquals(javax.lang.model.type.TypeMirror type1, javax.lang.model.type.TypeMirror type2)
-
-
-
Method Detail
-
getType
public static javax.lang.model.type.TypeMirror getType(javax.annotation.processing.ProcessingEnvironment processingEnv, java.lang.Class<?> element)
-
findExecutableElement
public static javax.lang.model.element.ExecutableElement findExecutableElement(javax.lang.model.type.DeclaredType type, java.lang.String name)
-
needsCastTo
public static boolean needsCastTo(javax.lang.model.type.TypeMirror sourceType, javax.lang.model.type.TypeMirror targetType)
-
createReferenceName
public static java.lang.String createReferenceName(javax.lang.model.element.ExecutableElement method)
-
findVariableElement
public static javax.lang.model.element.VariableElement findVariableElement(javax.lang.model.type.DeclaredType type, java.lang.String name)
-
boxType
public static javax.lang.model.type.TypeMirror boxType(ProcessorContext context, javax.lang.model.type.TypeMirror primitiveType)
-
getDeclaredType
public static javax.lang.model.type.DeclaredType getDeclaredType(javax.lang.model.element.TypeElement typeElem, javax.lang.model.type.TypeMirror... typeArgs)
-
collectAnnotations
public static java.util.List<javax.lang.model.element.AnnotationMirror> collectAnnotations(ProcessorContext context, javax.lang.model.element.AnnotationMirror markerAnnotation, java.lang.String elementName, javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
-
getCommonSuperType
public static javax.lang.model.type.TypeMirror getCommonSuperType(ProcessorContext context, javax.lang.model.type.TypeMirror[] types)
-
getReadableSignature
public static java.lang.String getReadableSignature(javax.lang.model.element.ExecutableElement method)
-
hasError
public static boolean hasError(javax.lang.model.type.TypeMirror mirror)
-
isSubtype
public static boolean isSubtype(javax.lang.model.type.TypeMirror type1, javax.lang.model.type.TypeMirror type2)
-
isAssignable
public static boolean isAssignable(javax.lang.model.type.TypeMirror from, javax.lang.model.type.TypeMirror to)
-
modifiers
public static java.util.Set<javax.lang.model.element.Modifier> modifiers(javax.lang.model.element.Modifier... modifier)
-
getTypeId
public static java.lang.String getTypeId(javax.lang.model.type.TypeMirror mirror)
-
getSimpleName
public static java.lang.String getSimpleName(javax.lang.model.element.TypeElement element)
-
getSimpleName
public static java.lang.String getSimpleName(javax.lang.model.type.TypeMirror mirror)
-
getDeclaredName
public static java.lang.String getDeclaredName(javax.lang.model.type.DeclaredType element, boolean includeTypeVariables)
-
fixECJBinaryNameIssue
public static java.lang.String fixECJBinaryNameIssue(java.lang.String name)
-
getQualifiedName
public static java.lang.String getQualifiedName(javax.lang.model.element.TypeElement element)
-
getQualifiedName
public static java.lang.String getQualifiedName(javax.lang.model.type.TypeMirror mirror)
-
isVoid
public static boolean isVoid(javax.lang.model.type.TypeMirror mirror)
-
isPrimitive
public static boolean isPrimitive(javax.lang.model.type.TypeMirror mirror)
-
getQualifiedSuperTypeNames
public static java.util.List<java.lang.String> getQualifiedSuperTypeNames(javax.lang.model.element.TypeElement element)
-
getDeclaredTypes
public static java.util.List<javax.lang.model.element.TypeElement> getDeclaredTypes(javax.lang.model.element.TypeElement element)
-
isEnclosedIn
public static boolean isEnclosedIn(javax.lang.model.element.Element enclosedIn, javax.lang.model.element.Element element)
-
findRootEnclosingType
public static javax.lang.model.element.TypeElement findRootEnclosingType(javax.lang.model.element.Element element)
-
getElementHierarchy
public static java.util.List<javax.lang.model.element.Element> getElementHierarchy(javax.lang.model.element.Element e)
-
findNearestEnclosingType
public static javax.lang.model.element.TypeElement findNearestEnclosingType(javax.lang.model.element.Element element)
-
getDirectSuperTypes
public static java.util.List<javax.lang.model.element.TypeElement> getDirectSuperTypes(javax.lang.model.element.TypeElement element)
-
getAssignableTypes
public static java.util.List<javax.lang.model.type.TypeMirror> getAssignableTypes(ProcessorContext context, javax.lang.model.type.TypeMirror type)
-
getSuperType
public static javax.lang.model.element.TypeElement getSuperType(javax.lang.model.element.TypeElement element)
Gets the element representing the super class of a given type element.
-
getSuperTypes
public static java.util.List<javax.lang.model.element.TypeElement> getSuperTypes(javax.lang.model.element.TypeElement element)
-
getPackageName
public static java.lang.String getPackageName(javax.lang.model.element.TypeElement element)
-
getEnclosedQualifiedName
public static java.lang.String getEnclosedQualifiedName(javax.lang.model.type.DeclaredType mirror)
-
getPackageName
public static java.lang.String getPackageName(javax.lang.model.type.TypeMirror mirror)
-
createConstantName
public static java.lang.String createConstantName(java.lang.String simpleName)
-
fromTypeMirror
public static javax.lang.model.element.TypeElement fromTypeMirror(javax.lang.model.type.TypeMirror mirror)
-
getAnnotationValueList
public static <T> java.util.List<T> getAnnotationValueList(java.lang.Class<T> expectedListType, javax.lang.model.element.AnnotationMirror mirror, java.lang.String name)
-
getAnnotationValue
public static <T> T getAnnotationValue(java.lang.Class<T> expectedType, javax.lang.model.element.AnnotationMirror mirror, java.lang.String name)
-
getAnnotationValue
public static javax.lang.model.element.AnnotationValue getAnnotationValue(javax.lang.model.element.AnnotationMirror mirror, java.lang.String name)
-
printException
public static java.lang.String printException(java.lang.Throwable e)
-
findAnnotationMirror
public static javax.lang.model.element.AnnotationMirror findAnnotationMirror(javax.annotation.processing.ProcessingEnvironment processingEnv, javax.lang.model.element.Element element, java.lang.Class<?> annotationClass)
-
findAnnotationMirror
public static javax.lang.model.element.AnnotationMirror findAnnotationMirror(javax.annotation.processing.ProcessingEnvironment processingEnv, java.util.List<? extends javax.lang.model.element.AnnotationMirror> mirrors, java.lang.Class<?> annotationClass)
-
findAnnotationMirror
public static javax.lang.model.element.AnnotationMirror findAnnotationMirror(java.util.List<? extends javax.lang.model.element.AnnotationMirror> mirrors, javax.lang.model.element.TypeElement expectedAnnotationType)
-
findPackageElement
public static javax.lang.model.element.PackageElement findPackageElement(javax.lang.model.element.Element type)
-
firstLetterUpperCase
public static java.lang.String firstLetterUpperCase(java.lang.String name)
-
firstLetterLowerCase
public static java.lang.String firstLetterLowerCase(java.lang.String name)
-
isDeclaredMethodInSuperType
public static boolean isDeclaredMethodInSuperType(javax.lang.model.element.TypeElement element, java.lang.String name, javax.lang.model.type.TypeMirror[] params)
-
getDeclaredMethodsInSuperTypes
public static java.util.List<javax.lang.model.element.ExecutableElement> getDeclaredMethodsInSuperTypes(javax.lang.model.element.TypeElement declaringElement, java.lang.String name, javax.lang.model.type.TypeMirror... params)
Gets the methods in the super type hierarchy (excluding interfaces) that are overridden by a method in a subtype.- Parameters:
declaringElement
- the subtype element declaring the methodname
- the name of the methodparams
- the signature of the method
-
typeEquals
public static boolean typeEquals(javax.lang.model.type.TypeMirror type1, javax.lang.model.type.TypeMirror type2)
-
getUniqueIdentifier
public static java.lang.String getUniqueIdentifier(javax.lang.model.type.TypeMirror typeMirror)
-
compareByTypeHierarchy
public static int compareByTypeHierarchy(javax.lang.model.type.TypeMirror t1, javax.lang.model.type.TypeMirror t2)
-
canThrowType
public static boolean canThrowType(java.util.List<? extends javax.lang.model.type.TypeMirror> thrownTypes, javax.lang.model.type.TypeMirror exceptionType)
-
getVisibility
public static javax.lang.model.element.Modifier getVisibility(java.util.Set<javax.lang.model.element.Modifier> modifier)
-
isTopLevelClass
public static boolean isTopLevelClass(javax.lang.model.type.TypeMirror importType)
-
isObject
public static boolean isObject(javax.lang.model.type.TypeMirror actualType)
-
fillInGenericWildcards
public static javax.lang.model.type.TypeMirror fillInGenericWildcards(javax.lang.model.type.TypeMirror type)
-
eraseGenericTypes
public static javax.lang.model.type.TypeMirror eraseGenericTypes(javax.lang.model.type.TypeMirror type)
-
-