From e072826c9d6d0b2496b2acfc466f4e9f9c619fe7 Mon Sep 17 00:00:00 2001 From: Gunnar Morling Date: Sun, 26 Jan 2014 11:46:48 +0100 Subject: [PATCH] #109 Removing package cycle around Options class --- .../org/mapstruct/ap/MappingProcessor.java | 6 +++-- .../java/org/mapstruct/ap/model/Mapper.java | 19 ++++++++------- .../ap/{model => option}/Options.java | 3 ++- .../ap/{util => option}/OptionsHelper.java | 3 +-- .../ap/{model => option}/ReportingPolicy.java | 2 +- .../org/mapstruct/ap/option/package-info.java | 24 +++++++++++++++++++ ...nnotationBasedComponentModelProcessor.java | 3 ++- .../DefaultModelElementProcessorContext.java | 2 +- .../ap/processor/MapperCreationProcessor.java | 7 +++--- .../ap/processor/ModelElementProcessor.java | 2 +- .../org.mapstruct.ap.model.Mapper.ftl | 2 +- 11 files changed, 51 insertions(+), 22 deletions(-) rename processor/src/main/java/org/mapstruct/ap/{model => option}/Options.java (98%) rename processor/src/main/java/org/mapstruct/ap/{util => option}/OptionsHelper.java (95%) rename processor/src/main/java/org/mapstruct/ap/{model => option}/ReportingPolicy.java (98%) create mode 100644 processor/src/main/java/org/mapstruct/ap/option/package-info.java diff --git a/processor/src/main/java/org/mapstruct/ap/MappingProcessor.java b/processor/src/main/java/org/mapstruct/ap/MappingProcessor.java index 86d6ad8c9..d01bf3aa6 100644 --- a/processor/src/main/java/org/mapstruct/ap/MappingProcessor.java +++ b/processor/src/main/java/org/mapstruct/ap/MappingProcessor.java @@ -25,6 +25,7 @@ import java.util.Iterator; import java.util.List; import java.util.ServiceLoader; import java.util.Set; + import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.ProcessingEnvironment; import javax.annotation.processing.Processor; @@ -40,14 +41,15 @@ import javax.tools.Diagnostic.Kind; import net.java.dev.hickory.prism.GeneratePrism; import net.java.dev.hickory.prism.GeneratePrisms; + import org.mapstruct.IterableMapping; import org.mapstruct.MapMapping; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.MappingTarget; import org.mapstruct.Mappings; -import org.mapstruct.ap.model.Options; -import org.mapstruct.ap.model.ReportingPolicy; +import org.mapstruct.ap.option.Options; +import org.mapstruct.ap.option.ReportingPolicy; import org.mapstruct.ap.processor.DefaultModelElementProcessorContext; import org.mapstruct.ap.processor.ModelElementProcessor; import org.mapstruct.ap.processor.ModelElementProcessor.ProcessorContext; diff --git a/processor/src/main/java/org/mapstruct/ap/model/Mapper.java b/processor/src/main/java/org/mapstruct/ap/model/Mapper.java index 2a2354a9f..355b00a60 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/Mapper.java +++ b/processor/src/main/java/org/mapstruct/ap/model/Mapper.java @@ -23,6 +23,7 @@ import java.util.Collection; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; + import javax.annotation.Generated; import javax.lang.model.element.ElementKind; import javax.lang.model.element.TypeElement; @@ -48,11 +49,11 @@ public class Mapper extends ModelElement { private final List annotations; private final List mappingMethods; private final List referencedMappers; - private final Options options; + private final boolean suppressGeneratorTimestamp; private Mapper(TypeFactory typeFactory, String packageName, boolean superTypeIsInterface, String interfaceName, String implementationName, List mappingMethods, - List referencedMappers, Options options) { + List referencedMappers, boolean suppressGeneratorTimestamp) { this.packageName = packageName; this.superTypeIsInterface = superTypeIsInterface; this.interfaceName = interfaceName; @@ -60,7 +61,7 @@ public class Mapper extends ModelElement { this.annotations = new ArrayList(); this.mappingMethods = mappingMethods; this.referencedMappers = referencedMappers; - this.options = options; + this.suppressGeneratorTimestamp = suppressGeneratorTimestamp; this.typeFactory = typeFactory; } @@ -70,8 +71,8 @@ public class Mapper extends ModelElement { private TypeElement element; private List mappingMethods; private List mapperReferences; - private Options options; private Elements elementUtils; + private boolean suppressGeneratorTimestamp; public Builder element(TypeElement element) { this.element = element; @@ -88,8 +89,8 @@ public class Mapper extends ModelElement { return this; } - public Builder options(Options options) { - this.options = options; + public Builder suppressGeneratorTimestamp(boolean suppressGeneratorTimestamp) { + this.suppressGeneratorTimestamp = suppressGeneratorTimestamp; return this; } @@ -112,7 +113,7 @@ public class Mapper extends ModelElement { element.getSimpleName() + IMPLEMENTATION_SUFFIX, mappingMethods, mapperReferences, - options + suppressGeneratorTimestamp ); } } @@ -208,8 +209,8 @@ public class Mapper extends ModelElement { return referencedMappers; } - public Options getOptions() { - return options; + public boolean isSuppressGeneratorTimestamp() { + return suppressGeneratorTimestamp; } public void addAnnotation(Annotation annotation) { diff --git a/processor/src/main/java/org/mapstruct/ap/model/Options.java b/processor/src/main/java/org/mapstruct/ap/option/Options.java similarity index 98% rename from processor/src/main/java/org/mapstruct/ap/model/Options.java rename to processor/src/main/java/org/mapstruct/ap/option/Options.java index 09d07d22b..0f2b82796 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/Options.java +++ b/processor/src/main/java/org/mapstruct/ap/option/Options.java @@ -16,7 +16,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.mapstruct.ap.model; +package org.mapstruct.ap.option; + /** * The options passed to the code generator. diff --git a/processor/src/main/java/org/mapstruct/ap/util/OptionsHelper.java b/processor/src/main/java/org/mapstruct/ap/option/OptionsHelper.java similarity index 95% rename from processor/src/main/java/org/mapstruct/ap/util/OptionsHelper.java rename to processor/src/main/java/org/mapstruct/ap/option/OptionsHelper.java index 6d1693b61..fdd1b959d 100644 --- a/processor/src/main/java/org/mapstruct/ap/util/OptionsHelper.java +++ b/processor/src/main/java/org/mapstruct/ap/option/OptionsHelper.java @@ -16,9 +16,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.mapstruct.ap.util; +package org.mapstruct.ap.option; -import org.mapstruct.ap.model.Options; /** * Helper class for dealing with {@link Options}. diff --git a/processor/src/main/java/org/mapstruct/ap/model/ReportingPolicy.java b/processor/src/main/java/org/mapstruct/ap/option/ReportingPolicy.java similarity index 98% rename from processor/src/main/java/org/mapstruct/ap/model/ReportingPolicy.java rename to processor/src/main/java/org/mapstruct/ap/option/ReportingPolicy.java index 1160dddd2..dadfa6200 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/ReportingPolicy.java +++ b/processor/src/main/java/org/mapstruct/ap/option/ReportingPolicy.java @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.mapstruct.ap.model; +package org.mapstruct.ap.option; import javax.tools.Diagnostic; import javax.tools.Diagnostic.Kind; diff --git a/processor/src/main/java/org/mapstruct/ap/option/package-info.java b/processor/src/main/java/org/mapstruct/ap/option/package-info.java new file mode 100644 index 000000000..69a25e130 --- /dev/null +++ b/processor/src/main/java/org/mapstruct/ap/option/package-info.java @@ -0,0 +1,24 @@ +/** + * 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. + */ +/** + *

+ * Provides access to the options passed to the annotation processor. + *

+ */ +package org.mapstruct.ap.option; diff --git a/processor/src/main/java/org/mapstruct/ap/processor/AnnotationBasedComponentModelProcessor.java b/processor/src/main/java/org/mapstruct/ap/processor/AnnotationBasedComponentModelProcessor.java index f04bf8579..269b9be85 100644 --- a/processor/src/main/java/org/mapstruct/ap/processor/AnnotationBasedComponentModelProcessor.java +++ b/processor/src/main/java/org/mapstruct/ap/processor/AnnotationBasedComponentModelProcessor.java @@ -19,6 +19,7 @@ package org.mapstruct.ap.processor; import java.util.ListIterator; + import javax.lang.model.element.TypeElement; import org.mapstruct.ap.MapperPrism; @@ -26,7 +27,7 @@ import org.mapstruct.ap.model.Annotation; import org.mapstruct.ap.model.AnnotationMapperReference; import org.mapstruct.ap.model.Mapper; import org.mapstruct.ap.model.MapperReference; -import org.mapstruct.ap.util.OptionsHelper; +import org.mapstruct.ap.option.OptionsHelper; import org.mapstruct.ap.util.TypeFactory; /** diff --git a/processor/src/main/java/org/mapstruct/ap/processor/DefaultModelElementProcessorContext.java b/processor/src/main/java/org/mapstruct/ap/processor/DefaultModelElementProcessorContext.java index 5711c6507..0eb9442e4 100644 --- a/processor/src/main/java/org/mapstruct/ap/processor/DefaultModelElementProcessorContext.java +++ b/processor/src/main/java/org/mapstruct/ap/processor/DefaultModelElementProcessorContext.java @@ -28,7 +28,7 @@ import javax.lang.model.util.Elements; import javax.lang.model.util.Types; import javax.tools.Diagnostic.Kind; -import org.mapstruct.ap.model.Options; +import org.mapstruct.ap.option.Options; import org.mapstruct.ap.util.TypeFactory; /** diff --git a/processor/src/main/java/org/mapstruct/ap/processor/MapperCreationProcessor.java b/processor/src/main/java/org/mapstruct/ap/processor/MapperCreationProcessor.java index 244655857..bca23ef2e 100644 --- a/processor/src/main/java/org/mapstruct/ap/processor/MapperCreationProcessor.java +++ b/processor/src/main/java/org/mapstruct/ap/processor/MapperCreationProcessor.java @@ -27,6 +27,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; + import javax.annotation.processing.Messager; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeElement; @@ -51,14 +52,14 @@ import org.mapstruct.ap.model.Mapper; import org.mapstruct.ap.model.MapperReference; import org.mapstruct.ap.model.MappingMethod; import org.mapstruct.ap.model.MappingMethodReference; -import org.mapstruct.ap.model.Options; import org.mapstruct.ap.model.Parameter; import org.mapstruct.ap.model.PropertyMapping; -import org.mapstruct.ap.model.ReportingPolicy; import org.mapstruct.ap.model.Type; import org.mapstruct.ap.model.TypeConversion; import org.mapstruct.ap.model.source.Mapping; import org.mapstruct.ap.model.source.Method; +import org.mapstruct.ap.option.Options; +import org.mapstruct.ap.option.ReportingPolicy; import org.mapstruct.ap.util.Executables; import org.mapstruct.ap.util.Filters; import org.mapstruct.ap.util.MethodMatcher; @@ -112,7 +113,7 @@ public class MapperCreationProcessor implements ModelElementProcessor @Generated( - value = "org.mapstruct.ap.MappingProcessor"<#if options.suppressGeneratorTimestamp == false>, + value = "org.mapstruct.ap.MappingProcessor"<#if suppressGeneratorTimestamp == false>, date = "${.now?string("yyyy-MM-dd'T'HH:mm:ssZ")}" ) <#list annotations as annotation>