private static void collectSuperParameters(LinkedHashSet<PsiModifierListOwner> result, @NotNull PsiParameter parameter) { PsiElement scope = parameter.getDeclarationScope(); if (!(scope instanceof PsiMethod)) { return; } PsiMethod method = (PsiMethod)scope; PsiElement parent = parameter.getParent(); if (!(parent instanceof PsiParameterList)) { return; } int index = ((PsiParameterList)parent).getParameterIndex(parameter); for (PsiMethod superMethod : getSuperAnnotationOwners(method)) { PsiParameter[] superParameters = superMethod.getParameterList().getParameters(); if (index < superParameters.length) { result.add(superParameters[index]); } } }
/** * Tests that {@Link EndpointPsiElementVisitor#hasTransformer} returns false for a PsiParameter * whose containing class does not specify a transformer. */ public void testHasTransformer_ParameterWithoutTransformer() { initializePsiClass(false, false); mockPsiMethod = mock(PsiMethod.class); when(mockPsiMethod.getParent()).thenReturn(mockPsiClass); mockPsiParameter = mock(PsiParameter.class); when(mockPsiParameter.getParent()).thenReturn(mockPsiMethod); MockitoAnnotations.initMocks(this); EndpointPsiElementVisitor endpointPsiElementVisitor = new EndpointPsiElementVisitor(); Assert.assertFalse(endpointPsiElementVisitor.hasTransformer(mockPsiParameter)); } }
PsiMethod method = (PsiMethod)scope; PsiClass aClass = method.getContainingClass(); PsiElement parent = parameter.getParent(); if (aClass != null && parent instanceof PsiParameterList) { int index = ((PsiParameterList)parent).getParameterIndex(parameter);