Rename o.m.a.i.option.ReportingPolicy to o.m.a.i.prism.ReportingPolicyPrism and add missing prism enum tests.

This commit is contained in:
Andreas Gudian 2016-09-04 12:32:22 +02:00
parent 8071723bae
commit e57f4c9e5c
6 changed files with 38 additions and 22 deletions

View File

@ -44,8 +44,8 @@ import javax.tools.Diagnostic.Kind;
import org.mapstruct.ap.internal.model.Mapper; import org.mapstruct.ap.internal.model.Mapper;
import org.mapstruct.ap.internal.option.Options; import org.mapstruct.ap.internal.option.Options;
import org.mapstruct.ap.internal.option.ReportingPolicy;
import org.mapstruct.ap.internal.prism.MapperPrism; import org.mapstruct.ap.internal.prism.MapperPrism;
import org.mapstruct.ap.internal.prism.ReportingPolicyPrism;
import org.mapstruct.ap.internal.processor.DefaultModelElementProcessorContext; import org.mapstruct.ap.internal.processor.DefaultModelElementProcessorContext;
import org.mapstruct.ap.internal.processor.ModelElementProcessor; import org.mapstruct.ap.internal.processor.ModelElementProcessor;
import org.mapstruct.ap.internal.processor.ModelElementProcessor.ProcessorContext; import org.mapstruct.ap.internal.processor.ModelElementProcessor.ProcessorContext;
@ -131,7 +131,7 @@ public class MappingProcessor extends AbstractProcessor {
return new Options( return new Options(
Boolean.valueOf( processingEnv.getOptions().get( SUPPRESS_GENERATOR_TIMESTAMP ) ), Boolean.valueOf( processingEnv.getOptions().get( SUPPRESS_GENERATOR_TIMESTAMP ) ),
Boolean.valueOf( processingEnv.getOptions().get( SUPPRESS_GENERATOR_VERSION_INFO_COMMENT ) ), Boolean.valueOf( processingEnv.getOptions().get( SUPPRESS_GENERATOR_VERSION_INFO_COMMENT ) ),
unmappedTargetPolicy != null ? ReportingPolicy.valueOf( unmappedTargetPolicy.toUpperCase() ) : null, unmappedTargetPolicy != null ? ReportingPolicyPrism.valueOf( unmappedTargetPolicy.toUpperCase() ) : null,
processingEnv.getOptions().get( DEFAULT_COMPONENT_MODEL ), processingEnv.getOptions().get( DEFAULT_COMPONENT_MODEL ),
Boolean.valueOf( processingEnv.getOptions().get( ALWAYS_GENERATE_SERVICE_FILE ) ) Boolean.valueOf( processingEnv.getOptions().get( ALWAYS_GENERATE_SERVICE_FILE ) )
); );

View File

@ -54,10 +54,10 @@ import org.mapstruct.ap.internal.model.source.SelectionParameters;
import org.mapstruct.ap.internal.model.source.SourceMethod; import org.mapstruct.ap.internal.model.source.SourceMethod;
import org.mapstruct.ap.internal.model.source.SourceReference; import org.mapstruct.ap.internal.model.source.SourceReference;
import org.mapstruct.ap.internal.model.source.TargetReference; import org.mapstruct.ap.internal.model.source.TargetReference;
import org.mapstruct.ap.internal.option.ReportingPolicy;
import org.mapstruct.ap.internal.prism.BeanMappingPrism; import org.mapstruct.ap.internal.prism.BeanMappingPrism;
import org.mapstruct.ap.internal.prism.CollectionMappingStrategyPrism; import org.mapstruct.ap.internal.prism.CollectionMappingStrategyPrism;
import org.mapstruct.ap.internal.prism.NullValueMappingStrategyPrism; import org.mapstruct.ap.internal.prism.NullValueMappingStrategyPrism;
import org.mapstruct.ap.internal.prism.ReportingPolicyPrism;
import org.mapstruct.ap.internal.util.MapperConfiguration; import org.mapstruct.ap.internal.util.MapperConfiguration;
import org.mapstruct.ap.internal.util.Message; import org.mapstruct.ap.internal.util.Message;
import org.mapstruct.ap.internal.util.Strings; import org.mapstruct.ap.internal.util.Strings;
@ -508,7 +508,7 @@ public class BeanMappingMethod extends MappingMethod {
return method.getResultType().getPropertyReadAccessors().get( propertyName ); return method.getResultType().getPropertyReadAccessors().get( propertyName );
} }
private ReportingPolicy getUnmappedTargetPolicy() { private ReportingPolicyPrism getUnmappedTargetPolicy() {
MapperConfiguration mapperSettings = MapperConfiguration.getInstanceOn( ctx.getMapperTypeElement() ); MapperConfiguration mapperSettings = MapperConfiguration.getInstanceOn( ctx.getMapperTypeElement() );
return mapperSettings.unmappedTargetPolicy( ctx.getOptions() ); return mapperSettings.unmappedTargetPolicy( ctx.getOptions() );
@ -517,7 +517,7 @@ public class BeanMappingMethod extends MappingMethod {
private void reportErrorForUnmappedTargetPropertiesIfRequired() { private void reportErrorForUnmappedTargetPropertiesIfRequired() {
// fetch settings from element to implement // fetch settings from element to implement
ReportingPolicy unmappedTargetPolicy = getUnmappedTargetPolicy(); ReportingPolicyPrism unmappedTargetPolicy = getUnmappedTargetPolicy();
if ( !unprocessedTargetProperties.isEmpty() && unmappedTargetPolicy.requiresReport() ) { if ( !unprocessedTargetProperties.isEmpty() && unmappedTargetPolicy.requiresReport() ) {

View File

@ -18,6 +18,7 @@
*/ */
package org.mapstruct.ap.internal.option; package org.mapstruct.ap.internal.option;
import org.mapstruct.ap.internal.prism.ReportingPolicyPrism;
/** /**
* The options passed to the code generator. * The options passed to the code generator.
@ -28,12 +29,12 @@ package org.mapstruct.ap.internal.option;
public class Options { public class Options {
private final boolean suppressGeneratorTimestamp; private final boolean suppressGeneratorTimestamp;
private final boolean suppressGeneratorVersionComment; private final boolean suppressGeneratorVersionComment;
private final ReportingPolicy unmappedTargetPolicy; private final ReportingPolicyPrism unmappedTargetPolicy;
private final boolean alwaysGenerateSpi; private final boolean alwaysGenerateSpi;
private final String defaultComponentModel; private final String defaultComponentModel;
public Options(boolean suppressGeneratorTimestamp, boolean suppressGeneratorVersionComment, public Options(boolean suppressGeneratorTimestamp, boolean suppressGeneratorVersionComment,
ReportingPolicy unmappedTargetPolicy, ReportingPolicyPrism unmappedTargetPolicy,
String defaultComponentModel, boolean alwaysGenerateSpi) { String defaultComponentModel, boolean alwaysGenerateSpi) {
this.suppressGeneratorTimestamp = suppressGeneratorTimestamp; this.suppressGeneratorTimestamp = suppressGeneratorTimestamp;
this.suppressGeneratorVersionComment = suppressGeneratorVersionComment; this.suppressGeneratorVersionComment = suppressGeneratorVersionComment;
@ -50,7 +51,7 @@ public class Options {
return suppressGeneratorVersionComment; return suppressGeneratorVersionComment;
} }
public ReportingPolicy getUnmappedTargetPolicy() { public ReportingPolicyPrism getUnmappedTargetPolicy() {
return unmappedTargetPolicy; return unmappedTargetPolicy;
} }

View File

@ -16,18 +16,17 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.mapstruct.ap.internal.option; package org.mapstruct.ap.internal.prism;
import javax.tools.Diagnostic; import javax.tools.Diagnostic;
import javax.tools.Diagnostic.Kind; import javax.tools.Diagnostic.Kind;
/** /**
* Possible issue reporting policies. Duplicates the enum of the same name from * Prism for the enum {@link org.mapstruct.ReportingPolicy}.
* the core module as this can't be referenced here.
* *
* @author Gunnar Morling * @author Gunnar Morling
*/ */
public enum ReportingPolicy { public enum ReportingPolicyPrism {
IGNORE( null, false, false ), IGNORE( null, false, false ),
WARN( Kind.WARNING, true, false ), WARN( Kind.WARNING, true, false ),
@ -37,7 +36,7 @@ public enum ReportingPolicy {
private final boolean requiresReport; private final boolean requiresReport;
private final boolean failsBuild; private final boolean failsBuild;
ReportingPolicy(Diagnostic.Kind diagnosticKind, boolean requiresReport, boolean failsBuild) { ReportingPolicyPrism(Diagnostic.Kind diagnosticKind, boolean requiresReport, boolean failsBuild) {
this.requiresReport = requiresReport; this.requiresReport = requiresReport;
this.diagnosticKind = diagnosticKind; this.diagnosticKind = diagnosticKind;
this.failsBuild = failsBuild; this.failsBuild = failsBuild;

View File

@ -28,13 +28,13 @@ import javax.lang.model.type.DeclaredType;
import javax.lang.model.type.TypeMirror; import javax.lang.model.type.TypeMirror;
import org.mapstruct.ap.internal.option.Options; import org.mapstruct.ap.internal.option.Options;
import org.mapstruct.ap.internal.option.ReportingPolicy;
import org.mapstruct.ap.internal.prism.CollectionMappingStrategyPrism; import org.mapstruct.ap.internal.prism.CollectionMappingStrategyPrism;
import org.mapstruct.ap.internal.prism.MapperConfigPrism; import org.mapstruct.ap.internal.prism.MapperConfigPrism;
import org.mapstruct.ap.internal.prism.MapperPrism; import org.mapstruct.ap.internal.prism.MapperPrism;
import org.mapstruct.ap.internal.prism.MappingInheritanceStrategyPrism; import org.mapstruct.ap.internal.prism.MappingInheritanceStrategyPrism;
import org.mapstruct.ap.internal.prism.NullValueCheckStrategyPrism; import org.mapstruct.ap.internal.prism.NullValueCheckStrategyPrism;
import org.mapstruct.ap.internal.prism.NullValueMappingStrategyPrism; import org.mapstruct.ap.internal.prism.NullValueMappingStrategyPrism;
import org.mapstruct.ap.internal.prism.ReportingPolicyPrism;
/** /**
* Provides an aggregated view to the settings given via {@link org.mapstruct.Mapper} and * Provides an aggregated view to the settings given via {@link org.mapstruct.Mapper} and
@ -111,13 +111,13 @@ public class MapperConfiguration {
return mapperPrism.imports(); return mapperPrism.imports();
} }
public ReportingPolicy unmappedTargetPolicy(Options options) { public ReportingPolicyPrism unmappedTargetPolicy(Options options) {
if ( mapperPrism.values.unmappedTargetPolicy() != null ) { if ( mapperPrism.values.unmappedTargetPolicy() != null ) {
return ReportingPolicy.valueOf( mapperPrism.unmappedTargetPolicy() ); return ReportingPolicyPrism.valueOf( mapperPrism.unmappedTargetPolicy() );
} }
if ( mapperConfigPrism != null && mapperConfigPrism.values.unmappedTargetPolicy() != null ) { if ( mapperConfigPrism != null && mapperConfigPrism.values.unmappedTargetPolicy() != null ) {
return ReportingPolicy.valueOf( mapperConfigPrism.unmappedTargetPolicy() ); return ReportingPolicyPrism.valueOf( mapperConfigPrism.unmappedTargetPolicy() );
} }
if ( options.getUnmappedTargetPolicy() != null ) { if ( options.getUnmappedTargetPolicy() != null ) {
@ -125,7 +125,7 @@ public class MapperConfiguration {
} }
// fall back to default defined in the annotation // fall back to default defined in the annotation
return ReportingPolicy.valueOf( mapperPrism.unmappedTargetPolicy() ); return ReportingPolicyPrism.valueOf( mapperPrism.unmappedTargetPolicy() );
} }
public CollectionMappingStrategyPrism getCollectionMappingStrategy() { public CollectionMappingStrategyPrism getCollectionMappingStrategy() {

View File

@ -26,10 +26,14 @@ import java.util.List;
import org.junit.Test; import org.junit.Test;
import org.mapstruct.CollectionMappingStrategy; import org.mapstruct.CollectionMappingStrategy;
import org.mapstruct.MappingInheritanceStrategy; import org.mapstruct.MappingInheritanceStrategy;
import org.mapstruct.NullValueCheckStrategy;
import org.mapstruct.NullValueMappingStrategy; import org.mapstruct.NullValueMappingStrategy;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.ap.internal.prism.CollectionMappingStrategyPrism; import org.mapstruct.ap.internal.prism.CollectionMappingStrategyPrism;
import org.mapstruct.ap.internal.prism.MappingInheritanceStrategyPrism; import org.mapstruct.ap.internal.prism.MappingInheritanceStrategyPrism;
import org.mapstruct.ap.internal.prism.NullValueCheckStrategyPrism;
import org.mapstruct.ap.internal.prism.NullValueMappingStrategyPrism; import org.mapstruct.ap.internal.prism.NullValueMappingStrategyPrism;
import org.mapstruct.ap.internal.prism.ReportingPolicyPrism;
/** /**
* Test for manually created prisms on enumeration types * Test for manually created prisms on enumeration types
@ -44,15 +48,27 @@ public class EnumPrismsTest {
} }
@Test @Test
public void mapNullToDefaultStrategyPrismIsCorrect() { public void mappingInheritanceStrategyPrismIsCorrect() {
assertThat( namesOf( MappingInheritanceStrategy.values() ) ).isEqualTo(
namesOf( MappingInheritanceStrategyPrism.values() ) );
}
@Test
public void nullValueCheckStrategyPrismIsCorrect() {
assertThat( namesOf( NullValueCheckStrategy.values() ) ).isEqualTo(
namesOf( NullValueCheckStrategyPrism.values() ) );
}
@Test
public void nullValueMappingStrategyPrismIsCorrect() {
assertThat( namesOf( NullValueMappingStrategy.values() ) ).isEqualTo( assertThat( namesOf( NullValueMappingStrategy.values() ) ).isEqualTo(
namesOf( NullValueMappingStrategyPrism.values() ) ); namesOf( NullValueMappingStrategyPrism.values() ) );
} }
@Test @Test
public void mapMappingInheritanceStrategyPrismIsCorrect() { public void reportingPolicyPrismIsCorrect() {
assertThat( namesOf( MappingInheritanceStrategy.values() ) ).isEqualTo( assertThat( namesOf( ReportingPolicy.values() ) ).isEqualTo(
namesOf( MappingInheritanceStrategyPrism.values() ) ); namesOf( ReportingPolicyPrism.values() ) );
} }
private static List<String> namesOf(Enum<?>[] values) { private static List<String> namesOf(Enum<?>[] values) {