-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Closed
Labels
Milestone
Description
Expected behavior
It seems like @ValueMapping strips spaces from the source. A single spaces is honored while multiple spaces seem to reduced to a single entry.
Given:
@ValueMapping(source = " PR", target = "PR")
@ValueMapping(source = "EP ", target = "EP")
@ValueMapping(source = " WE ", target = "WE")
@ValueMapping(source = MappingConstants.ANY_REMAINING, target = MappingConstants.THROW_EXCEPTION)
OrderStatus fromOrderSelectionOutput(String orderStatus);I expected the following mapping to be created:
@Override
public OrderStatus fromOrderSelectionOutput(String orderStatus) {
if ( orderStatus == null ) {
return null;
}
OrderStatus orderStatus1;
switch ( orderStatus ) {
case " PR": orderStatus1 = OrderStatus.PR;
break;
case "EP ": orderStatus1 = OrderStatus.EP;
break;
case " WE ": orderStatus1 = OrderStatus.WE;
break;
case "ABGE": orderStatus1 = OrderStatus.ABGE;
break;
case "AUFG": orderStatus1 = OrderStatus.AUFG;
break;
case "BZEP": orderStatus1 = OrderStatus.BZEP;
break;
case "EP": orderStatus1 = OrderStatus.EP;
break;
case "FEST": orderStatus1 = OrderStatus.FEST;
break;
case "GEBU": orderStatus1 = OrderStatus.GEBU;
break;
case "PR": orderStatus1 = OrderStatus.PR;
break;
case "WE": orderStatus1 = OrderStatus.WE;
break;
default: throw new IllegalArgumentException( "Unexpected enum constant: " + orderStatus );
}
return orderStatus1;
}Notice the double spaces. (" PR", "ER ", " WE ").
Actual behavior
But the following mapping is created which reduces the double spaces to single spaces.
@Override
public OrderStatus fromOrderSelectionOutput(String orderStatus) {
if ( orderStatus == null ) {
return null;
}
OrderStatus orderStatus1;
switch ( orderStatus ) {
case " PR": orderStatus1 = OrderStatus.PR;
break;
case "EP ": orderStatus1 = OrderStatus.EP;
break;
case " WE ": orderStatus1 = OrderStatus.WE;
break;
case "ABGE": orderStatus1 = OrderStatus.ABGE;
break;
case "AUFG": orderStatus1 = OrderStatus.AUFG;
break;
case "BZEP": orderStatus1 = OrderStatus.BZEP;
break;
case "EP": orderStatus1 = OrderStatus.EP;
break;
case "FEST": orderStatus1 = OrderStatus.FEST;
break;
case "GEBU": orderStatus1 = OrderStatus.GEBU;
break;
case "PR": orderStatus1 = OrderStatus.PR;
break;
case "WE": orderStatus1 = OrderStatus.WE;
break;
default: throw new IllegalArgumentException( "Unexpected enum constant: " + orderStatus );
}
return orderStatus1;
}Steps to reproduce the problem
See above.
MapStruct Version
1.5.3.Final