mirror of
https://github.com/mapstruct/mapstruct.git
synced 2025-07-12 00:00:08 +08:00
#1001 Dotted error messages
This commit is contained in:
parent
ba20dc5700
commit
32738251e3
@ -598,15 +598,12 @@ public class BeanMappingMethod extends MappingMethod {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ForgedMethodHistory history = forgedMethod.getHistory();
|
ForgedMethodHistory history = forgedMethod.getHistory();
|
||||||
while ( history.getPrevHistory() != null ) {
|
|
||||||
history = history.getPrevHistory();
|
|
||||||
}
|
|
||||||
ctx.getMessager().printMessage(
|
ctx.getMessager().printMessage(
|
||||||
this.method.getExecutable(),
|
this.method.getExecutable(),
|
||||||
Message.PROPERTYMAPPING_MAPPING_NOT_FOUND,
|
Message.PROPERTYMAPPING_MAPPING_NOT_FOUND,
|
||||||
history.getSourceElement(),
|
history.createSourcePropertyErrorMessage(),
|
||||||
history.getTargetType(),
|
history.getTargetType(),
|
||||||
history.getTargetPropertyName(),
|
history.createTargetPropertyName(),
|
||||||
history.getTargetType(),
|
history.getTargetType(),
|
||||||
history.getSourceType()
|
history.getSourceType()
|
||||||
);
|
);
|
||||||
|
@ -185,7 +185,14 @@ public abstract class ContainerMappingMethodBuilder<B extends ContainerMappingMe
|
|||||||
method.getMapperConfiguration(),
|
method.getMapperConfiguration(),
|
||||||
method.getExecutable(),
|
method.getExecutable(),
|
||||||
method.getContextParameters(),
|
method.getContextParameters(),
|
||||||
forgedMethodHistory
|
new ForgedMethodHistory( forgedMethodHistory,
|
||||||
|
Strings.stubPropertyName( sourceRHS.getSourceType().getName() ),
|
||||||
|
Strings.stubPropertyName( targetType.getName() ),
|
||||||
|
sourceRHS.getSourceType(),
|
||||||
|
targetType,
|
||||||
|
false,
|
||||||
|
sourceRHS.getSourceErrorMessagePart()
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
Assignment assignment = new MethodReference(
|
Assignment assignment = new MethodReference(
|
||||||
|
@ -200,7 +200,14 @@ public class MapMappingMethod extends MappingMethod {
|
|||||||
method.getMapperConfiguration(),
|
method.getMapperConfiguration(),
|
||||||
method.getExecutable(),
|
method.getExecutable(),
|
||||||
method.getContextParameters(),
|
method.getContextParameters(),
|
||||||
history
|
new ForgedMethodHistory( history,
|
||||||
|
Strings.stubPropertyName( sourceRHS.getSourceType().getName() ),
|
||||||
|
Strings.stubPropertyName( targetType.getName() ),
|
||||||
|
sourceRHS.getSourceType(),
|
||||||
|
targetType,
|
||||||
|
true,
|
||||||
|
sourceRHS.getSourceErrorMessagePart()
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
Assignment assignment = new MethodReference(
|
Assignment assignment = new MethodReference(
|
||||||
|
@ -554,7 +554,7 @@ public class PropertyMapping extends ModelElement {
|
|||||||
private Assignment forgeWithElementMapping(Type sourceType, Type targetType, SourceRHS source,
|
private Assignment forgeWithElementMapping(Type sourceType, Type targetType, SourceRHS source,
|
||||||
ExecutableElement element, ContainerMappingMethodBuilder<?, ? extends ContainerMappingMethod> builder) {
|
ExecutableElement element, ContainerMappingMethodBuilder<?, ? extends ContainerMappingMethod> builder) {
|
||||||
|
|
||||||
ForgedMethod methodRef = prepareForgedMethod( sourceType, targetType, source, element );
|
ForgedMethod methodRef = prepareForgedMethod( sourceType, targetType, source, element, "[]" );
|
||||||
|
|
||||||
ContainerMappingMethod iterableMappingMethod = builder
|
ContainerMappingMethod iterableMappingMethod = builder
|
||||||
.mappingContext( ctx )
|
.mappingContext( ctx )
|
||||||
@ -591,7 +591,7 @@ public class PropertyMapping extends ModelElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ForgedMethod prepareForgedMethod(Type sourceType, Type targetType, SourceRHS source,
|
private ForgedMethod prepareForgedMethod(Type sourceType, Type targetType, SourceRHS source,
|
||||||
ExecutableElement element) {
|
ExecutableElement element, String suffix) {
|
||||||
String name = getName( sourceType, targetType );
|
String name = getName( sourceType, targetType );
|
||||||
name = Strings.getSaveVariableName( name, ctx.getNamesOfMappingsToGenerate() );
|
name = Strings.getSaveVariableName( name, ctx.getNamesOfMappingsToGenerate() );
|
||||||
|
|
||||||
@ -604,19 +604,14 @@ public class PropertyMapping extends ModelElement {
|
|||||||
config,
|
config,
|
||||||
element,
|
element,
|
||||||
method.getContextParameters(),
|
method.getContextParameters(),
|
||||||
new ForgedMethodHistory( getForgedMethodHistory( source ),
|
getForgedMethodHistory( source, suffix )
|
||||||
source.getSourceErrorMessagePart(),
|
|
||||||
targetPropertyName,
|
|
||||||
source.getSourceType(),
|
|
||||||
targetType
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Assignment forgeMapMapping(Type sourceType, Type targetType, SourceRHS source,
|
private Assignment forgeMapMapping(Type sourceType, Type targetType, SourceRHS source,
|
||||||
ExecutableElement element) {
|
ExecutableElement element) {
|
||||||
|
|
||||||
ForgedMethod methodRef = prepareForgedMethod( sourceType, targetType, source, element );
|
ForgedMethod methodRef = prepareForgedMethod( sourceType, targetType, source, element, "{}" );
|
||||||
|
|
||||||
MapMappingMethod.Builder builder = new MapMappingMethod.Builder();
|
MapMappingMethod.Builder builder = new MapMappingMethod.Builder();
|
||||||
MapMappingMethod mapMappingMethod = builder
|
MapMappingMethod mapMappingMethod = builder
|
||||||
@ -669,13 +664,17 @@ public class PropertyMapping extends ModelElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ForgedMethodHistory getForgedMethodHistory(SourceRHS sourceRHS) {
|
private ForgedMethodHistory getForgedMethodHistory(SourceRHS sourceRHS) {
|
||||||
|
return getForgedMethodHistory( sourceRHS, "" );
|
||||||
|
}
|
||||||
|
|
||||||
|
private ForgedMethodHistory getForgedMethodHistory(SourceRHS sourceRHS, String suffix) {
|
||||||
ForgedMethodHistory history = null;
|
ForgedMethodHistory history = null;
|
||||||
if ( method instanceof ForgedMethod ) {
|
if ( method instanceof ForgedMethod ) {
|
||||||
ForgedMethod method = (ForgedMethod) this.method;
|
ForgedMethod method = (ForgedMethod) this.method;
|
||||||
history = method.getHistory();
|
history = method.getHistory();
|
||||||
}
|
}
|
||||||
return new ForgedMethodHistory( history, sourceRHS.getSourceErrorMessagePart(),
|
return new ForgedMethodHistory( history, getSourceElementName() + suffix,
|
||||||
targetPropertyName, sourceRHS.getSourceType(), targetType
|
targetPropertyName + suffix, sourceRHS.getSourceType(), targetType, true, "property"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -694,6 +693,20 @@ public class PropertyMapping extends ModelElement {
|
|||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getSourceElementName() {
|
||||||
|
Parameter sourceParam = sourceReference.getParameter();
|
||||||
|
List<PropertyEntry> propertyEntries = sourceReference.getPropertyEntries();
|
||||||
|
if ( propertyEntries.isEmpty() ) {
|
||||||
|
return sourceParam.getName();
|
||||||
|
}
|
||||||
|
else if ( propertyEntries.size() == 1 ) {
|
||||||
|
PropertyEntry propertyEntry = propertyEntries.get( 0 );
|
||||||
|
return propertyEntry.getName();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return Strings.join( sourceReference.getElementNames(), "." );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class ConstantMappingBuilder extends MappingBuilderBase<ConstantMappingBuilder> {
|
public static class ConstantMappingBuilder extends MappingBuilderBase<ConstantMappingBuilder> {
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
package org.mapstruct.ap.internal.model.source;
|
package org.mapstruct.ap.internal.model.source;
|
||||||
|
|
||||||
import org.mapstruct.ap.internal.model.common.Type;
|
import org.mapstruct.ap.internal.model.common.Type;
|
||||||
|
import org.mapstruct.ap.internal.util.Strings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Keeps the context where the ForgedMethod is generated, especially handy with nested forged methods
|
* Keeps the context where the ForgedMethod is generated, especially handy with nested forged methods
|
||||||
@ -32,22 +33,18 @@ public class ForgedMethodHistory {
|
|||||||
private final String targetPropertyName;
|
private final String targetPropertyName;
|
||||||
private final Type targetType;
|
private final Type targetType;
|
||||||
private final Type sourceType;
|
private final Type sourceType;
|
||||||
|
private final boolean usePropertyNames;
|
||||||
|
private String elementType;
|
||||||
|
|
||||||
public ForgedMethodHistory(ForgedMethodHistory history, String sourceElement, String targetPropertyName,
|
public ForgedMethodHistory(ForgedMethodHistory history, String sourceElement, String targetPropertyName,
|
||||||
Type sourceType, Type targetType) {
|
Type sourceType, Type targetType, boolean usePropertyNames, String elementType) {
|
||||||
prevHistory = history;
|
prevHistory = history;
|
||||||
this.sourceElement = sourceElement;
|
this.sourceElement = sourceElement;
|
||||||
this.targetPropertyName = targetPropertyName;
|
this.targetPropertyName = targetPropertyName;
|
||||||
this.sourceType = sourceType;
|
this.sourceType = sourceType;
|
||||||
this.targetType = targetType;
|
this.targetType = targetType;
|
||||||
}
|
this.usePropertyNames = usePropertyNames;
|
||||||
|
this.elementType = elementType;
|
||||||
public String getSourceElement() {
|
|
||||||
return sourceElement;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTargetPropertyName() {
|
|
||||||
return targetPropertyName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Type getTargetType() {
|
public Type getTargetType() {
|
||||||
@ -58,8 +55,77 @@ public class ForgedMethodHistory {
|
|||||||
return sourceType;
|
return sourceType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ForgedMethodHistory getPrevHistory() {
|
public String createSourcePropertyErrorMessage() {
|
||||||
return prevHistory;
|
return conditionallyCapitalizedElementType() + " \"" + getSourceType() + " " +
|
||||||
|
stripBrackets( getDottedSourceElement() ) + "\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Capitalization mostly matters to avoid the funny "Can't map map key" message. However it's irrelevant for the
|
||||||
|
* "Can't map property" message.
|
||||||
|
*
|
||||||
|
* @return capitalized or non-capitalized element type
|
||||||
|
*/
|
||||||
|
private String conditionallyCapitalizedElementType() {
|
||||||
|
if ( "property".equals( elementType ) ) {
|
||||||
|
return elementType;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return Strings.capitalize( elementType );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String createTargetPropertyName() {
|
||||||
|
return stripBrackets( getDottedTargetPropertyName() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getDottedSourceElement() {
|
||||||
|
if ( prevHistory == null ) {
|
||||||
|
return sourceElement;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ( usePropertyNames ) {
|
||||||
|
return getCorrectDottedPath( prevHistory.getDottedSourceElement(), sourceElement );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return prevHistory.getDottedSourceElement();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getDottedTargetPropertyName() {
|
||||||
|
if ( prevHistory == null ) {
|
||||||
|
return targetPropertyName;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ( usePropertyNames ) {
|
||||||
|
return getCorrectDottedPath( prevHistory.getDottedTargetPropertyName(), targetPropertyName );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return prevHistory.getDottedTargetPropertyName();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getCorrectDottedPath(String previousPath, String currentProperty) {
|
||||||
|
if ( "map key".equals( elementType ) ) {
|
||||||
|
return stripBrackets( previousPath ) + "{:key}";
|
||||||
|
}
|
||||||
|
else if ( "map value".equals( elementType ) ) {
|
||||||
|
return stripBrackets( previousPath ) + "{:value}";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return previousPath + "." + currentProperty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String stripBrackets(String dottedName) {
|
||||||
|
if ( dottedName.endsWith( "[]" ) || dottedName.endsWith( "{}" ) ) {
|
||||||
|
dottedName = dottedName.substring( 0, dottedName.length() - 2 );
|
||||||
|
}
|
||||||
|
return dottedName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -177,6 +177,17 @@ public class Strings {
|
|||||||
return identifier.replace( "[]", "Array" );
|
return identifier.replace( "[]", "Array" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a stub property name from full class name by stripping away the package and decapitalizing the name
|
||||||
|
* For example will return {@code fooBar} for {@code com.foo.bar.baz.FooBar} class name
|
||||||
|
*
|
||||||
|
* @param fullyQualifiedName fully qualified class name, such as com.foo.bar.baz.FooBar
|
||||||
|
* @return stup property name, such as fooBar
|
||||||
|
*/
|
||||||
|
public static String stubPropertyName(String fullyQualifiedName) {
|
||||||
|
return Strings.decapitalize( fullyQualifiedName.substring( fullyQualifiedName.lastIndexOf( '.' ) + 1 ) );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* It removes the dots from the name and creates an {@link Iterable} from them.
|
* It removes the dots from the name and creates an {@link Iterable} from them.
|
||||||
*
|
*
|
||||||
|
@ -115,8 +115,9 @@ public class ErroneousCollectionMappingTest {
|
|||||||
@Diagnostic(type = ErroneousCollectionNoElementMappingFound.class,
|
@Diagnostic(type = ErroneousCollectionNoElementMappingFound.class,
|
||||||
kind = Kind.ERROR,
|
kind = Kind.ERROR,
|
||||||
line = 37,
|
line = 37,
|
||||||
messageRegExp = "Can't map .*AttributedString to .*String. " +
|
messageRegExp =
|
||||||
"Consider to implement a mapping method: \".*String map(.*AttributedString value)")
|
"Can't map Collection element \".*AttributedString attributedString\" to \".*String string\". " +
|
||||||
|
"Consider to declare/implement a mapping method: \".*String map(.*AttributedString value)")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
public void shouldFailOnNoElementMappingFound() {
|
public void shouldFailOnNoElementMappingFound() {
|
||||||
@ -131,8 +132,8 @@ public class ErroneousCollectionMappingTest {
|
|||||||
@Diagnostic(type = ErroneousCollectionNoKeyMappingFound.class,
|
@Diagnostic(type = ErroneousCollectionNoKeyMappingFound.class,
|
||||||
kind = Kind.ERROR,
|
kind = Kind.ERROR,
|
||||||
line = 37,
|
line = 37,
|
||||||
messageRegExp = "Can't map .*AttributedString to .*String. " +
|
messageRegExp = "Can't map Map key \".*AttributedString attributedString\" to \".*String string\". " +
|
||||||
"Consider to implement a mapping method: \".*String map(.*AttributedString value)")
|
"Consider to declare/implement a mapping method: \".*String map(.*AttributedString value)")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
public void shouldFailOnNoKeyMappingFound() {
|
public void shouldFailOnNoKeyMappingFound() {
|
||||||
@ -147,8 +148,8 @@ public class ErroneousCollectionMappingTest {
|
|||||||
@Diagnostic(type = ErroneousCollectionNoValueMappingFound.class,
|
@Diagnostic(type = ErroneousCollectionNoValueMappingFound.class,
|
||||||
kind = Kind.ERROR,
|
kind = Kind.ERROR,
|
||||||
line = 37,
|
line = 37,
|
||||||
messageRegExp = "Can't map .*AttributedString to .*String. " +
|
messageRegExp = "Can't map Map value \".*AttributedString attributedString\" to \".*String string\". " +
|
||||||
"Consider to implement a mapping method: \".*String map(.*AttributedString value)")
|
"Consider to declare/implement a mapping method: \".*String map(.*AttributedString value)")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
public void shouldFailOnNoValueMappingFound() {
|
public void shouldFailOnNoValueMappingFound() {
|
||||||
|
@ -100,7 +100,7 @@ public class CollectionMappingTest {
|
|||||||
@Diagnostic(type = ErroneousCollectionNonMappableSetMapper.class,
|
@Diagnostic(type = ErroneousCollectionNonMappableSetMapper.class,
|
||||||
kind = Kind.ERROR,
|
kind = Kind.ERROR,
|
||||||
line = 30,
|
line = 30,
|
||||||
messageRegExp = "Can't map property \".* nonMappableSet\" to \".* nonMappableSet\". "
|
messageRegExp = "Can't map Collection element \".* nonMappableSet\" to \".* nonMappableSet\". "
|
||||||
+ "Consider to declare/implement a mapping method: .*."),
|
+ "Consider to declare/implement a mapping method: .*."),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -120,7 +120,7 @@ public class CollectionMappingTest {
|
|||||||
@Diagnostic(type = ErroneousCollectionNonMappableMapMapper.class,
|
@Diagnostic(type = ErroneousCollectionNonMappableMapMapper.class,
|
||||||
kind = Kind.ERROR,
|
kind = Kind.ERROR,
|
||||||
line = 30,
|
line = 30,
|
||||||
messageRegExp = "Can't map property \".* nonMappableMap\" to \".* nonMappableMap\". "
|
messageRegExp = "Can't map Map key \".* nonMappableMap\\{:key\\}\" to \".* nonMappableMap\\{:key\\}\". "
|
||||||
+ "Consider to declare/implement a mapping method: .*."),
|
+ "Consider to declare/implement a mapping method: .*."),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -115,8 +115,8 @@ public class ErroneousStreamMappingTest {
|
|||||||
@Diagnostic(type = ErroneousStreamToStreamNoElementMappingFound.class,
|
@Diagnostic(type = ErroneousStreamToStreamNoElementMappingFound.class,
|
||||||
kind = Kind.ERROR,
|
kind = Kind.ERROR,
|
||||||
line = 36,
|
line = 36,
|
||||||
messageRegExp = "Can't map .*AttributedString to .*String. " +
|
messageRegExp = "Can't map Stream element .*AttributedString attributedString\" to .*String string\"." +
|
||||||
"Consider to implement a mapping method: \".*String map(.*AttributedString value)")
|
" Consider to declare/implement a mapping method: \".*String map(.*AttributedString value)")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
public void shouldFailOnNoElementMappingFoundForStreamToStream() {
|
public void shouldFailOnNoElementMappingFoundForStreamToStream() {
|
||||||
@ -130,8 +130,8 @@ public class ErroneousStreamMappingTest {
|
|||||||
@Diagnostic(type = ErroneousListToStreamNoElementMappingFound.class,
|
@Diagnostic(type = ErroneousListToStreamNoElementMappingFound.class,
|
||||||
kind = Kind.ERROR,
|
kind = Kind.ERROR,
|
||||||
line = 37,
|
line = 37,
|
||||||
messageRegExp = "Can't map .*AttributedString to .*String. " +
|
messageRegExp = "Can't map .*AttributedString attributedString\" to .*String string\". " +
|
||||||
"Consider to implement a mapping method: \".*String map(.*AttributedString value)")
|
"Consider to declare/implement a mapping method: \".*String map(.*AttributedString value)")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
public void shouldFailOnNoElementMappingFoundForListToStream() {
|
public void shouldFailOnNoElementMappingFoundForListToStream() {
|
||||||
@ -145,8 +145,8 @@ public class ErroneousStreamMappingTest {
|
|||||||
@Diagnostic(type = ErroneousStreamToListNoElementMappingFound.class,
|
@Diagnostic(type = ErroneousStreamToListNoElementMappingFound.class,
|
||||||
kind = Kind.ERROR,
|
kind = Kind.ERROR,
|
||||||
line = 37,
|
line = 37,
|
||||||
messageRegExp = "Can't map .*AttributedString to .*String. " +
|
messageRegExp = "Can't map Stream element .*AttributedString attributedString\" to .*String string\"." +
|
||||||
"Consider to implement a mapping method: \".*String map(.*AttributedString value)")
|
" Consider to declare/implement a mapping method: \".*String map(.*AttributedString value)")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
public void shouldFailOnNoElementMappingFoundForStreamToList() {
|
public void shouldFailOnNoElementMappingFoundForStreamToList() {
|
||||||
|
@ -83,7 +83,7 @@ public class ForgedStreamMappingTest {
|
|||||||
@Diagnostic(type = ErroneousStreamNonMappableStreamMapper.class,
|
@Diagnostic(type = ErroneousStreamNonMappableStreamMapper.class,
|
||||||
kind = Kind.ERROR,
|
kind = Kind.ERROR,
|
||||||
line = 30,
|
line = 30,
|
||||||
messageRegExp = "Can't map property \".* nonMappableStream\" to \".* nonMappableStream\". "
|
messageRegExp = "Can't map Stream element \".* nonMappableStream\" to \".* nonMappableStream\". "
|
||||||
+ "Consider to declare/implement a mapping method: .*."),
|
+ "Consider to declare/implement a mapping method: .*."),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -0,0 +1,186 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.Computer;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.ComputerDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.Dictionary;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.DictionaryDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.ForeignWord;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.ForeignWordDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.Cat;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.CatDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.Info;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.InfoDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.UnmappableCollectionElementPropertyMapper;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.UnmappableDeepListMapper;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.UnmappableDeepMapKeyMapper;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.UnmappableDeepMapValueMapper;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.UnmappableValuePropertyMapper;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.UserDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.User;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.WheelDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.Wheel;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.Car;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.CarDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.House;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.HouseDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.Color;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.ColorDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.Roof;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.RoofDto;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.UnmappableDeepNestingMapper;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.Word;
|
||||||
|
import org.mapstruct.ap.test.nestedbeans.erroneous.WordDto;
|
||||||
|
import org.mapstruct.ap.testutil.WithClasses;
|
||||||
|
import org.mapstruct.ap.testutil.compilation.annotation.CompilationResult;
|
||||||
|
import org.mapstruct.ap.testutil.compilation.annotation.Diagnostic;
|
||||||
|
import org.mapstruct.ap.testutil.compilation.annotation.ExpectedCompilationOutcome;
|
||||||
|
import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner;
|
||||||
|
|
||||||
|
@WithClasses({
|
||||||
|
Car.class, CarDto.class, Color.class, ColorDto.class,
|
||||||
|
House.class, HouseDto.class, Roof.class, RoofDto.class,
|
||||||
|
User.class, UserDto.class, Wheel.class, WheelDto.class,
|
||||||
|
Dictionary.class, DictionaryDto.class, Word.class, WordDto.class,
|
||||||
|
ForeignWord.class, ForeignWordDto.class,
|
||||||
|
Computer.class, ComputerDto.class,
|
||||||
|
Cat.class, CatDto.class, Info.class, InfoDto.class
|
||||||
|
})
|
||||||
|
@RunWith(AnnotationProcessorTestRunner.class)
|
||||||
|
public class DottedErrorMessageTest {
|
||||||
|
|
||||||
|
private static final String PROPERTY = "property";
|
||||||
|
private static final String COLLECTION_ELEMENT = "Collection element";
|
||||||
|
private static final String MAP_KEY = "Map key";
|
||||||
|
private static final String MAP_VALUE = "Map value";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@WithClasses({
|
||||||
|
UnmappableDeepNestingMapper.class
|
||||||
|
})
|
||||||
|
@ExpectedCompilationOutcome(
|
||||||
|
value = CompilationResult.FAILED,
|
||||||
|
diagnostics = {
|
||||||
|
@Diagnostic(type = UnmappableDeepNestingMapper.class,
|
||||||
|
kind = javax.tools.Diagnostic.Kind.ERROR,
|
||||||
|
line = 26,
|
||||||
|
messageRegExp = "Can't map " + PROPERTY +
|
||||||
|
" \".*Color house\\.roof\\.color\" to \".*house\\.roof\\.color\"\\. " +
|
||||||
|
"Consider to declare/implement a mapping method: \".*ColorDto map\\(.*Color value\\)\"\\.")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public void testDeepNestedBeans() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@WithClasses({
|
||||||
|
UnmappableDeepListMapper.class
|
||||||
|
})
|
||||||
|
@ExpectedCompilationOutcome(
|
||||||
|
value = CompilationResult.FAILED,
|
||||||
|
diagnostics = {
|
||||||
|
@Diagnostic(type = UnmappableDeepListMapper.class,
|
||||||
|
kind = javax.tools.Diagnostic.Kind.ERROR,
|
||||||
|
line = 26,
|
||||||
|
messageRegExp = "Can't map " + COLLECTION_ELEMENT +
|
||||||
|
" \".*Wheel car\\.wheels\" to \".*car\\.wheels\"\\. " +
|
||||||
|
"Consider to declare/implement a mapping method: \".*WheelDto map\\(.*Wheel value\\)\"\\.")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public void testIterables() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@WithClasses({
|
||||||
|
UnmappableDeepMapKeyMapper.class
|
||||||
|
})
|
||||||
|
@ExpectedCompilationOutcome(
|
||||||
|
value = CompilationResult.FAILED,
|
||||||
|
diagnostics = {
|
||||||
|
@Diagnostic(type = UnmappableDeepMapKeyMapper.class,
|
||||||
|
kind = javax.tools.Diagnostic.Kind.ERROR,
|
||||||
|
line = 26,
|
||||||
|
messageRegExp = "Can't map " + MAP_KEY +
|
||||||
|
" \".*Word dictionary\\.wordMap\\{:key\\}\" to \".*dictionary\\.wordMap\\{:key\\}\"\\. " +
|
||||||
|
"Consider to declare/implement a mapping method: \".*WordDto map\\(.*Word value\\)\"\\.")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public void testMapKeys() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@WithClasses({
|
||||||
|
UnmappableDeepMapValueMapper.class
|
||||||
|
})
|
||||||
|
@ExpectedCompilationOutcome(
|
||||||
|
value = CompilationResult.FAILED,
|
||||||
|
diagnostics = {
|
||||||
|
@Diagnostic(type = UnmappableDeepMapValueMapper.class,
|
||||||
|
kind = javax.tools.Diagnostic.Kind.ERROR,
|
||||||
|
line = 26,
|
||||||
|
messageRegExp = "Can't map " + MAP_VALUE +
|
||||||
|
" \".*ForeignWord dictionary\\.wordMap\\{:value\\}\" " +
|
||||||
|
"to \".*dictionary\\.wordMap\\{:value\\}\"\\. " +
|
||||||
|
"Consider to declare/implement a mapping method: " +
|
||||||
|
"\".*ForeignWordDto map\\(.*ForeignWord value\\)\"\\.")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public void testMapValues() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@WithClasses({
|
||||||
|
UnmappableCollectionElementPropertyMapper.class
|
||||||
|
})
|
||||||
|
@ExpectedCompilationOutcome(
|
||||||
|
value = CompilationResult.FAILED,
|
||||||
|
diagnostics = {
|
||||||
|
@Diagnostic(type = UnmappableCollectionElementPropertyMapper.class,
|
||||||
|
kind = javax.tools.Diagnostic.Kind.ERROR,
|
||||||
|
line = 26,
|
||||||
|
messageRegExp = "Can't map " + PROPERTY +
|
||||||
|
" \".*Info computers\\[\\].info\" to \".*computers\\[\\].info\"\\. " +
|
||||||
|
"Consider to declare/implement a mapping method: \".*InfoDto map\\(.*Info value\\)\"\\.")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public void testCollectionElementProperty() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@WithClasses({
|
||||||
|
UnmappableValuePropertyMapper.class
|
||||||
|
})
|
||||||
|
@ExpectedCompilationOutcome(
|
||||||
|
value = CompilationResult.FAILED,
|
||||||
|
diagnostics = {
|
||||||
|
@Diagnostic(type = UnmappableValuePropertyMapper.class,
|
||||||
|
kind = javax.tools.Diagnostic.Kind.ERROR,
|
||||||
|
line = 26,
|
||||||
|
messageRegExp = "Can't map " + PROPERTY +
|
||||||
|
" \".*Info catNameMap\\{:value\\}.info\" to \".*catNameMap\\{:value\\}.info\"\\. " +
|
||||||
|
"Consider to declare/implement a mapping method: \".*InfoDto map\\(.*Info value\\)\"\\.")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public void testMapValueProperty() {
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Car {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private int year;
|
||||||
|
private List<Wheel> wheels;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getYear() {
|
||||||
|
return year;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setYear(int year) {
|
||||||
|
this.year = year;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Wheel> getWheels() {
|
||||||
|
return wheels;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWheels(List<Wheel> wheels) {
|
||||||
|
this.wheels = wheels;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class CarDto {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private int year;
|
||||||
|
private List<WheelDto> wheels;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getYear() {
|
||||||
|
return year;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setYear(int year) {
|
||||||
|
this.year = year;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<WheelDto> getWheels() {
|
||||||
|
return wheels;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWheels(List<WheelDto> wheels) {
|
||||||
|
this.wheels = wheels;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class Cat {
|
||||||
|
|
||||||
|
private Info info;
|
||||||
|
|
||||||
|
public Info getInfo() {
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInfo(Info info) {
|
||||||
|
this.info = info;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class CatDto {
|
||||||
|
|
||||||
|
private InfoDto info;
|
||||||
|
|
||||||
|
public InfoDto getInfo() {
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInfo(InfoDto info) {
|
||||||
|
this.info = info;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class Color {
|
||||||
|
private String cmyk;
|
||||||
|
|
||||||
|
public Color() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color(String cmyk) {
|
||||||
|
this.cmyk = cmyk;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCmyk() {
|
||||||
|
return cmyk;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCmyk(String cmyk) {
|
||||||
|
this.cmyk = cmyk;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class ColorDto {
|
||||||
|
private String rgb;
|
||||||
|
|
||||||
|
public String getRgb() {
|
||||||
|
return rgb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRgb(String rgb) {
|
||||||
|
this.rgb = rgb;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class Computer {
|
||||||
|
|
||||||
|
private Info info;
|
||||||
|
|
||||||
|
public Info getInfo() {
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInfo(Info info) {
|
||||||
|
this.info = info;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class ComputerDto {
|
||||||
|
|
||||||
|
private InfoDto info;
|
||||||
|
|
||||||
|
public InfoDto getInfo() {
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInfo(InfoDto info) {
|
||||||
|
this.info = info;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class Dictionary {
|
||||||
|
|
||||||
|
private Map<Word, ForeignWord> wordMap;
|
||||||
|
|
||||||
|
public Map<Word, ForeignWord> getWordMap() {
|
||||||
|
return wordMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWordMap(
|
||||||
|
Map<Word, ForeignWord> wordMap) {
|
||||||
|
this.wordMap = wordMap;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class DictionaryDto {
|
||||||
|
|
||||||
|
private Map<WordDto, ForeignWordDto> wordMap;
|
||||||
|
|
||||||
|
public Map<WordDto, ForeignWordDto> getWordMap() {
|
||||||
|
return wordMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWordMap(
|
||||||
|
Map<WordDto, ForeignWordDto> wordMap) {
|
||||||
|
this.wordMap = wordMap;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class ForeignWord {
|
||||||
|
|
||||||
|
private String meaning;
|
||||||
|
|
||||||
|
public String getMeaning() {
|
||||||
|
return meaning;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMeaning(String meaning) {
|
||||||
|
this.meaning = meaning;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class ForeignWordDto {
|
||||||
|
private String pronunciation;
|
||||||
|
|
||||||
|
public String getPronunciation() {
|
||||||
|
return pronunciation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPronunciation(String pronunciation) {
|
||||||
|
this.pronunciation = pronunciation;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class House {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private int year;
|
||||||
|
private Roof roof;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getYear() {
|
||||||
|
return year;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setYear(int year) {
|
||||||
|
this.year = year;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Roof getRoof() {
|
||||||
|
return roof;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRoof(Roof roof) {
|
||||||
|
this.roof = roof;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class HouseDto {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private int year;
|
||||||
|
private RoofDto roof;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getYear() {
|
||||||
|
return year;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setYear(int year) {
|
||||||
|
this.year = year;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RoofDto getRoof() {
|
||||||
|
return roof;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRoof(RoofDto roof) {
|
||||||
|
this.roof = roof;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class Info {
|
||||||
|
private String size;
|
||||||
|
|
||||||
|
public String getSize() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSize(String size) {
|
||||||
|
this.size = size;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class InfoDto {
|
||||||
|
private String color;
|
||||||
|
|
||||||
|
public String getColor() {
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setColor(String color) {
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class Roof {
|
||||||
|
private Color color;
|
||||||
|
|
||||||
|
public Color getColor() {
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setColor(Color color) {
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class RoofDto {
|
||||||
|
private ColorDto color;
|
||||||
|
|
||||||
|
public ColorDto getColor() {
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setColor(ColorDto color) {
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public abstract class UnmappableCollectionElementPropertyMapper {
|
||||||
|
|
||||||
|
abstract UserDto userToUserDto(User user);
|
||||||
|
|
||||||
|
public HouseDto map(House house) {
|
||||||
|
return new HouseDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CarDto map(Car carDto) {
|
||||||
|
return new CarDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DictionaryDto map(Dictionary dictionary) {
|
||||||
|
return new DictionaryDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CatDto map(Cat cat) {
|
||||||
|
return new CatDto();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public abstract class UnmappableDeepListMapper {
|
||||||
|
|
||||||
|
abstract UserDto userToUserDto(User user);
|
||||||
|
|
||||||
|
public HouseDto map(House house) {
|
||||||
|
return new HouseDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DictionaryDto map(Dictionary dictionary) {
|
||||||
|
return new DictionaryDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ComputerDto map(Computer computer) {
|
||||||
|
return new ComputerDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CatDto map(Cat cat) {
|
||||||
|
return new CatDto();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public abstract class UnmappableDeepMapKeyMapper {
|
||||||
|
|
||||||
|
abstract UserDto userToUserDto(User user);
|
||||||
|
|
||||||
|
public CarDto map(Car carDto) {
|
||||||
|
return new CarDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HouseDto map(House house) {
|
||||||
|
return new HouseDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ForeignWordDto map(ForeignWord word) {
|
||||||
|
return new ForeignWordDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ComputerDto map(Computer computer) {
|
||||||
|
return new ComputerDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CatDto map(Cat cat) {
|
||||||
|
return new CatDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public abstract class UnmappableDeepMapValueMapper {
|
||||||
|
|
||||||
|
abstract UserDto userToUserDto(User user);
|
||||||
|
|
||||||
|
public CarDto map(Car carDto) {
|
||||||
|
return new CarDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HouseDto map(House house) {
|
||||||
|
return new HouseDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public WordDto map(Word word) {
|
||||||
|
return new WordDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ComputerDto map(Computer computer) {
|
||||||
|
return new ComputerDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CatDto map(Cat cat) {
|
||||||
|
return new CatDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public abstract class UnmappableDeepNestingMapper {
|
||||||
|
|
||||||
|
abstract UserDto userToUserDto(User user);
|
||||||
|
|
||||||
|
public CarDto map(Car carDto) {
|
||||||
|
return new CarDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DictionaryDto map(Dictionary dictionary) {
|
||||||
|
return new DictionaryDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ComputerDto map(Computer computer) {
|
||||||
|
return new ComputerDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CatDto map(Cat cat) {
|
||||||
|
return new CatDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public abstract class UnmappableValuePropertyMapper {
|
||||||
|
|
||||||
|
abstract UserDto userToUserDto(User user);
|
||||||
|
|
||||||
|
public HouseDto map(House house) {
|
||||||
|
return new HouseDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CarDto map(Car carDto) {
|
||||||
|
return new CarDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DictionaryDto map(Dictionary dictionary) {
|
||||||
|
return new DictionaryDto();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ComputerDto map(Computer computer) {
|
||||||
|
return new ComputerDto();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,85 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class User {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
//list of Wheels inside
|
||||||
|
private Car car;
|
||||||
|
//deep nesting inside Roof->Color
|
||||||
|
private House house;
|
||||||
|
//unmappable keys/values
|
||||||
|
private Dictionary dictionary;
|
||||||
|
//collection element's property can't be mapped
|
||||||
|
private List<Computer> computers;
|
||||||
|
//map value property can't be mapped
|
||||||
|
private Map<String, Cat> catNameMap;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Car getCar() {
|
||||||
|
return car;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCar(Car car) {
|
||||||
|
this.car = car;
|
||||||
|
}
|
||||||
|
|
||||||
|
public House getHouse() {
|
||||||
|
return house;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHouse(House house) {
|
||||||
|
this.house = house;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dictionary getDictionary() {
|
||||||
|
return dictionary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDictionary(Dictionary dictionary) {
|
||||||
|
this.dictionary = dictionary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Computer> getComputers() {
|
||||||
|
return computers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComputers(List<Computer> computers) {
|
||||||
|
this.computers = computers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Cat> getCatNameMap() {
|
||||||
|
return catNameMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCatNameMap(Map<String, Cat> catNameMap) {
|
||||||
|
this.catNameMap = catNameMap;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,81 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class UserDto {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private CarDto car;
|
||||||
|
private HouseDto house;
|
||||||
|
private DictionaryDto dictionary;
|
||||||
|
private List<ComputerDto> computers;
|
||||||
|
private Map<String, CatDto> catNameMap;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CarDto getCar() {
|
||||||
|
return car;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCar(CarDto car) {
|
||||||
|
this.car = car;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HouseDto getHouse() {
|
||||||
|
return house;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHouse(HouseDto house) {
|
||||||
|
this.house = house;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DictionaryDto getDictionary() {
|
||||||
|
return dictionary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDictionary(DictionaryDto dictionary) {
|
||||||
|
this.dictionary = dictionary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ComputerDto> getComputers() {
|
||||||
|
return computers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComputers(List<ComputerDto> computers) {
|
||||||
|
this.computers = computers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, CatDto> getCatNameMap() {
|
||||||
|
return catNameMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCatNameMap(
|
||||||
|
Map<String, CatDto> catNameMap) {
|
||||||
|
this.catNameMap = catNameMap;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class Wheel {
|
||||||
|
private boolean front;
|
||||||
|
private boolean right;
|
||||||
|
|
||||||
|
public boolean isFront() {
|
||||||
|
return front;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFront(boolean front) {
|
||||||
|
this.front = front;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRight() {
|
||||||
|
return right;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRight(boolean right) {
|
||||||
|
this.right = right;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class WheelDto {
|
||||||
|
private boolean front;
|
||||||
|
private boolean left;
|
||||||
|
|
||||||
|
public boolean isFront() {
|
||||||
|
return front;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFront(boolean front) {
|
||||||
|
this.front = front;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isLeft() {
|
||||||
|
return left;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLeft(boolean left) {
|
||||||
|
this.left = left;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class Word {
|
||||||
|
|
||||||
|
private String meaning;
|
||||||
|
|
||||||
|
public String getMeaning() {
|
||||||
|
return meaning;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMeaning(String meaning) {
|
||||||
|
this.meaning = meaning;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
|
||||||
|
* and/or other contributors as indicated by the @authors tag. See the
|
||||||
|
* copyright.txt file in the distribution for a full listing of all
|
||||||
|
* contributors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.mapstruct.ap.test.nestedbeans.erroneous;
|
||||||
|
|
||||||
|
public class WordDto {
|
||||||
|
private String pronunciation;
|
||||||
|
|
||||||
|
public String getPronunciation() {
|
||||||
|
return pronunciation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPronunciation(String pronunciation) {
|
||||||
|
this.pronunciation = pronunciation;
|
||||||
|
}
|
||||||
|
}
|
@ -168,10 +168,10 @@ public class ConversionTest {
|
|||||||
@Diagnostic(type = ErroneousSourceTargetMapper6.class,
|
@Diagnostic(type = ErroneousSourceTargetMapper6.class,
|
||||||
kind = javax.tools.Diagnostic.Kind.ERROR,
|
kind = javax.tools.Diagnostic.Kind.ERROR,
|
||||||
line = 29,
|
line = 29,
|
||||||
messageRegExp = "Can't map property \"org.mapstruct.ap.test.selection.generics.WildCardSuperWrapper"
|
messageRegExp = "Can't map property \"java.lang.String "
|
||||||
+ "<java.lang.String> foo\" to"
|
+ "foo\\.wrapped\" to"
|
||||||
+ " \"org.mapstruct.ap.test.selection.generics.WildCardSuperWrapper" +
|
+ " \"org.mapstruct.ap.test.selection.generics.TypeA " +
|
||||||
"<org.mapstruct.ap.test.selection.generics.TypeA> foo\"")
|
"foo\\.wrapped\"")
|
||||||
})
|
})
|
||||||
public void shouldFailOnNonMatchingWildCards() {
|
public void shouldFailOnNonMatchingWildCards() {
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user