mirror of
https://github.com/mapstruct/mapstruct.git
synced 2025-07-12 00:00:08 +08:00
#157 removing String array for opening and closing expression in favour of ConversionExpression
This commit is contained in:
parent
b10e60d4b5
commit
909b5142b7
@ -35,13 +35,13 @@ import static org.mapstruct.ap.util.Collections.asSet;
|
||||
public class BigDecimalToBigIntegerConversion extends SimpleConversion {
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "", ".toBigInteger()" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", ".toBigInteger()" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{"new BigDecimal( ", " )"};
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression("new BigDecimal( ", " )");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -44,13 +44,13 @@ public class BigDecimalToPrimitiveConversion extends SimpleConversion {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "", "." + targetType.getName() + "Value()" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", "." + targetType.getName() + "Value()" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "BigDecimal.valueOf( ", " )" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "BigDecimal.valueOf( ", " )" );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,13 +34,13 @@ import static org.mapstruct.ap.util.Collections.asSet;
|
||||
public class BigDecimalToStringConversion extends SimpleConversion {
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "", ".toString()" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", ".toString()" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "new BigDecimal( ", " )" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "new BigDecimal( ", " )" );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -45,13 +45,13 @@ public class BigDecimalToWrapperConversion extends SimpleConversion {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "", "." + targetType.getName() + "Value()" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", "." + targetType.getName() + "Value()" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "BigDecimal.valueOf( ", " )" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "BigDecimal.valueOf( ", " )" );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -44,17 +44,17 @@ public class BigIntegerToPrimitiveConversion extends SimpleConversion {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "", "." + targetType.getName() + "Value()" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", "." + targetType.getName() + "Value()" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
String castString = "";
|
||||
if ( targetType == float.class || targetType == double.class ) {
|
||||
castString = "(long) ";
|
||||
}
|
||||
return new String[]{ "BigInteger.valueOf( " + castString, " )" };
|
||||
return new ConversionExpression( "BigInteger.valueOf( " + castString, " )" );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,13 +34,13 @@ import static org.mapstruct.ap.util.Collections.asSet;
|
||||
public class BigIntegerToStringConversion extends SimpleConversion {
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "", ".toString()" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", ".toString()" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "new BigInteger( ", " )" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "new BigInteger( ", " )" );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -45,19 +45,19 @@ public class BigIntegerToWrapperConversion extends SimpleConversion {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "", "." + targetType.getName() + "Value()" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", "." + targetType.getName() + "Value()" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
|
||||
String toLongValueStr = "";
|
||||
if ( targetType == float.class || targetType == double.class ) {
|
||||
toLongValueStr = ".longValue()";
|
||||
}
|
||||
|
||||
return new String[]{ "BigInteger.valueOf( ", toLongValueStr + " )" };
|
||||
return new ConversionExpression( "BigInteger.valueOf( ", toLongValueStr + " )" );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -28,12 +28,12 @@ import org.mapstruct.ap.model.common.ConversionContext;
|
||||
public class CharToStringConversion extends SimpleConversion {
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "String.valueOf( ", " )" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "String.valueOf( ", " )" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "", ".charAt( 0 )" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", ".charAt( 0 )" );
|
||||
}
|
||||
}
|
||||
|
@ -28,12 +28,12 @@ import org.mapstruct.ap.model.common.ConversionContext;
|
||||
public class CharWrapperToStringConversion extends SimpleConversion {
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "", ".toString()" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", ".toString()" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[]{ "", ".charAt( 0 )" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", ".charAt( 0 )" );
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,56 @@
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
|
||||
}
|
@ -33,13 +33,15 @@ import static org.mapstruct.ap.util.Collections.asSet;
|
||||
public class EnumStringConversion extends SimpleConversion {
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[] {"", ".toString()" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression("", ".toString()" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[] { "Enum.valueOf( " + conversionContext.getTargetType().getName() + ".class, ", " )" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression(
|
||||
"Enum.valueOf( " + conversionContext.getTargetType().getName() + ".class, ",
|
||||
" )" );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -38,12 +38,12 @@ public class PrimitiveToPrimitiveConversion extends SimpleConversion {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[] {"", ""};
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return ConversionExpression.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[] { "(" + sourceType + ") ", "" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "(" + sourceType + ") ", "" );
|
||||
}
|
||||
}
|
||||
|
@ -43,13 +43,13 @@ public class PrimitiveToStringConversion extends SimpleConversion {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[] { "String.valueOf( ", " )" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "String.valueOf( ", " )" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[] { wrapperType.getSimpleName() + ".parse" +
|
||||
Strings.capitalize( sourceType.getSimpleName() ) + "( ", " )" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( wrapperType.getSimpleName() + ".parse" +
|
||||
Strings.capitalize( sourceType.getSimpleName() ) + "( ", " )" );
|
||||
}
|
||||
}
|
||||
|
@ -45,17 +45,17 @@ public class PrimitiveToWrapperConversion extends SimpleConversion {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
if ( sourceType == targetType ) {
|
||||
return new String[] { "", "" };
|
||||
return ConversionExpression.empty();
|
||||
}
|
||||
else {
|
||||
return new String[] { "(" + targetType.getName() + ") ", "" };
|
||||
return new ConversionExpression( "(" + targetType.getName() + ") ", "" );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[] { "", "." + sourceType.getName() + "Value()" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "", "." + sourceType.getName() + "Value()" );
|
||||
}
|
||||
}
|
||||
|
@ -34,24 +34,24 @@ public abstract class SimpleConversion implements ConversionProvider {
|
||||
|
||||
@Override
|
||||
public TypeConversion to(String sourceReference, ConversionContext conversionContext) {
|
||||
String[] toExpressions = getToExpressions( conversionContext );
|
||||
ConversionExpression toExpressions = getToExpressions( conversionContext );
|
||||
return new TypeConversion(
|
||||
getToConversionImportTypes( conversionContext ),
|
||||
Collections.<Type>emptyList(),
|
||||
toExpressions[0],
|
||||
toExpressions.getOpenExpression(),
|
||||
sourceReference,
|
||||
toExpressions[1] );
|
||||
toExpressions.getCloseExpression() );
|
||||
}
|
||||
|
||||
@Override
|
||||
public TypeConversion from(String targetReference, ConversionContext conversionContext) {
|
||||
String[] fromExpressions = getFromExpressions( conversionContext );
|
||||
ConversionExpression fromExpressions = getFromExpressions( conversionContext );
|
||||
return new TypeConversion(
|
||||
getFromConversionImportTypes( conversionContext ),
|
||||
Collections.<Type>emptyList(),
|
||||
fromExpressions[0],
|
||||
fromExpressions.getOpenExpression(),
|
||||
targetReference,
|
||||
fromExpressions[1] );
|
||||
fromExpressions.getCloseExpression() );
|
||||
}
|
||||
|
||||
/**
|
||||
@ -59,10 +59,10 @@ public abstract class SimpleConversion implements ConversionProvider {
|
||||
*
|
||||
* @param conversionContext ConversionContext providing optional information required for creating the conversion.
|
||||
*
|
||||
* @return The conversion string from source to target. toExpressions[0] = openExpression,
|
||||
* toExpressions[1] = closeExpression
|
||||
* @return The conversion string from source to target. toConversionExpressions[0] = openConversionExpression,
|
||||
toConversionExpressions[1] = closeConversionExpression
|
||||
*/
|
||||
protected abstract String[] getToExpressions( ConversionContext conversionContext );
|
||||
protected abstract ConversionExpression getToExpressions( ConversionContext conversionContext );
|
||||
|
||||
/**
|
||||
* Creates the conversion string (opening and closing part) from target to source.
|
||||
@ -70,10 +70,10 @@ public abstract class SimpleConversion implements ConversionProvider {
|
||||
* @param conversionContext ConversionContext providing optional information required for creating
|
||||
* the conversion.
|
||||
*
|
||||
* @return The conversion string from target to source, fromExpressions[0] = openExpression,
|
||||
* fromExpressions[1] = closeExpression
|
||||
* @return The conversion string from target to source, fromConversionExpressions[0] = openConversionExpression,
|
||||
fromConversionExpressions[1] = closeConversionExpression
|
||||
*/
|
||||
protected abstract String[] getFromExpressions( ConversionContext conversionContext );
|
||||
protected abstract ConversionExpression getFromExpressions( ConversionContext conversionContext );
|
||||
|
||||
/**
|
||||
* Returns a set with imported types of the "from" conversion. Defaults to an empty set; can be overridden in
|
||||
|
@ -42,13 +42,13 @@ public class WrapperToStringConversion extends SimpleConversion {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
return new String[] { "String.valueOf( ", " )" };
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( "String.valueOf( ", " )" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
return new String[] { sourceType.getSimpleName() + ".parse" +
|
||||
Strings.capitalize( primitiveType.getSimpleName() ) + "( ", " )" };
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
return new ConversionExpression( sourceType.getSimpleName() + ".parse" +
|
||||
Strings.capitalize( primitiveType.getSimpleName() ) + "( ", " )" );
|
||||
}
|
||||
}
|
||||
|
@ -44,22 +44,22 @@ public class WrapperToWrapperConversion extends SimpleConversion {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getToExpressions(ConversionContext conversionContext) {
|
||||
public ConversionExpression getToExpressions(ConversionContext conversionContext) {
|
||||
if ( sourceType == targetType ) {
|
||||
return new String[] { "", "" };
|
||||
return ConversionExpression.empty();
|
||||
}
|
||||
else {
|
||||
return new String[] { "", "." + targetType.getName() + "Value()" };
|
||||
return new ConversionExpression( "", "." + targetType.getName() + "Value()" );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFromExpressions(ConversionContext conversionContext) {
|
||||
public ConversionExpression getFromExpressions(ConversionContext conversionContext) {
|
||||
if ( sourceType == targetType ) {
|
||||
return new String[] { "", "" };
|
||||
return ConversionExpression.empty();
|
||||
}
|
||||
else {
|
||||
return new String[] { "", "." + sourceType.getName() + "Value()" };
|
||||
return new ConversionExpression( "", "." + sourceType.getName() + "Value()" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user