-
-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathTargetPropertyMappedMoreThanOnce.java
More file actions
156 lines (120 loc) · 4.02 KB
/
TargetPropertyMappedMoreThanOnce.java
File metadata and controls
156 lines (120 loc) · 4.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/*
* Copyright MapStruct Authors.
*
* Licensed under the Apache License version 2.0, available at https://www.apache.org/licenses/LICENSE-2.0
*/
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
class Target {
private String testName;
public String getTestName() {
return testName;
}
public void setTestName(String testName) {
this.testName = testName;
}
}
class Source {
private String name;
private String lastName;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
class ComplexSource {
private Source source;
private Target target;
public Source getSource() {
return source;
}
public void setSource(Source source) {
this.source = source;
}
public Target getTarget() {
return target;
}
public void setTarget(Target target) {
this.target = target;
}
}
class ComplexTarget {
private String testName;
private String name;
private String lastName;
public String getTestName() {
return testName;
}
public void setTestName(String testName) {
this.testName = testName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
@Retention(RetentionPolicy.CLASS)
@Mapping(target = "testName", source = "name")
@interface MyMappingAnnotation {
}
@Mapper
interface TargetMappedMoreThanOnceByMappingAnnotationMapper {
@Mapping(target = <error descr="Target property 'testName' must not be mapped more than once.">"testName"</error>, source = "name")
@Mapping(target = <error descr="Target property 'testName' must not be mapped more than once.">"testName"</error>, source = "lastName")
Target map(Source source);
}
@Mapper
interface TargetMappedMoreThanOnceByMappingsAnnotationsMapper {
@Mappings({
@Mapping(target = <error descr="Target property 'testName' must not be mapped more than once.">"testName"</error>, source = "name"),
@Mapping(target = <error descr="Target property 'testName' must not be mapped more than once.">"testName"</error>, source = "lastName")
})
Target map(Source source);
}
@Mapper
interface TargetMappedMoreThanOnceByMappingsAnnotationsAndMappingAnnotationMapper {
@Mapping(target = <error descr="Target property 'testName' must not be mapped more than once.">"testName"</error>, source = "name")
@Mappings({
@Mapping(target = <error descr="Target property 'testName' must not be mapped more than once.">"testName"</error>, source = "lastName")
})
Target map(Source source);
}
@Mapper
interface TargetMappedMoreThanOnceByMyMappingAnnotationAndMappingAnnotationMapper {
@Mapping(target = <error descr="Target property 'testName' must not be mapped more than once.">"testName"</error>, source = "lastName")
<error descr="Target property 'testName' must not be mapped more than once.">@MyMappingAnnotation</error>
Target map(Source source);
}
@Mapper
interface TargetMappedMoreThanOnceByMyMappingAnnotationAndMappingsAnnotationMapper {
@Mappings({
@Mapping(target = <error descr="Target property 'testName' must not be mapped more than once.">"testName"</error>, source = "lastName")
})
<error descr="Target property 'testName' must not be mapped more than once.">@MyMappingAnnotation</error>
Target map(Source source);
}
@Mapper
interface MultipleTargetDotMapper {
@Mapping(target = ".", source = "source")
@Mapping(target = ".", source = "target")
ComplexTarget map(ComplexSource source);
}