private void injectAnnotation(PsiElementFactory factory, PsiClass generateClass) { if (factory == null || generateClass == null) { return; } PsiModifierList modifierList = generateClass.getModifierList(); if (modifierList != null) { PsiElement firstChild = modifierList.getFirstChild(); Pattern pattern = Pattern.compile("@.*?JsonObject"); if (firstChild != null && !pattern.matcher(firstChild.getText()).find()) { PsiAnnotation annotationFromText = factory.createAnnotationFromText("@com.bluelinelabs.logansquare.annotation.JsonObject", generateClass); modifierList.addBefore(annotationFromText, firstChild); } } } }
private void injectAnnotation(PsiElementFactory factory, PsiClass generateClass) { if (factory == null || generateClass == null) { return; } PsiModifierList modifierList = generateClass.getModifierList(); PsiElement firstChild = modifierList.getFirstChild(); Pattern pattern = Pattern.compile("@.*?JsonIgnoreProperties"); if (firstChild != null && !pattern.matcher(firstChild.getText()).find()) { PsiAnnotation annotationFromText = factory.createAnnotationFromText("@com.fasterxml.jackson.annotation.JsonIgnoreProperties(ignoreUnknown = true)", generateClass); modifierList.addBefore(annotationFromText, firstChild); } } }
private void injectAutoAnnotation(PsiElementFactory factory, PsiClass cls) { PsiModifierList modifierList = cls.getModifierList(); if (modifierList != null) { PsiElement firstChild = modifierList.getFirstChild(); Pattern pattern = Pattern.compile("@.*?AutoValue"); if (firstChild != null && !pattern.matcher(firstChild.getText()).find()) { PsiAnnotation annotationFromText = factory.createAnnotationFromText("@com.google.auto.value.AutoValue", cls); modifierList.addBefore(annotationFromText, firstChild); } if (!modifierList.hasModifierProperty(PsiModifier.ABSTRACT)) { modifierList.setModifierProperty(PsiModifier.ABSTRACT, true); } } }
private void injectAnnotation(PsiElementFactory factory, PsiClass generateClass) { if (factory == null || generateClass == null) { return; } PsiModifierList modifierList = generateClass.getModifierList(); if (modifierList != null) { PsiElement firstChild = modifierList.getFirstChild(); Pattern pattern = Pattern.compile("@.*?NoArgsConstructor"); if (firstChild != null && !pattern.matcher(firstChild.getText()).find()) { PsiAnnotation annotationFromText = factory.createAnnotationFromText("@lombok.NoArgsConstructor", generateClass); modifierList.addBefore(annotationFromText, firstChild); } Pattern pattern2 = Pattern.compile("@.*?Data"); if (firstChild != null && !pattern2.matcher(firstChild.getText()).find()) { PsiAnnotation annotationFromText = factory.createAnnotationFromText("@lombok.Data", generateClass); modifierList.addBefore(annotationFromText, firstChild); } } }
public static boolean isAbstactClass(PsiClass aClass) { if (aClass == null || aClass.getModifierList() == null) { return false; } return aClass.getModifierList().hasModifierProperty("abstract"); }
public static boolean isAbstactClass(PsiClass aClass) { if (aClass == null || aClass.getModifierList() == null) { return false; } return aClass.getModifierList().hasModifierProperty("abstract"); }
public static boolean isAbstractClass(@NotNull PsiClass clazz) { PsiModifierList modifierList = clazz.getModifierList(); return modifierList != null && modifierList.hasModifierProperty(PsiModifier.ABSTRACT); }
PsiClass psiClass = ...; PsiModifierList psiModifierList = psiClass.getModifierList(); PsiAnnotation[] annotations = psiModifierList.getAnnotations();
private static void getPropInfosForTarget(PsiClass psiClass, Set<PropertyDetector.PropInfo> mSet) { final PsiModifierList list = psiClass.getModifierList(); if(list == null){ return; } for(PsiAnnotation ua : list.getAnnotations()){ if(!getPropInfosOfFields(ua, mSet)){ return; } } }
private static int getTargetApi(@NonNull PsiClass node) { while (node != null) { int targetApi = ApiDetector.getTargetApi(node.getModifierList()); if (targetApi != -1) { return targetApi; } node = PsiTreeUtil.getParentOfType(node, PsiClass.class, true); } return -1; } }
/** * NOTE: requires readAction, if not on the dispatch thread Get the public class in a file that is * annotated with a certain annotation. */ public static PsiClass getPublicAnnotatedClass(PsiJavaFile psiJavaFile, String annotationFqn) { PsiClass[] classes = psiJavaFile.getClasses(); for (PsiClass cls : classes) { PsiModifierList modifierList = cls.getModifierList(); if (modifierList != null && modifierList.hasExplicitModifier(PsiModifier.PUBLIC)) { if (AnnotationUtil.isAnnotated(cls, annotationFqn, false)) { return cls; } } } return null; }
public EcjPsiPackage(@NonNull EcjPsiManager manager, @NonNull PackageBinding binding) { super(manager, binding); mPackageBinding = binding; PsiModifierList modifierList = this; Binding pkgInfoBinding = binding.getTypeOrPackage(PACKAGE_INFO); if (pkgInfoBinding instanceof ReferenceBinding) { PsiClass pkgInfoClass = manager.findClass(pkgInfoBinding); if (pkgInfoClass != null) { modifierList = pkgInfoClass.getModifierList(); } } mModifierList = modifierList; }
@Nullable private String getResourceProperty(PsiMethod psiMethod) { PsiClass psiClass = psiMethod.getContainingClass(); PsiModifierList modifierList = psiClass.getModifierList(); String resource = null;
private void initializePsiClass(String apiResource, String apiClassResource) { PsiAnnotationMemberValue mockAnnotationMemberValue1 = mock(PsiAnnotationMemberValue.class); when(mockAnnotationMemberValue1.getText()).thenReturn(apiResource); PsiAnnotationMemberValue mockAnnotationMemberValue2 = mock(PsiAnnotationMemberValue.class); when(mockAnnotationMemberValue2.getText()).thenReturn(apiClassResource); // Mock @Api(resource = "") PsiAnnotation mockAnnotation1 = mock(PsiAnnotation.class); when(mockAnnotation1.getQualifiedName()).thenReturn(GctConstants.APP_ENGINE_ANNOTATION_API); when(mockAnnotation1.findAttributeValue("resource")).thenReturn(mockAnnotationMemberValue1); // Mock @ApiClass(resource = "") PsiAnnotation mockAnnotation2 = mock(PsiAnnotation.class); when(mockAnnotation2.getQualifiedName()) .thenReturn(GctConstants.APP_ENGINE_ANNOTATION_API_CLASS); when(mockAnnotation2.findAttributeValue("resource")).thenReturn(mockAnnotationMemberValue2); PsiAnnotation[] mockAnnotationsArray = {mockAnnotation1, mockAnnotation2}; PsiModifierList mockModifierList = mock(PsiModifierList.class); when(mockModifierList.getAnnotations()).thenReturn(mockAnnotationsArray); mockPsiClass = mock(PsiClass.class); when(mockPsiClass.getModifierList()).thenReturn(mockModifierList); } }
private void initializePsiClass(boolean hasApiTransformerApi, boolean hasTransformerAttribute) { PsiAnnotation mockTransformerAnnotation = null; PsiAnnotation mockApiAnnotation = null; if (hasApiTransformerApi) { // Mock @ApiTransformer(MyTransformer.class)) mockTransformerAnnotation = mock(PsiAnnotation.class); when(mockTransformerAnnotation.getQualifiedName()) .thenReturn(GctConstants.APP_ENGINE_ANNOTATION_API_TRANSFORMER); } if (hasTransformerAttribute) { PsiAnnotationMemberValue mockAnnotationMemberValue = mock(PsiAnnotationMemberValue.class); when(mockAnnotationMemberValue.getText()).thenReturn("MyTransformer.class"); // Mock @Api(transformer = MyTransformer.class) mockApiAnnotation = mock(PsiAnnotation.class); when(mockApiAnnotation.getQualifiedName()).thenReturn(GctConstants.APP_ENGINE_ANNOTATION_API); when(mockApiAnnotation.findAttributeValue(API_TRANSFORMER_ATTRIBUTE)) .thenReturn(mockAnnotationMemberValue); } PsiModifierList mockModifierList = mock(PsiModifierList.class); when(mockModifierList.findAnnotation(GctConstants.APP_ENGINE_ANNOTATION_API_TRANSFORMER)) .thenReturn(mockTransformerAnnotation); when(mockModifierList.findAnnotation(GctConstants.APP_ENGINE_ANNOTATION_API)) .thenReturn(mockApiAnnotation); mockPsiClass = mock(PsiClass.class); when(mockPsiClass.getModifierList()).thenReturn(mockModifierList); }
private static boolean isJavaScriptAnnotated(PsiClass clz) { while (clz != null) { PsiModifierList modifierList = clz.getModifierList(); if (modifierList != null && modifierList.findAnnotation(JAVASCRIPT_INTERFACE_CLS) != null) { return true; } for (PsiMethod method : clz.getMethods()) { if (method.getModifierList().findAnnotation(JAVASCRIPT_INTERFACE_CLS) != null) { return true; } } clz = clz.getSuperClass(); } return false; } }
PsiModifierList modifierList = psiClass.getModifierList(); if (modifierList == null) { return false;
if (isInReferenceList(innerClass.getModifierList(), member) || isInReferenceList(innerClass.getImplementsList(), member) || isInReferenceList(innerClass.getExtendsList(), member)) {
@NonNull private static PermissionHolder addLocalPermissions( @NonNull PermissionHolder permissions, @NonNull PsiElement node) { // Accumulate @RequirePermissions available in the local context PsiMethod method = PsiTreeUtil.getParentOfType(node, PsiMethod.class, true); if (method == null) { return permissions; } PsiAnnotation annotation = method.getModifierList().findAnnotation(PERMISSION_ANNOTATION); permissions = mergeAnnotationPermissions(permissions, annotation); PsiClass containingClass = method.getContainingClass(); if (containingClass != null) { PsiModifierList modifierList = containingClass.getModifierList(); if (modifierList != null) { annotation = modifierList.findAnnotation(PERMISSION_ANNOTATION); permissions = mergeAnnotationPermissions(permissions, annotation); } } return permissions; }
@Nullable private EcjPsiEnumConstantInitializer toEnumInitializer( @NonNull EcjPsiEnumConstant parent, @NonNull Expression expression) { if (!(expression instanceof QualifiedAllocationExpression)) { return null; } QualifiedAllocationExpression node = (QualifiedAllocationExpression) expression; TypeDeclaration declaration = node.anonymousType; if (declaration == null) { return null; } EcjPsiEnumConstantInitializer cls = new EcjPsiEnumConstantInitializer(mManager, declaration); parent.adoptChild(cls); cls.setRange(declaration.declarationSourceStart, declaration.declarationSourceEnd + 1); cls.setSuperClass(declaration.superclass); initializeClassBody(cls, declaration); PsiClass containingClass = parent.getContainingClass(); if (containingClass != null) { EcjPsiModifierList modifierList = (EcjPsiModifierList) containingClass.getModifierList(); if (modifierList != null) { modifierList.setModifiers(modifierList.getModifiers() & ~Modifier.FINAL); } } return cls; }