@Override PsiElement resolveInternal(@NotNull String value, @NotNull PsiMethod mappingMethod) { PsiParameter[] sourceParameters = MapstructUtil.getSourceParameters( mappingMethod ); if ( sourceParameters.length == 0 ) { return null; } if ( sourceParameters.length == 1 ) { PsiType parameterType = getParameterType( sourceParameters[0] ); PsiElement psiElement = parameterType == null ? null : resolveInternal( value, parameterType ); if ( psiElement != null ) { return psiElement; } } //TODO first do property mapping then parameter return Stream.of( sourceParameters ) .filter( psiParameter -> Objects.equals( psiParameter.getName(), value ) ) .findAny() .orElse( null ); }
@Override PsiElement resolveInternal(@NotNull String value, @NotNull PsiMethod mappingMethod) { PsiType relevantType = getRelevantType( mappingMethod ); if ( relevantType == null ) { return null; } PsiElement psiElement = resolveInternal( value, relevantType ); if ( psiElement != null ) { return psiElement; } return Stream.of( mappingMethod.getParameterList().getParameters() ) .filter( MapstructUtil::isMappingTarget ) .filter( psiParameter -> Objects.equals( psiParameter.getName(), value ) ) .findAny() .orElse( null ); }
@Nullable public static List<String> getParametersTypesList(PsiParameter[] psiParameters) { if (psiParameters.length == 0) { return null; } List<String> parameters = new ArrayList<>(); for (PsiParameter psiParameter : psiParameters) { if (psiParameter.getTypeElement() == null || psiParameter.getName() == null) { continue; } parameters.add(psiTypeToString(psiParameter.getTypeElement())); } return parameters; }
public static CharSequence buildParamsList(PsiMethod method) { StringBuilder builder = new StringBuilder(128); builder.append('('); boolean first = true; final PsiParameterList parameterList = method.getParameterList(); for (PsiParameter param : parameterList.getParameters()) { if (first) { first = false; } else { builder.append(", "); } builder.append(getTypeName(param.getType())) .append(' ') .append(param.getName()); } builder.append(')'); return builder.toString(); }
private static void reportError(@NonNull JavaContext context, PsiParameter viewHolder, PsiParameter parameter) { String variablePrefix = viewHolder.getName(); if (variablePrefix == null) { variablePrefix = "ViewHolder"; } String message = String.format("Do not treat position as fixed; only use immediately " + "and call `%1$s.getAdapterPosition()` to look it up later", variablePrefix); context.report(FIXED_POSITION, parameter, context.getLocation(parameter), message); }
@Nullable public static LinkedList<MethodConfig.Parameter> getParametersList(PsiParameter[] psiParameters) { if (psiParameters.length == 0) { return null; } LinkedList<MethodConfig.Parameter> parameters = new LinkedList<>(); for (PsiParameter psiParameter : psiParameters) { if (psiParameter.getTypeElement() == null || psiParameter.getName() == null) { continue; } parameters.add(new MethodConfig.Parameter(psiTypeToString(psiParameter.getTypeElement()), false)); } return parameters; }
@NotNull private static GetInfo buildInfo(PsiParameter parameter, List<PsiMethod> getMethods) { GetInfo info; info = new GetInfo(); info.setParamName(parameter.getName()); info.setGetMethods(getMethods); Map<String, PsiMethod> nameToMethodMaps = Maps.newHashMap(); for (PsiMethod getMethod : getMethods) { if (getMethod.getName().startsWith(IS)) { nameToMethodMaps.put( getMethod.getName().substring(2).toLowerCase(), getMethod); } else if (getMethod.getName().startsWith(GET)) { nameToMethodMaps.put( getMethod.getName().substring(3).toLowerCase(), getMethod); } } info.setNameToMethodMap(nameToMethodMaps); return info; }
@NotNull @Override public List<String> getMethodTypes(NavigatablePsiElement method) { if (!(method instanceof PsiMethod)) return super.getMethodTypes(method); PsiMethod psiMethod = (PsiMethod)method; PsiType returnType = psiMethod.getReturnType(); List<String> strings = new ArrayList<>(); strings.add(returnType == null ? "" : returnType.getCanonicalText()); for (PsiParameter parameter : psiMethod.getParameterList().getParameters()) { PsiType type = parameter.getType(); boolean generic = type instanceof PsiClassType && ((PsiClassType)type).resolve() instanceof PsiTypeParameter; strings.add((generic ? "<" : "") + type.getCanonicalText(false) + (generic ? ">" : "")); strings.add(parameter.getName()); } return strings; }
public void addAnnotationWithParameterName(@NotNull PsiParameter parameter) { String name = parameter.getName(); if (null != name) { AnnotationService.getInstance(parameter.getProject()).addAnnotation(parameter, Annotation.PARAM.withValue(new Annotation.StringValue(name))); } } }
paramInfo.setParamName(parameter.getName()); paramInfo.setRealType(wrapInfo.getParams().get(0).getRealName()); } else {
public void testTargetPropertyReferencesTargetParameter() { myFixture.configureByFile( "TargetPropertyReferencesTargetParameter.java" ); PsiElement reference = myFixture.getElementAtCaret(); assertThat( reference ) .isInstanceOfSatisfying( PsiParameter.class, parameter -> { assertThat( parameter.getName() ).isEqualTo( "target" ); assertThat( parameter.getType().getPresentableText() ).isEqualTo( "CarDto" ); PsiMethod mappingMethod = PsiTreeUtil.getParentOfType( parameter, PsiMethod.class ); assertThat( mappingMethod ).isNotNull(); assertThat( mappingMethod.getName() ).isEqualTo( "update" ); assertThat( mappingMethod.getReturnType() ).isNotNull(); assertThat( mappingMethod.getReturnType().getPresentableText() ).isEqualTo( "void" ); } ); }
public void testSourcePropertyReferencesSourceParameter() { myFixture.configureByFile( "SourcePropertyReferencesSourceParameter.java" ); PsiElement reference = myFixture.getElementAtCaret(); assertThat( reference ) .isInstanceOfSatisfying( PsiParameter.class, parameter -> { assertThat( parameter.getName() ).isEqualTo( "source" ); assertThat( parameter.getType().getPresentableText() ).isEqualTo( "Car" ); PsiMethod mappingMethod = PsiTreeUtil.getParentOfType( parameter, PsiMethod.class ); assertThat( mappingMethod ).isNotNull(); assertThat( mappingMethod.getName() ).isEqualTo( "map" ); assertThat( mappingMethod.getReturnType() ).isNotNull(); assertThat( mappingMethod.getReturnType().getPresentableText() ).isEqualTo( "CarDto" ); } ); }
PsiElement annotationParent = modifierList.getParent(); if (annotationParent instanceof PsiParameter) { nameValue = ((PsiParameter) annotationParent).getName();
String annotationString = "@Named(\"" + parameter.getName() + "\")"; PsiAnnotation annotation = JavaPsiFacade.getElementFactory(project)