From 565cc3b8d5cd7a666629ded35677b6cc12637db1 Mon Sep 17 00:00:00 2001 From: Gunnar Morling Date: Thu, 8 May 2014 00:06:56 +0200 Subject: [PATCH] #75 Adapting to changed model types after rebase --- .../AbstractJodaTypeToStringConversion.java | 52 +++++++++---------- .../JodaTimeToCalendarConversion.java | 34 ++++++------ .../conversion/JodaTimeToDateConversion.java | 27 +++++----- 3 files changed, 56 insertions(+), 57 deletions(-) diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/AbstractJodaTypeToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/AbstractJodaTypeToStringConversion.java index 5a658506d..2584ce0e6 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/AbstractJodaTypeToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/AbstractJodaTypeToStringConversion.java @@ -18,51 +18,49 @@ */ package org.mapstruct.ap.conversion; -import org.mapstruct.ap.model.TypeConversion; +import java.util.Locale; +import java.util.Set; + import org.mapstruct.ap.model.common.ConversionContext; import org.mapstruct.ap.model.common.Type; import org.mapstruct.ap.util.Strings; -import java.util.Collections; -import java.util.Locale; - import static org.mapstruct.ap.util.Collections.asSet; /** * */ -public abstract class AbstractJodaTypeToStringConversion implements ConversionProvider { +public abstract class AbstractJodaTypeToStringConversion extends SimpleConversion { - public TypeConversion to(String sourceReference, ConversionContext conversionContext) { - return new TypeConversion( - asSet( - conversionContext.getTypeFactory().getType( dateTimeFormatClass() ), - conversionContext.getTypeFactory().getType( Locale.class ) ), - Collections.emptyList(), - conversionString( sourceReference, conversionContext, "print" ) + @Override + protected String getToExpression(ConversionContext conversionContext) { + return conversionString( conversionContext, "print" ); + } + + @Override + protected Set getToConversionImportTypes(ConversionContext conversionContext) { + return asSet( + conversionContext.getTypeFactory().getType( dateTimeFormatClass() ), + conversionContext.getTypeFactory().getType( Locale.class ) ); } - public TypeConversion from(String targetReference, ConversionContext conversionContext) { - return new TypeConversion( - asSet( - conversionContext.getTypeFactory().getType( dateTimeFormatClass() ) ), - Collections.emptyList(), - conversionString( - targetReference, - conversionContext, - parseMethod() ) - ); + @Override + protected String getFromExpression(ConversionContext conversionContext) { + return conversionString( conversionContext, parseMethod() ); } - private String conversionString(String reference, ConversionContext conversionContext, String method) { + @Override + protected Set getFromConversionImportTypes(ConversionContext conversionContext) { + return asSet( conversionContext.getTypeFactory().getType( dateTimeFormatClass() ) ); + } + + private String conversionString(ConversionContext conversionContext, String method) { StringBuilder conversionString = new StringBuilder( "DateTimeFormat" ); conversionString.append( dateFormatPattern( conversionContext ) ); conversionString.append( "." ); conversionString.append( method ); - conversionString.append( "( " ); - conversionString.append( reference ); - conversionString.append( " )" ); + conversionString.append( "( )" ); return conversionString.toString(); } @@ -98,7 +96,7 @@ public abstract class AbstractJodaTypeToStringConversion implements ConversionPr return Class.forName( "org.joda.time.format.DateTimeFormat" ); } catch ( ClassNotFoundException e ) { - throw new RuntimeException( "org.joda.time.format.DateTimeFormat not found on classpath" ); + throw new RuntimeException( "org.joda.time.format.DateTimeFormat not found on classpath" ); } } diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/JodaTimeToCalendarConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/JodaTimeToCalendarConversion.java index 5f690c840..ce6e99b3a 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/JodaTimeToCalendarConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/JodaTimeToCalendarConversion.java @@ -18,34 +18,36 @@ */ package org.mapstruct.ap.conversion; -import org.mapstruct.ap.model.TypeConversion; +import java.util.Locale; +import java.util.Set; + import org.mapstruct.ap.model.common.ConversionContext; import org.mapstruct.ap.model.common.Type; -import java.util.Collections; -import java.util.Locale; - import static org.mapstruct.ap.util.Collections.asSet; /** * */ -public class JodaTimeToCalendarConversion implements ConversionProvider { +public class JodaTimeToCalendarConversion extends SimpleConversion { @Override - public TypeConversion to(String sourceReference, ConversionContext conversionContext) { - return new TypeConversion( - asSet( conversionContext.getTypeFactory().getType( Locale.class ) ), - Collections.emptyList(), - sourceReference + ".toCalendar( Locale.getDefault() )" ); + protected String getToExpression(ConversionContext conversionContext) { + return ".toCalendar( Locale.getDefault() )"; } @Override - public TypeConversion from(String targetReference, ConversionContext conversionContext) { - return new TypeConversion( - Collections.emptySet(), - Collections.emptyList(), - "new " + conversionContext.getTargetType().getFullyQualifiedName() + "( " + targetReference - + " )" ); + protected Set getToConversionImportTypes(ConversionContext conversionContext) { + return asSet( conversionContext.getTypeFactory().getType( Locale.class ) ); + } + + @Override + protected String getFromExpression(ConversionContext conversionContext) { + return "new " + conversionContext.getTargetType().getName() + "( )"; + } + + @Override + protected Set getFromConversionImportTypes(ConversionContext conversionContext) { + return asSet( conversionContext.getTargetType() ); } } diff --git a/processor/src/main/java/org/mapstruct/ap/conversion/JodaTimeToDateConversion.java b/processor/src/main/java/org/mapstruct/ap/conversion/JodaTimeToDateConversion.java index 685e95cdb..081385f1b 100644 --- a/processor/src/main/java/org/mapstruct/ap/conversion/JodaTimeToDateConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/conversion/JodaTimeToDateConversion.java @@ -18,11 +18,12 @@ */ package org.mapstruct.ap.conversion; -import org.mapstruct.ap.model.TypeConversion; +import java.util.Set; + import org.mapstruct.ap.model.common.ConversionContext; import org.mapstruct.ap.model.common.Type; -import java.util.Collections; +import static org.mapstruct.ap.util.Collections.asSet; /** * Implementation of {@link org.mapstruct.ap.conversion.ConversionProvider} mapping Joda Types @@ -34,22 +35,20 @@ import java.util.Collections; * to java.util.Date by invoking org.joda.time.base.AbstractInstant#toDate(). * Backward conversion is done. */ -public class JodaTimeToDateConversion implements ConversionProvider { +public class JodaTimeToDateConversion extends SimpleConversion { @Override - public TypeConversion to(String sourceReference, ConversionContext conversionContext) { - return new TypeConversion( - Collections.emptySet(), - Collections.emptyList(), - sourceReference + ".toDate()" ); + protected String getToExpression(ConversionContext conversionContext) { + return ".toDate()"; } @Override - public TypeConversion from(String targetReference, ConversionContext conversionContext) { - return new TypeConversion( - Collections.emptySet(), - Collections.emptyList(), - "new " + conversionContext.getTargetType().getFullyQualifiedName() + "( " + targetReference - + " )" ); + protected String getFromExpression(ConversionContext conversionContext) { + return "new " + conversionContext.getTargetType().getName() + "( )"; + } + + @Override + protected Set getFromConversionImportTypes(ConversionContext conversionContext) { + return asSet( conversionContext.getTargetType() ); } }