@Override public boolean accepts(@NotNull final PsiMethod method, final ProcessingContext context) { return method.getParameterList().getParametersCount() == paramCount; } });
private static boolean isNotValueMapping(@Nullable PsiMethod mappingMethod) { return mappingMethod == null || mappingMethod.getParameterList().getParametersCount() != 1; } }
public static boolean isGetter(@NotNull PsiMethod method) { if ( method.getParameterList().getParametersCount() != 0 ) { return false; } //TODO if we can use the AccessorNamingStrategy it would be awesome String methodName = method.getName(); return ( methodName.startsWith( "get" ) && !methodName.equals( "getClass" )) || methodName.startsWith( "is" ); }
public static boolean isSetter(@NotNull PsiMethod method) { if ( method.getParameterList().getParametersCount() != 1 ) { return false; } //TODO if we can use the AccessorNamingStrategy it would be awesome String methodName = method.getName(); return methodName.startsWith( "set" ); }
public static boolean isSimplePropertyGetter(@NotNull PsiMethod method) { return hasGetterName(method) && method.getParameterList().getParametersCount() == 0; }
public static boolean isSetterOrFluentSetter(@NotNull PsiMethod method, PsiType psiType) { if ( method.getParameterList().getParametersCount() != 1 ) { return false; } //TODO if we can use the AccessorNamingStrategy it would be awesome String methodName = method.getName(); return methodName.startsWith( "set" ) && methodName.length() > 3 || isFluentSetter( method, psiType ); }
/** * Extract all valid source parameters from the provided {@code mappingMethod} * * @param mappingMethod the mapping method * * @return all source parameters from the provided {@code mappingMethod} */ @NotNull public static PsiParameter[] getSourceParameters(@NotNull PsiMethod mappingMethod) { if ( mappingMethod.getParameterList().getParametersCount() == 0 ) { return PsiParameter.EMPTY_ARRAY; } return Stream.of( mappingMethod.getParameterList().getParameters() ) .filter( MapstructUtil::isValidSourceParameter ) .toArray( PsiParameter[]::new ); }
public static boolean areParametersErasureEqual(@NotNull PsiMethod method1, @NotNull PsiMethod method2) { if (method1.getParameterList().getParametersCount() != method2.getParameterList().getParametersCount()) return false; return areSignaturesErasureEqual(method1.getSignature(PsiSubstitutor.EMPTY), method2.getSignature(PsiSubstitutor.EMPTY)); }
public int getParameterCount(@NonNull PsiMethod method) { return method.getParameterList().getParametersCount(); }
public static boolean isLambdaFullyInferred(PsiLambdaExpression expression, PsiType functionalInterfaceType) { final boolean hasParams = expression.getParameterList().getParametersCount() > 0; if (hasParams || getFunctionalInterfaceReturnType(functionalInterfaceType) != PsiType.VOID) { //todo check that void lambdas without params check return !dependsOnTypeParams(functionalInterfaceType, functionalInterfaceType, expression); } return true; }
/** Checks if the supplied method is a public constructor with no parameters. */ public static boolean isPublicNullaryConstructor(PsiMethod method) { if (!method.isConstructor()) { return false; } if (method.getParameterList().getParametersCount() > 0) { return false; } PsiModifierList modifierList = method.getModifierList(); if (modifierList.hasModifierProperty(PsiModifier.PUBLIC)) { return true; } return false; } }
public void testCarMapperReferenceSourcePropertyInCarDto() { myFixture.configureByFile( "CarMapperReferenceSourceProperty.java" ); PsiElement reference = myFixture.getElementAtCaret(); assertThat( reference ) .isInstanceOfSatisfying( PsiMethod.class, method -> { assertThat( method.getName() ).isEqualTo( "getNumberOfSeats" ); assertThat( method.getPresentation() ).isNotNull(); assertThat( method.getPresentation().getPresentableText() ).isEqualTo( "getNumberOfSeats()" ); assertThat( method.getParameterList().getParametersCount() ).isEqualTo( 0 ); assertThat( method.getReturnType() ).isNotNull(); assertThat( method.getReturnType().getPresentableText() ).isEqualTo( "int" ); } ); }
public void testCarMapperReferenceBooleanSourceCar() { myFixture.configureByFile( "CarMapperReferenceBooleanSourceCar.java" ); PsiElement reference = myFixture.getElementAtCaret(); assertThat( reference ) .isInstanceOfSatisfying( PsiMethod.class, method -> { assertThat( method.getName() ).isEqualTo( "isFree" ); assertThat( method.getPresentation() ).isNotNull(); assertThat( method.getPresentation().getPresentableText() ).isEqualTo( "isFree()" ); assertThat( method.getParameterList().getParametersCount() ).isEqualTo( 0 ); assertThat( method.getReturnType() ).isNotNull(); assertThat( method.getReturnType().getPresentableText() ).isEqualTo( "boolean" ); } ); }
/** Returns true if the given type matches the given fully qualified type name */ public boolean parameterHasType( @Nullable PsiMethod method, int parameterIndex, @NonNull String typeName) { if (method == null) { return false; } PsiParameterList parameterList = method.getParameterList(); return parameterList.getParametersCount() > parameterIndex && typeMatches(parameterList.getParameters()[parameterIndex].getType(), typeName); }
public void testNestedFirstLevelReferenceTargetProperty() { myFixture.configureByFile( "NestedFirstLevelReferenceTargetProperty.java" ); PsiElement reference = myFixture.getElementAtCaret(); assertThat( reference ) .isInstanceOfSatisfying( PsiMethod.class, method -> { assertThat( method.getName() ).isEqualTo( "setMyDriver" ); assertThat( method.getPresentation() ).isNotNull(); assertThat( method.getPresentation().getPresentableText() ).isEqualTo( "setMyDriver(PersonDto)" ); assertThat( method.getParameterList().getParametersCount() ).isEqualTo( 1 ); assertThat( method.getReturnType() ).isNotNull(); assertThat( method.getReturnType().getPresentableText() ).isEqualTo( "void" ); PsiClass person = PsiTreeUtil.getParentOfType( method, PsiClass.class ); assertThat( person ).isNotNull(); assertThat( person.getName() ).isEqualTo( "CarDto" ); } ); }
public void testNestedSecondLevelReferenceTargetProperty() { myFixture.configureByFile( "NestedSecondLevelReferenceTargetProperty.java" ); PsiElement reference = myFixture.getElementAtCaret(); assertThat( reference ) .isInstanceOfSatisfying( PsiMethod.class, method -> { assertThat( method.getName() ).isEqualTo( "setName" ); assertThat( method.getPresentation() ).isNotNull(); assertThat( method.getPresentation().getPresentableText() ).isEqualTo( "setName(String)" ); assertThat( method.getParameterList().getParametersCount() ).isEqualTo( 1 ); assertThat( method.getReturnType() ).isNotNull(); assertThat( method.getReturnType().getPresentableText() ).isEqualTo( "void" ); PsiClass person = PsiTreeUtil.getParentOfType( method, PsiClass.class ); assertThat( person ).isNotNull(); assertThat( person.getName() ).isEqualTo( "PersonDto" ); } ); }
public void testNestedFirstLevelReferenceSourceProperty() { myFixture.configureByFile( "NestedFirstLevelReferenceSourceProperty.java" ); PsiElement reference = myFixture.getElementAtCaret(); assertThat( reference ) .isInstanceOfSatisfying( PsiMethod.class, method -> { assertThat( method.getName() ).isEqualTo( "getDriver" ); assertThat( method.getPresentation() ).isNotNull(); assertThat( method.getPresentation().getPresentableText() ).isEqualTo( "getDriver()" ); assertThat( method.getParameterList().getParametersCount() ).isEqualTo( 0 ); assertThat( method.getReturnType() ).isNotNull(); assertThat( method.getReturnType().getPresentableText() ).isEqualTo( "Person" ); PsiClass person = PsiTreeUtil.getParentOfType( method, PsiClass.class ); assertThat( person ).isNotNull(); assertThat( person.getName() ).isEqualTo( "Car" ); } ); }
public void testNestedSecondLevelReferenceSourceProperty() { myFixture.configureByFile( "NestedSecondLevelReferenceSourceProperty.java" ); PsiElement reference = myFixture.getElementAtCaret(); assertThat( reference ) .isInstanceOfSatisfying( PsiMethod.class, method -> { assertThat( method.getName() ).isEqualTo( "getName" ); assertThat( method.getPresentation() ).isNotNull(); assertThat( method.getPresentation().getPresentableText() ).isEqualTo( "getName()" ); assertThat( method.getParameterList().getParametersCount() ).isEqualTo( 0 ); assertThat( method.getReturnType() ).isNotNull(); assertThat( method.getReturnType().getPresentableText() ).isEqualTo( "String" ); PsiClass person = PsiTreeUtil.getParentOfType( method, PsiClass.class ); assertThat( person ).isNotNull(); assertThat( person.getName() ).isEqualTo( "Person" ); } ); }
@Override public void visitMethod(@NonNull JavaContext context, @Nullable JavaElementVisitor visitor, @NonNull PsiMethodCallExpression call, @NonNull PsiMethod method) { if (context.getEvaluator().isMemberInClass(method, TYPE_STRING)) { String name = method.getName(); if (name.equals(FORMAT_METHOD)) { checkFormat(context, method, call); } else if (method.getParameterList().getParametersCount() == 0) { Location location = context.getNameLocation(call); String message = String.format( "Implicitly using the default locale is a common source of bugs: " + "Use `%1$s(Locale)` instead. For strings meant to be internal " + "use `Locale.ROOT`, otherwise `Locale.getDefault()`.", name); context.report(STRING_LOCALE, call, location, message); } } }
@Override public void visitMethod(@NonNull JavaContext context, @Nullable JavaElementVisitor visitor, @NonNull PsiMethodCallExpression call, @NonNull PsiMethod method) { JavaEvaluator evaluator = context.getEvaluator(); if (!evaluator.isMemberInSubClassOf(method, TEXT_VIEW_CLS, false)) { return; } if (method.getParameterList().getParametersCount() > 0 && evaluator.parameterHasType(method, 0, CHAR_SEQUENCE_CLS)) { checkNode(context, call.getArgumentList().getExpressions()[0]); } }