From 0656d74b7e56a01faa39254426efc652bc555c08 Mon Sep 17 00:00:00 2001 From: Gunnar Morling Date: Sun, 27 Apr 2014 19:45:40 +0200 Subject: [PATCH] #200 Simplifying definition of conversions --- .../BigDecimalToBigIntegerConversion.java | 8 +-- .../BigDecimalToPrimitiveConversion.java | 8 +-- .../BigDecimalToStringConversion.java | 8 +-- .../BigDecimalToWrapperConversion.java | 8 +-- .../BigIntegerToPrimitiveConversion.java | 8 +-- .../BigIntegerToStringConversion.java | 8 +-- .../BigIntegerToWrapperConversion.java | 9 ++- .../ap/conversion/CharToStringConversion.java | 8 +-- .../CharWrapperToStringConversion.java | 8 +-- .../ap/conversion/ConversionExpression.java | 56 ------------------- .../ap/conversion/DateToStringConversion.java | 19 +++---- .../ap/conversion/EnumStringConversion.java | 10 ++-- .../PrimitiveToPrimitiveConversion.java | 8 +-- .../PrimitiveToStringConversion.java | 10 ++-- .../PrimitiveToWrapperConversion.java | 10 ++-- .../ap/conversion/SimpleConversion.java | 53 +++++++++--------- .../conversion/WrapperToStringConversion.java | 10 ++-- .../WrapperToWrapperConversion.java | 12 ++-- .../model/assignment/AssignmentFactory.java | 20 +++---- .../ap/model/assignment/TypeConversion.java | 13 +++-- 20 files changed, 116 insertions(+), 178 deletions(-) delete mode 100644 processor/src/main/java/org/mapstruct/ap/conversion/ConversionExpression.java diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToBigIntegerConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToBigIntegerConversion.java index a636ed9d1..9375d1052 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToBigIntegerConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToBigIntegerConversion.java @@ -35,13 +35,13 @@ import static org.mapstruct.ap.util.Collections.asSet; public class BigDecimalToBigIntegerConversion extends SimpleConversion { @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", ".toBigInteger()" ); + public String getToExpression(ConversionContext conversionContext) { + return ".toBigInteger()"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression("new BigDecimal( ", " )"); + public String getFromExpression(ConversionContext conversionContext) { + return "new BigDecimal( )"; } @Override diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToPrimitiveConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToPrimitiveConversion.java index b6af7d297..02a79b4e4 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToPrimitiveConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToPrimitiveConversion.java @@ -44,13 +44,13 @@ public class BigDecimalToPrimitiveConversion extends SimpleConversion { } @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", "." + targetType.getName() + "Value()" ); + public String getToExpression(ConversionContext conversionContext) { + return "." + targetType.getName() + "Value()"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( "BigDecimal.valueOf( ", " )" ); + public String getFromExpression(ConversionContext conversionContext) { + return "BigDecimal.valueOf( )"; } @Override diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToStringConversion.java index 2219cc651..907bf22b1 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToStringConversion.java @@ -34,13 +34,13 @@ import static org.mapstruct.ap.util.Collections.asSet; public class BigDecimalToStringConversion extends SimpleConversion { @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", ".toString()" ); + public String getToExpression(ConversionContext conversionContext) { + return ".toString()"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( "new BigDecimal( ", " )" ); + public String getFromExpression(ConversionContext conversionContext) { + return "new BigDecimal( )"; } @Override diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToWrapperConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToWrapperConversion.java index ed69a15e0..56a1683c6 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToWrapperConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/BigDecimalToWrapperConversion.java @@ -45,13 +45,13 @@ public class BigDecimalToWrapperConversion extends SimpleConversion { } @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", "." + targetType.getName() + "Value()" ); + public String getToExpression(ConversionContext conversionContext) { + return "." + targetType.getName() + "Value()"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( "BigDecimal.valueOf( ", " )" ); + public String getFromExpression(ConversionContext conversionContext) { + return "BigDecimal.valueOf( )"; } @Override diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToPrimitiveConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToPrimitiveConversion.java index 9ccd8b63c..b6bd31cbd 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToPrimitiveConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToPrimitiveConversion.java @@ -44,17 +44,17 @@ public class BigIntegerToPrimitiveConversion extends SimpleConversion { } @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", "." + targetType.getName() + "Value()" ); + public String getToExpression(ConversionContext conversionContext) { + return "." + targetType.getName() + "Value()"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { + public String getFromExpression(ConversionContext conversionContext) { String castString = ""; if ( targetType == float.class || targetType == double.class ) { castString = "(long) "; } - return new ConversionExpression( "BigInteger.valueOf( " + castString, " )" ); + return "BigInteger.valueOf( " + castString + " )"; } @Override diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToStringConversion.java index 0785bc99c..8bd369658 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToStringConversion.java @@ -34,13 +34,13 @@ import static org.mapstruct.ap.util.Collections.asSet; public class BigIntegerToStringConversion extends SimpleConversion { @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", ".toString()" ); + public String getToExpression(ConversionContext conversionContext) { + return ".toString()"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( "new BigInteger( ", " )" ); + public String getFromExpression(ConversionContext conversionContext) { + return "new BigInteger( )"; } @Override diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToWrapperConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToWrapperConversion.java index 1e4152a86..5c4996e17 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToWrapperConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/BigIntegerToWrapperConversion.java @@ -45,19 +45,18 @@ public class BigIntegerToWrapperConversion extends SimpleConversion { } @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", "." + targetType.getName() + "Value()" ); + public String getToExpression(ConversionContext conversionContext) { + return "." + targetType.getName() + "Value()"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - + public String getFromExpression(ConversionContext conversionContext) { String toLongValueStr = ""; if ( targetType == float.class || targetType == double.class ) { toLongValueStr = ".longValue()"; } - return new ConversionExpression( "BigInteger.valueOf( ", toLongValueStr + " )" ); + return "BigInteger.valueOf( " + toLongValueStr + " )"; } @Override diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/CharToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/CharToStringConversion.java index a964752c6..d7e5e0cad 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/CharToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/CharToStringConversion.java @@ -28,12 +28,12 @@ import org.mapstruct.ap.model.common.ConversionContext; public class CharToStringConversion extends SimpleConversion { @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "String.valueOf( ", " )" ); + public String getToExpression(ConversionContext conversionContext) { + return "String.valueOf( )"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", ".charAt( 0 )" ); + public String getFromExpression(ConversionContext conversionContext) { + return ".charAt( 0 )"; } } diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/CharWrapperToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/CharWrapperToStringConversion.java index 391004837..48cb8a54b 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/CharWrapperToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/CharWrapperToStringConversion.java @@ -28,12 +28,12 @@ import org.mapstruct.ap.model.common.ConversionContext; public class CharWrapperToStringConversion extends SimpleConversion { @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", ".toString()" ); + public String getToExpression(ConversionContext conversionContext) { + return ".toString()"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", ".charAt( 0 )" ); + public String getFromExpression(ConversionContext conversionContext) { + return ".charAt( 0 )"; } } diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/ConversionExpression.java b/processor/src/main/java/org/mapstruct/ap/conversion/ConversionExpression.java deleted file mode 100644 index f8fe3d6b7..000000000 --- a/processor/src/main/java/org/mapstruct/ap/conversion/ConversionExpression.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright 2012-2014 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.conversion; - -/** - * - * @author Sjaak Derksen - */ -public class ConversionExpression { - - private final String openExpression; - private final String closeExpression; - private String expression; - - public static ConversionExpression empty() { - return new ConversionExpression( "", "" ); - } - - public ConversionExpression( String openExpression, String closeExpression ) { - this.openExpression = openExpression; - this.closeExpression = closeExpression; - } - - public String getOpenExpression() { - return openExpression; - } - - public String getCloseExpression() { - return closeExpression; - } - - public String getExpression() { - return expression; - } - - public void setExpression( String expression ) { - this.expression = expression; - } - -} diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/DateToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/DateToStringConversion.java index c8a02d1ca..614ca3957 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/DateToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/DateToStringConversion.java @@ -22,13 +22,14 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Collections; import java.util.Date; + import org.mapstruct.ap.model.Assignment; import org.mapstruct.ap.model.assignment.AssignmentFactory; import org.mapstruct.ap.model.common.ConversionContext; import org.mapstruct.ap.model.common.Type; -import static org.mapstruct.ap.util.Collections.asSet; import static java.util.Arrays.asList; +import static org.mapstruct.ap.util.Collections.asSet; /** * Conversion between {@link String} and {@link Date}. @@ -42,9 +43,8 @@ public class DateToStringConversion implements ConversionProvider { return AssignmentFactory.createTypeConversion( asSet( conversionContext.getTypeFactory().getType( SimpleDateFormat.class ) ), Collections.emptyList(), - getOpenExpression( conversionContext, "format" ), - getCloseExpression() ); - + getConversionExpression( conversionContext, "format" ) + ); } @Override @@ -52,12 +52,11 @@ public class DateToStringConversion implements ConversionProvider { return AssignmentFactory.createTypeConversion( asSet( conversionContext.getTypeFactory().getType( SimpleDateFormat.class ) ), asList( conversionContext.getTypeFactory().getType( ParseException.class ) ), - getOpenExpression( conversionContext, "parse" ), - getCloseExpression() + getConversionExpression( conversionContext, "parse" ) ); } - private String getOpenExpression(ConversionContext conversionContext, String method) { + private String getConversionExpression(ConversionContext conversionContext, String method) { StringBuilder conversionString = new StringBuilder( "new SimpleDateFormat(" ); if ( conversionContext.getDateFormat() != null ) { @@ -68,12 +67,8 @@ public class DateToStringConversion implements ConversionProvider { conversionString.append( ")." ); conversionString.append( method ); - conversionString.append( "( " ); + conversionString.append( "( )" ); return conversionString.toString(); } - - private String getCloseExpression() { - return " )"; - } } diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/EnumStringConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/EnumStringConversion.java index feb9f809d..6176de4f1 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/EnumStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/EnumStringConversion.java @@ -33,15 +33,13 @@ import static org.mapstruct.ap.util.Collections.asSet; public class EnumStringConversion extends SimpleConversion { @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression("", ".toString()" ); + public String getToExpression(ConversionContext conversionContext) { + return ".toString()"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( - "Enum.valueOf( " + conversionContext.getTargetType().getName() + ".class, ", - " )" ); + public String getFromExpression(ConversionContext conversionContext) { + return "Enum.valueOf( " + conversionContext.getTargetType().getName() + ".class, )"; } @Override diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToPrimitiveConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToPrimitiveConversion.java index 0f7d40674..84095fa47 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToPrimitiveConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToPrimitiveConversion.java @@ -38,12 +38,12 @@ public class PrimitiveToPrimitiveConversion extends SimpleConversion { } @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return ConversionExpression.empty(); + public String getToExpression(ConversionContext conversionContext) { + return ""; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( "(" + sourceType + ") ", "" ); + public String getFromExpression(ConversionContext conversionContext) { + return "(" + sourceType + ")"; } } diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToStringConversion.java index 836375ce1..e27b51463 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToStringConversion.java @@ -43,13 +43,13 @@ public class PrimitiveToStringConversion extends SimpleConversion { } @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "String.valueOf( ", " )" ); + public String getToExpression(ConversionContext conversionContext) { + return "String.valueOf( )"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( wrapperType.getSimpleName() + ".parse" + - Strings.capitalize( sourceType.getSimpleName() ) + "( ", " )" ); + public String getFromExpression(ConversionContext conversionContext) { + return wrapperType.getSimpleName() + ".parse" + + Strings.capitalize( sourceType.getSimpleName() ) + "( )"; } } diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToWrapperConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToWrapperConversion.java index c4a845921..b80d14b74 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToWrapperConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/PrimitiveToWrapperConversion.java @@ -45,17 +45,17 @@ public class PrimitiveToWrapperConversion extends SimpleConversion { } @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { + public String getToExpression(ConversionContext conversionContext) { if ( sourceType == targetType ) { - return ConversionExpression.empty(); + return ""; } else { - return new ConversionExpression( "(" + targetType.getName() + ") ", "" ); + return "(" + targetType.getName() + ")"; } } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( "", "." + sourceType.getName() + "Value()" ); + public String getFromExpression(ConversionContext conversionContext) { + return "." + sourceType.getName() + "Value()"; } } diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/SimpleConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/SimpleConversion.java index 46972b1ac..febec383b 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/SimpleConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/SimpleConversion.java @@ -20,10 +20,11 @@ package org.mapstruct.ap.conversion; import java.util.Collections; import java.util.Set; + import org.mapstruct.ap.model.Assignment; import org.mapstruct.ap.model.assignment.AssignmentFactory; -import org.mapstruct.ap.model.common.ConversionContext; import org.mapstruct.ap.model.assignment.TypeConversion; +import org.mapstruct.ap.model.common.ConversionContext; import org.mapstruct.ap.model.common.Type; /** @@ -35,48 +36,50 @@ public abstract class SimpleConversion implements ConversionProvider { @Override public Assignment to(ConversionContext conversionContext) { - ConversionExpression toExpressions = getToExpression( conversionContext ); + String toExpression = getToExpression( conversionContext ); return AssignmentFactory.createTypeConversion( - getToConversionImportTypes( conversionContext ), - Collections.emptyList(), - toExpressions.getOpenExpression(), - toExpressions.getCloseExpression() ); + getToConversionImportTypes( conversionContext ), + Collections.emptyList(), + toExpression + ); } @Override public Assignment from(ConversionContext conversionContext) { - ConversionExpression fromExpressions = getFromExpression( conversionContext ); + String fromExpression = getFromExpression( conversionContext ); return AssignmentFactory.createTypeConversion( - getFromConversionImportTypes( conversionContext ), - Collections.emptyList(), - fromExpressions.getOpenExpression(), - fromExpressions.getCloseExpression() ); + getFromConversionImportTypes( conversionContext ), + Collections.emptyList(), + fromExpression + ); } /** - * Returns the conversion string (opening and closing part) from source to target. + * Returns the conversion string from source to target. The placeholder {@code } can be used to represent a + * reference to the source value. + * + * @param conversionContext A context providing optional information required for creating the conversion. + * + * @return The conversion string from source to target + */ + protected abstract String getToExpression(ConversionContext conversionContext); + + /** + * Returns the conversion string from target to source. The placeholder {@code } can be used to represent a + * reference to the target value. * * @param conversionContext ConversionContext providing optional information required for creating the conversion. * - * @return The open- and close parts of the conversion expression + * @return The conversion string from target to source */ - protected abstract ConversionExpression getToExpression( ConversionContext conversionContext ); - - /** - * Creates the conversion string (opening and closing part) from target to source. - * - * @param conversionContext ConversionContext providing optional information required for creating - * the conversion. - * - * @return The open- and close parts of the conversion expression - */ - protected abstract ConversionExpression getFromExpression( ConversionContext conversionContext ); + protected abstract String getFromExpression(ConversionContext conversionContext); /** * Returns a set with imported types of the "from" conversion. Defaults to an empty set; can be overridden in * sub-classes to return the required types. * * @param conversionContext the conversion context + * * @return conversion types required in the "from" conversion */ protected Set getFromConversionImportTypes(ConversionContext conversionContext) { @@ -88,10 +91,10 @@ public abstract class SimpleConversion implements ConversionProvider { * sub-classes to return the required types. * * @param conversionContext the conversion context + * * @return conversion types required in the "to" conversion */ protected Set getToConversionImportTypes(ConversionContext conversionContext) { return Collections.emptySet(); } - } diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/WrapperToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/WrapperToStringConversion.java index 1d52d2f32..1b52c47fc 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/WrapperToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/WrapperToStringConversion.java @@ -42,13 +42,13 @@ public class WrapperToStringConversion extends SimpleConversion { } @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { - return new ConversionExpression( "String.valueOf( ", " )" ); + public String getToExpression(ConversionContext conversionContext) { + return "String.valueOf( )"; } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { - return new ConversionExpression( sourceType.getSimpleName() + ".parse" + - Strings.capitalize( primitiveType.getSimpleName() ) + "( ", " )" ); + public String getFromExpression(ConversionContext conversionContext) { + return sourceType.getSimpleName() + ".parse" + + Strings.capitalize( primitiveType.getSimpleName() ) + "( )"; } } diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/WrapperToWrapperConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/WrapperToWrapperConversion.java index f34464fc7..faeb104cb 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/WrapperToWrapperConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/WrapperToWrapperConversion.java @@ -44,22 +44,22 @@ public class WrapperToWrapperConversion extends SimpleConversion { } @Override - public ConversionExpression getToExpression(ConversionContext conversionContext) { + public String getToExpression(ConversionContext conversionContext) { if ( sourceType == targetType ) { - return ConversionExpression.empty(); + return ""; } else { - return new ConversionExpression( "", "." + targetType.getName() + "Value()" ); + return "." + targetType.getName() + "Value()"; } } @Override - public ConversionExpression getFromExpression(ConversionContext conversionContext) { + public String getFromExpression(ConversionContext conversionContext) { if ( sourceType == targetType ) { - return ConversionExpression.empty(); + return ""; } else { - return new ConversionExpression( "", "." + sourceType.getName() + "Value()" ); + return "." + sourceType.getName() + "Value()"; } } } diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentFactory.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentFactory.java index eb045bfc0..1c92f51d8 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentFactory.java +++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentFactory.java @@ -20,6 +20,7 @@ package org.mapstruct.ap.model.assignment; import java.util.List; import java.util.Set; + import org.mapstruct.ap.model.Assignment; import org.mapstruct.ap.model.FactoryMethod; import org.mapstruct.ap.model.MapperReference; @@ -38,28 +39,25 @@ public class AssignmentFactory { private AssignmentFactory() { } - public static Assignment createTypeConversion( Set importTypes, - List exceptionTypes, - String openExpression, - String closeExpression ) { - return new TypeConversion( importTypes, exceptionTypes, openExpression, closeExpression ); + public static Assignment createTypeConversion(Set importTypes, List exceptionTypes, String expression) { + return new TypeConversion( importTypes, exceptionTypes, expression ); } public static FactoryMethod createFactory(SourceMethod method, MapperReference declaringMapper) { - return new MethodReference( method, declaringMapper, null ); + return new MethodReference( method, declaringMapper, null ); } public static Assignment createMethodReference(SourceMethod method, MapperReference declaringMapper, - Type targetType) { - return new MethodReference(method, declaringMapper, targetType); + Type targetType) { + return new MethodReference( method, declaringMapper, targetType ); } - public static Assignment createMethodReference( BuiltInMethod method, ConversionContext contextParam ) { + public static Assignment createMethodReference(BuiltInMethod method, ConversionContext contextParam) { return new MethodReference( method, contextParam ); } - public static Simple createSimple( String sourceRef ) { - return new Simple(sourceRef ); + public static Simple createSimple(String sourceRef) { + return new Simple( sourceRef ); } } diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/TypeConversion.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/TypeConversion.java index 131022406..bd9cac0d5 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/assignment/TypeConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/TypeConversion.java @@ -21,8 +21,8 @@ package org.mapstruct.ap.model.assignment; import java.util.HashSet; import java.util.List; import java.util.Set; -import org.mapstruct.ap.model.Assignment; +import org.mapstruct.ap.model.Assignment; import org.mapstruct.ap.model.common.ModelElement; import org.mapstruct.ap.model.common.Type; @@ -33,6 +33,7 @@ import org.mapstruct.ap.model.common.Type; */ public class TypeConversion extends ModelElement implements Assignment { + private static final String SOURCE_REFERENCE_PATTERN = ""; private final Set importTypes; private final List exceptionTypes; @@ -46,16 +47,16 @@ public class TypeConversion extends ModelElement implements Assignment { */ private Assignment assignment; - TypeConversion( Set importTypes, List exceptionTypes, - String openExpression, - String closeExpression ) { + String expression ) { this.importTypes = new HashSet( importTypes ); this.importTypes.addAll( exceptionTypes ); this.exceptionTypes = exceptionTypes; - this.openExpression = openExpression; - this.closeExpression = closeExpression; + + int patternIndex = expression.indexOf( SOURCE_REFERENCE_PATTERN ); + this.openExpression = expression.substring( 0, patternIndex ); + this.closeExpression = expression.substring( patternIndex + 8 ); } @Override