diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/Decorator.java b/processor/src/main/java/org/mapstruct/ap/internal/model/Decorator.java index 45cd914bc..58adb44df 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/model/Decorator.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/model/Decorator.java @@ -152,6 +152,6 @@ public class Decorator extends GeneratedType { @Override protected String getTemplateName() { - return GeneratedType.class.getName() + ".ftl"; + return getTemplateNameForClass( GeneratedType.class ); } } diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/Mapper.java b/processor/src/main/java/org/mapstruct/ap/internal/model/Mapper.java index 65647901c..947508c45 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/model/Mapper.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/model/Mapper.java @@ -160,6 +160,6 @@ public class Mapper extends GeneratedType { @Override protected String getTemplateName() { - return GeneratedType.class.getName() + ".ftl"; + return getTemplateNameForClass( GeneratedType.class ); } } diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/VirtualMappingMethod.java b/processor/src/main/java/org/mapstruct/ap/internal/model/VirtualMappingMethod.java index 46fd2cd6f..e2bed2d3f 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/model/VirtualMappingMethod.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/model/VirtualMappingMethod.java @@ -31,15 +31,13 @@ import org.mapstruct.ap.internal.model.source.builtin.BuiltInMethod; */ public class VirtualMappingMethod extends MappingMethod { - private static final String BUILTIN_METHOD_TEMPLATE_PREFIX = "org.mapstruct.ap.internal.model.builtin."; - private final String templateName; private final Set importTypes; public VirtualMappingMethod(BuiltInMethod method) { super( method ); this.importTypes = method.getImportTypes(); - this.templateName = BUILTIN_METHOD_TEMPLATE_PREFIX + method.getClass().getSimpleName() + ".ftl"; + this.templateName = getTemplateNameForClass( method.getClass() ); } @Override diff --git a/processor/src/main/java/org/mapstruct/ap/internal/writer/FreeMarkerWritable.java b/processor/src/main/java/org/mapstruct/ap/internal/writer/FreeMarkerWritable.java index e61bb1c77..d0ad9a167 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/writer/FreeMarkerWritable.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/writer/FreeMarkerWritable.java @@ -33,13 +33,24 @@ public abstract class FreeMarkerWritable implements Writable { } /** - * Returns the name of the template to be used for a specific writable type. By default, the fully-qualified class - * name of the given model element type, appended with the extension {@code *.ftl} is used as template file name, - * but this can be customized by overriding this method if required. + * Returns the name of the template to be used for a specific writable type. By default, + * {@link #getTemplateNameForClass(Class)} is called with {@code getClass()}, but this can be customized by + * overriding this method if required. * * @return the name of the template. Must not be {@code null}. */ protected String getTemplateName() { - return getClass().getName() + ".ftl"; + return getTemplateNameForClass( getClass() ); + } + + /** + * Returns the name of the template to be used for a specific writable type. By default, the package directory and + * the class name of the given model element type, appended with the extension {@code *.ftl} is used as template + * file name. + * + * @return the name of the template. Must not be {@code null}. + */ + protected String getTemplateNameForClass(Class clazz) { + return clazz.getName().replace( '.', '/' ) + ".ftl"; } } diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.Annotation.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/Annotation.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.Annotation.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/Annotation.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.AnnotationMapperReference.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/AnnotationMapperReference.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.AnnotationMapperReference.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/AnnotationMapperReference.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.BeanMappingMethod.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/BeanMappingMethod.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.BeanMappingMethod.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/BeanMappingMethod.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.ConversionMethod.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/ConversionMethod.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.ConversionMethod.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/ConversionMethod.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.DecoratorConstructor.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/DecoratorConstructor.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.DecoratorConstructor.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/DecoratorConstructor.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.DefaultMapperReference.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/DefaultMapperReference.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.DefaultMapperReference.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/DefaultMapperReference.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.DelegatingMethod.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/DelegatingMethod.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.DelegatingMethod.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/DelegatingMethod.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.Direct.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/Direct.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.Direct.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/Direct.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.EnumMappingMethod.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/EnumMappingMethod.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.EnumMappingMethod.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/EnumMappingMethod.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.Field.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/Field.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.Field.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/Field.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.GeneratedType.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/GeneratedType.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.GeneratedType.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/GeneratedType.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.IterableMappingMethod.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/IterableMappingMethod.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.IterableMappingMethod.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/IterableMappingMethod.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.LifecycleCallbackMethodReference.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/LifecycleCallbackMethodReference.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.LifecycleCallbackMethodReference.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/LifecycleCallbackMethodReference.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.MapMappingMethod.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/MapMappingMethod.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.MapMappingMethod.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/MapMappingMethod.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.MethodReference.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/MethodReference.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.MethodReference.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/MethodReference.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.NestedPropertyMappingMethod.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/NestedPropertyMappingMethod.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.NestedPropertyMappingMethod.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/NestedPropertyMappingMethod.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.PropertyMapping.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/PropertyMapping.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.PropertyMapping.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/PropertyMapping.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.TypeConversion.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/TypeConversion.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.TypeConversion.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/TypeConversion.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.AdderWrapper.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/AdderWrapper.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.AdderWrapper.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/AdderWrapper.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.ArrayCopyWrapper.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/ArrayCopyWrapper.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.ArrayCopyWrapper.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/ArrayCopyWrapper.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.GetterWrapperForCollectionsAndMaps.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/GetterWrapperForCollectionsAndMaps.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.GetterWrapperForCollectionsAndMaps.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/GetterWrapperForCollectionsAndMaps.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.LocalVarWrapper.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/LocalVarWrapper.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.LocalVarWrapper.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/LocalVarWrapper.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.NewCollectionOrMapWrapper.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/NewCollectionOrMapWrapper.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.NewCollectionOrMapWrapper.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/NewCollectionOrMapWrapper.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.NullCheckWrapper.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/NullCheckWrapper.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.NullCheckWrapper.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/NullCheckWrapper.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.SetterWrapper.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/SetterWrapper.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.SetterWrapper.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/SetterWrapper.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.SetterWrapperForCollectionsAndMaps.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/SetterWrapperForCollectionsAndMaps.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.SetterWrapperForCollectionsAndMaps.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/SetterWrapperForCollectionsAndMaps.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.UpdateWrapper.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/UpdateWrapper.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.assignment.UpdateWrapper.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/assignment/UpdateWrapper.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.common.Parameter.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/common/Parameter.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.common.Parameter.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/common/Parameter.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.common.Type.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/common/Type.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.common.Type.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/common/Type.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.CalendarToXmlGregorianCalendar.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/CalendarToXmlGregorianCalendar.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.CalendarToXmlGregorianCalendar.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/CalendarToXmlGregorianCalendar.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.CalendarToZonedDateTime.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/CalendarToZonedDateTime.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.CalendarToZonedDateTime.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/CalendarToZonedDateTime.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.DateToXmlGregorianCalendar.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/DateToXmlGregorianCalendar.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.DateToXmlGregorianCalendar.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/DateToXmlGregorianCalendar.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.JaxbElemToValue.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/JaxbElemToValue.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.JaxbElemToValue.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/JaxbElemToValue.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.StringToXmlGregorianCalendar.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/StringToXmlGregorianCalendar.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.StringToXmlGregorianCalendar.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/StringToXmlGregorianCalendar.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.XmlGregorianCalendarToCalendar.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/XmlGregorianCalendarToCalendar.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.XmlGregorianCalendarToCalendar.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/XmlGregorianCalendarToCalendar.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.XmlGregorianCalendarToDate.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/XmlGregorianCalendarToDate.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.XmlGregorianCalendarToDate.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/XmlGregorianCalendarToDate.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.XmlGregorianCalendarToString.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/XmlGregorianCalendarToString.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.XmlGregorianCalendarToString.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/XmlGregorianCalendarToString.ftl diff --git a/processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.ZonedDateTimeToCalendar.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/ZonedDateTimeToCalendar.ftl similarity index 100% rename from processor/src/main/resources/org.mapstruct.ap.internal.model.builtin.ZonedDateTimeToCalendar.ftl rename to processor/src/main/resources/org/mapstruct/ap/internal/model/source/builtin/ZonedDateTimeToCalendar.ftl