Skip to content

Commit be40513

Browse files
committed
#226: Filter internal methods and support methods from super class
1 parent 4eb96e8 commit be40513

File tree

4 files changed

+54
-6
lines changed

4 files changed

+54
-6
lines changed

src/main/java/org/mapstruct/intellij/codeinsight/references/MapstructMappingQualifiedByNameReference.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,9 @@ private Stream<PsiMethod> findAllNamedMethodsFromThisAndReferencedMappers(@NotNu
111111
return Stream.empty();
112112
}
113113

114-
Stream<PsiMethod> internalMethods = Stream.of( containingClass.getMethods() )
115-
.filter( MapstructUtil::isNamedMethod );
114+
Stream<PsiMethod> internalMethods = Stream.of( containingClass.getAllMethods() )
115+
.filter( MapstructUtil::isNamedMethod )
116+
.filter( m -> !m.hasModifierProperty( PsiModifier.PRIVATE ) );
116117

117118
Stream<PsiMethod> externalMethods = findNamedMethodsInUsedMappers( containingClass )
118119
.filter( method -> methodIsAccessibleFrom( method, containingClass ) );

src/test/java/org/mapstruct/intellij/completion/MappingQualifiedByNameCompletionTestCase.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,11 @@ private void assertAutoCompleteOfValidVisibilities() {
100100
.extracting( LookupElement::getLookupString )
101101
.containsExactlyInAnyOrder(
102102
"internalModifierPackagePrivate",
103-
"internalModifierPrivate",
104103
"internalModifierProtected",
105104
"internalModifierPublic",
105+
"superClassModifierPackagePrivate",
106+
"superClassModifierProtected",
107+
"superClassModifierPublic",
106108
"samePackageModifierPackagePrivate",
107109
"samePackageModifierPublic",
108110
"externalPackageModifierPublic"
@@ -117,9 +119,19 @@ private void assertAutoCompleteOfValidVisibilities() {
117119
"String",
118120
" CarMapper#internalModifierPackagePrivate(String)"
119121
),
120-
createMethod( "internalModifierPrivate", "String", " CarMapper#internalModifierPrivate(String)" ),
121122
createMethod( "internalModifierProtected", "String", " CarMapper#internalModifierProtected(String)" ),
122123
createMethod( "internalModifierPublic", "String", " CarMapper#internalModifierPublic(String)" ),
124+
createMethod(
125+
"superClassModifierPackagePrivate",
126+
"String",
127+
" BaseMapper#superClassModifierPackagePrivate(String)"
128+
),
129+
createMethod(
130+
"superClassModifierProtected",
131+
"String",
132+
" BaseMapper#superClassModifierProtected(String)"
133+
),
134+
createMethod( "superClassModifierPublic", "String", " BaseMapper#superClassModifierPublic(String)" ),
123135
createMethod(
124136
"samePackageModifierPackagePrivate",
125137
"String",

testData/completion/qualifiedbyname/MappingQualifiedByNameWithAllPossibleVisibilities.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@
1010
import org.mapstruct.Mapper;
1111
import org.mapstruct.Mapping;
1212
import org.mapstruct.Named;
13+
import org.mapstruct.ap.test.complex.BaseMapper;
1314
import org.mapstruct.ap.test.complex.SamePackageMapper;
1415
import org.mapstruct.helper.qualifiedbyname.external.ExternalMapper;
1516

1617
@Mapper(uses = { ExternalMapper.class, SamePackageMapper.class })
17-
public interface CarMapper {
18+
public abstract class CarMapper extends BaseMapper {
1819

1920
@Mapping(target = "make", qualifiedByName = "<caret>")
20-
CarDto carToCarDto(Car car);
21+
public abstract CarDto carToCarDto(Car car);
2122

2223
@Named("internalModifierPackagePrivate")
2324
String internalModifierPackagePrivate(String value) {
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright MapStruct Authors.
3+
*
4+
* Licensed under the Apache License version 2.0, available at https://www.apache.org/licenses/LICENSE-2.0
5+
*/
6+
package org.mapstruct.ap.test.complex;
7+
8+
import org.mapstruct.Mapper;
9+
import org.mapstruct.Named;
10+
11+
@Mapper
12+
public abstract class BaseMapper {
13+
14+
@Named("superClassModifierPackagePrivate")
15+
String superClassModifierPackagePrivate(String value) {
16+
return "";
17+
}
18+
19+
@Named("superClassModifierPrivate")
20+
private String superClassModifierPrivate(String value) {
21+
return "";
22+
}
23+
24+
@Named("superClassModifierProtected")
25+
protected String superClassModifierProtected(String value) {
26+
return "";
27+
}
28+
29+
@Named("superClassModifierPublic")
30+
public String superClassModifierPublic(String value) {
31+
return "";
32+
}
33+
34+
}

0 commit comments

Comments
 (0)