From 4af76ec31740e5521d4bb4f23dbbd29472bf1afb Mon Sep 17 00:00:00 2001 From: thunderhook <8238759+thunderhook@users.noreply.github.com> Date: Tue, 4 Jun 2024 21:59:33 +0200 Subject: [PATCH] #3601 provide fixture tests --- .../ap/test/bugs/_3601/Issue3601Test.java | 132 ++++++++++++++++++ .../mapstruct/ap/test/bugs/_3601/Source.java | 14 ++ ...ultiConditionListMultiConditionMapper.java | 38 +++++ ...iConditionListPropertyConditionMapper.java | 38 +++++ ...ionListSourceParameterConditionMapper.java | 39 ++++++ ...ertyConditionListMultiConditionMapper.java | 38 +++++ ...yConditionListPropertyConditionMapper.java | 37 +++++ ...ionListSourceParameterConditionMapper.java | 38 +++++ ...eterConditionListMultiConditionMapper.java | 39 ++++++ ...rConditionListPropertyConditionMapper.java | 38 +++++ ...ionListSourceParameterConditionMapper.java | 37 +++++ .../mapstruct/ap/test/bugs/_3601/Target.java | 10 ++ .../single/OnlyListMultiConditionMapper.java | 35 +++++ .../OnlyListPropertyConditionMapper.java | 34 +++++ ...nlyListSourceParameterConditionMapper.java | 34 +++++ .../OnlyStringMultiConditionMapper.java | 35 +++++ .../OnlyStringPropertyConditionMapper.java | 34 +++++ ...yStringSourceParameterConditionMapper.java | 34 +++++ ...ConditionListMultiConditionMapperImpl.java | 39 ++++++ ...ditionListPropertyConditionMapperImpl.java | 39 ++++++ ...istSourceParameterConditionMapperImpl.java | 39 ++++++ ...ConditionListMultiConditionMapperImpl.java | 39 ++++++ ...ditionListPropertyConditionMapperImpl.java | 39 ++++++ ...istSourceParameterConditionMapperImpl.java | 39 ++++++ ...ConditionListMultiConditionMapperImpl.java | 37 +++++ ...ditionListPropertyConditionMapperImpl.java | 37 +++++ ...istSourceParameterConditionMapperImpl.java | 37 +++++ .../OnlyListMultiConditionMapperImpl.java | 39 ++++++ .../OnlyListPropertyConditionMapperImpl.java | 39 ++++++ ...istSourceParameterConditionMapperImpl.java | 39 ++++++ .../OnlyStringMultiConditionMapperImpl.java | 41 ++++++ ...OnlyStringPropertyConditionMapperImpl.java | 41 ++++++ ...ingSourceParameterConditionMapperImpl.java | 39 ++++++ 33 files changed, 1287 insertions(+) create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Issue3601Test.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Source.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListMultiConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListPropertyConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListSourceParameterConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListMultiConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListPropertyConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListSourceParameterConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListMultiConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListPropertyConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListSourceParameterConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Target.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListMultiConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListPropertyConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListSourceParameterConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringMultiConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringPropertyConditionMapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringSourceParameterConditionMapper.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListMultiConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListPropertyConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListSourceParameterConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListMultiConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListPropertyConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListSourceParameterConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListMultiConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListPropertyConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListSourceParameterConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListMultiConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListPropertyConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListSourceParameterConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringMultiConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringPropertyConditionMapperImpl.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringSourceParameterConditionMapperImpl.java diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Issue3601Test.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Issue3601Test.java new file mode 100644 index 000000000..c00ef7883 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Issue3601Test.java @@ -0,0 +1,132 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.mapstruct.ap.test.bugs._3601.single.OnlyListMultiConditionMapper; +import org.mapstruct.ap.test.bugs._3601.single.OnlyListPropertyConditionMapper; +import org.mapstruct.ap.test.bugs._3601.single.OnlyListSourceParameterConditionMapper; +import org.mapstruct.ap.test.bugs._3601.single.OnlyStringMultiConditionMapper; +import org.mapstruct.ap.test.bugs._3601.single.OnlyStringPropertyConditionMapper; +import org.mapstruct.ap.test.bugs._3601.single.OnlyStringSourceParameterConditionMapper; +import org.mapstruct.ap.testutil.IssueKey; +import org.mapstruct.ap.testutil.ProcessorTest; +import org.mapstruct.ap.testutil.WithClasses; +import org.mapstruct.ap.testutil.runner.GeneratedSource; + +/** + * @author Oliver Erhart + */ +@IssueKey("3601") +class Issue3601Test { + + @RegisterExtension + final GeneratedSource generatedSource = new GeneratedSource(); + + @Nested + @WithClasses({ Source.class, Target.class }) + class OnlyOneConditionPresent { + + @ProcessorTest + @WithClasses(OnlyListPropertyConditionMapper.class) + void testOnlyListPropertyConditionMapper() { + generatedSource.addComparisonToFixtureFor( OnlyListPropertyConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(OnlyListSourceParameterConditionMapper.class) + void testOnlyListSourceParameterConditionMapper() { + generatedSource.addComparisonToFixtureFor( OnlyListSourceParameterConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(OnlyListMultiConditionMapper.class) + void testOnlyListMultiConditionMapper() { + generatedSource.addComparisonToFixtureFor( OnlyListMultiConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(OnlyStringPropertyConditionMapper.class) + void testOnlyStringPropertyConditionMapper() { + generatedSource.addComparisonToFixtureFor( OnlyStringPropertyConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(OnlyStringSourceParameterConditionMapper.class) + void testOnlyStringSourceParameterConditionMapper() { + generatedSource.addComparisonToFixtureFor( OnlyStringSourceParameterConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(OnlyStringMultiConditionMapper.class) + void testOnlyStringMultiConditionMapper() { + generatedSource.addComparisonToFixtureFor( OnlyStringMultiConditionMapper.class ); + } + + } + + + @Nested + @WithClasses({ Source.class, Target.class }) + class BothConditionsPresent { + + @ProcessorTest + @WithClasses(StringPropertyConditionListPropertyConditionMapper.class) + void testStringPropertyConditionListPropertyConditionMapper() { + generatedSource.addComparisonToFixtureFor( StringPropertyConditionListPropertyConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(StringSourceParameterConditionListSourceParameterConditionMapper.class) + void testStringSourceParameterConditionListSourceParameterConditionMapper() { + generatedSource.addComparisonToFixtureFor( StringSourceParameterConditionListSourceParameterConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(StringMultiConditionListMultiConditionMapper.class) + void testStringMultiConditionListMultiConditionMapper() { + generatedSource.addComparisonToFixtureFor( StringMultiConditionListMultiConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(StringPropertyConditionListMultiConditionMapper.class) + void testStringPropertyConditionListMultiConditionMapper() { + generatedSource.addComparisonToFixtureFor( StringPropertyConditionListMultiConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(StringPropertyConditionListSourceParameterConditionMapper.class) + void testStringPropertyConditionListSourceParameterConditionMapper() { + generatedSource.addComparisonToFixtureFor( StringPropertyConditionListSourceParameterConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(StringSourceParameterConditionListPropertyConditionMapper.class) + void testStringSourceParameterConditionListPropertyConditionMapper() { + generatedSource.addComparisonToFixtureFor( StringSourceParameterConditionListPropertyConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(StringSourceParameterConditionListMultiConditionMapper.class) + void testStringSourceParameterConditionListMultiConditionMapper() { + generatedSource.addComparisonToFixtureFor( StringSourceParameterConditionListMultiConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(StringMultiConditionListPropertyConditionMapper.class) + void testStringMultiConditionListPropertyConditionMapper() { + generatedSource.addComparisonToFixtureFor( StringMultiConditionListPropertyConditionMapper.class ); + } + + @ProcessorTest + @WithClasses(StringMultiConditionListSourceParameterConditionMapper.class) + void testStringMultiConditionListSourceParameterConditionMapper() { + generatedSource.addComparisonToFixtureFor( StringMultiConditionListSourceParameterConditionMapper.class ); + } + + } +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Source.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Source.java new file mode 100644 index 000000000..5510b9220 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Source.java @@ -0,0 +1,14 @@ +package org.mapstruct.ap.test.bugs._3601; + +public class Source { + + private final String uuid; + + public Source(String uuid) { + this.uuid = uuid; + } + + public String getUuid() { + return uuid; + } +} \ No newline at end of file diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListMultiConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListMultiConditionMapper.java new file mode 100644 index 000000000..fc149c422 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListMultiConditionMapper.java @@ -0,0 +1,38 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.ConditionStrategy; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface StringMultiConditionListMultiConditionMapper { + + StringMultiConditionListMultiConditionMapper INSTANCE = Mappers.getMapper( StringMultiConditionListMultiConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @Condition(appliesTo = { ConditionStrategy.PROPERTIES, ConditionStrategy.SOURCE_PARAMETERS }) + default boolean stringCondition(String str) { + return str != null; + } + + @Condition(appliesTo = { ConditionStrategy.PROPERTIES, ConditionStrategy.SOURCE_PARAMETERS }) + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListPropertyConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListPropertyConditionMapper.java new file mode 100644 index 000000000..3d48b5c15 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListPropertyConditionMapper.java @@ -0,0 +1,38 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.ConditionStrategy; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface StringMultiConditionListPropertyConditionMapper { + + StringMultiConditionListPropertyConditionMapper INSTANCE = Mappers.getMapper( StringMultiConditionListPropertyConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @Condition(appliesTo = { ConditionStrategy.PROPERTIES, ConditionStrategy.SOURCE_PARAMETERS }) + default boolean stringCondition(String str) { + return str != null; + } + + @Condition + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListSourceParameterConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListSourceParameterConditionMapper.java new file mode 100644 index 000000000..a579d14ca --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListSourceParameterConditionMapper.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.ConditionStrategy; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.SourceParameterCondition; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface StringMultiConditionListSourceParameterConditionMapper { + + StringMultiConditionListSourceParameterConditionMapper INSTANCE = Mappers.getMapper( StringMultiConditionListSourceParameterConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @Condition(appliesTo = { ConditionStrategy.PROPERTIES, ConditionStrategy.SOURCE_PARAMETERS }) + default boolean stringCondition(String str) { + return str != null; + } + + @SourceParameterCondition + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListMultiConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListMultiConditionMapper.java new file mode 100644 index 000000000..633ee7f87 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListMultiConditionMapper.java @@ -0,0 +1,38 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.ConditionStrategy; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface StringPropertyConditionListMultiConditionMapper { + + StringPropertyConditionListMultiConditionMapper INSTANCE = Mappers.getMapper( StringPropertyConditionListMultiConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @Condition + default boolean stringCondition(String str) { + return str != null; + } + + @Condition(appliesTo = { ConditionStrategy.PROPERTIES, ConditionStrategy.SOURCE_PARAMETERS }) + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListPropertyConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListPropertyConditionMapper.java new file mode 100644 index 000000000..515f0966d --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListPropertyConditionMapper.java @@ -0,0 +1,37 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface StringPropertyConditionListPropertyConditionMapper { + + StringPropertyConditionListPropertyConditionMapper INSTANCE = Mappers.getMapper( StringPropertyConditionListPropertyConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @Condition + default boolean stringCondition(String str) { + return str != null; + } + + @Condition + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListSourceParameterConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListSourceParameterConditionMapper.java new file mode 100644 index 000000000..829fc8bd2 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListSourceParameterConditionMapper.java @@ -0,0 +1,38 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.SourceParameterCondition; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface StringPropertyConditionListSourceParameterConditionMapper { + + StringPropertyConditionListSourceParameterConditionMapper INSTANCE = Mappers.getMapper( StringPropertyConditionListSourceParameterConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @Condition + default boolean stringCondition(String str) { + return str != null; + } + + @SourceParameterCondition + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListMultiConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListMultiConditionMapper.java new file mode 100644 index 000000000..ceb5c6899 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListMultiConditionMapper.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.ConditionStrategy; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.SourceParameterCondition; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface StringSourceParameterConditionListMultiConditionMapper { + + StringSourceParameterConditionListMultiConditionMapper INSTANCE = Mappers.getMapper( StringSourceParameterConditionListMultiConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @SourceParameterCondition + default boolean stringCondition(String str) { + return str != null; + } + + @Condition(appliesTo = { ConditionStrategy.PROPERTIES, ConditionStrategy.SOURCE_PARAMETERS }) + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListPropertyConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListPropertyConditionMapper.java new file mode 100644 index 000000000..aeacccea8 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListPropertyConditionMapper.java @@ -0,0 +1,38 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.SourceParameterCondition; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface StringSourceParameterConditionListPropertyConditionMapper { + + StringSourceParameterConditionListPropertyConditionMapper INSTANCE = Mappers.getMapper( StringSourceParameterConditionListPropertyConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @SourceParameterCondition + default boolean stringCondition(String str) { + return str != null; + } + + @Condition + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListSourceParameterConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListSourceParameterConditionMapper.java new file mode 100644 index 000000000..f4f9ff4d6 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListSourceParameterConditionMapper.java @@ -0,0 +1,37 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.List; + +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.SourceParameterCondition; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface StringSourceParameterConditionListSourceParameterConditionMapper { + + StringSourceParameterConditionListSourceParameterConditionMapper INSTANCE = Mappers.getMapper( StringSourceParameterConditionListSourceParameterConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @SourceParameterCondition + default boolean stringCondition(String str) { + return str != null; + } + + @SourceParameterCondition + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Target.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Target.java new file mode 100644 index 000000000..c1e38b838 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/Target.java @@ -0,0 +1,10 @@ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.List; + +public class Target { + //CHECKSTYLE:OFF + public String currentId; + public List targetIds; + //CHECKSTYLE:ON +} \ No newline at end of file diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListMultiConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListMultiConditionMapper.java new file mode 100644 index 000000000..9f90fa955 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListMultiConditionMapper.java @@ -0,0 +1,35 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.ConditionStrategy; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface OnlyListMultiConditionMapper { + + OnlyListMultiConditionMapper INSTANCE = Mappers.getMapper( OnlyListMultiConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @Condition(appliesTo = { ConditionStrategy.PROPERTIES, ConditionStrategy.SOURCE_PARAMETERS }) + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListPropertyConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListPropertyConditionMapper.java new file mode 100644 index 000000000..5491e4287 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListPropertyConditionMapper.java @@ -0,0 +1,34 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface OnlyListPropertyConditionMapper { + + OnlyListPropertyConditionMapper INSTANCE = Mappers.getMapper( OnlyListPropertyConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @Condition + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListSourceParameterConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListSourceParameterConditionMapper.java new file mode 100644 index 000000000..484174d72 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyListSourceParameterConditionMapper.java @@ -0,0 +1,34 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.List; + +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.SourceParameterCondition; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface OnlyListSourceParameterConditionMapper { + + OnlyListSourceParameterConditionMapper INSTANCE = Mappers.getMapper( OnlyListSourceParameterConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @SourceParameterCondition + default boolean isNotEmpty(List elements) { + return elements != null && !elements.isEmpty(); + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringMultiConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringMultiConditionMapper.java new file mode 100644 index 000000000..06c48dea5 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringMultiConditionMapper.java @@ -0,0 +1,35 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.ConditionStrategy; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface OnlyStringMultiConditionMapper { + + OnlyStringMultiConditionMapper INSTANCE = Mappers.getMapper( OnlyStringMultiConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @Condition(appliesTo = { ConditionStrategy.PROPERTIES, ConditionStrategy.SOURCE_PARAMETERS }) + default boolean stringCondition(String str) { + return str != null; + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringPropertyConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringPropertyConditionMapper.java new file mode 100644 index 000000000..c2caf74ae --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringPropertyConditionMapper.java @@ -0,0 +1,34 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.List; + +import org.mapstruct.Condition; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface OnlyStringPropertyConditionMapper { + + OnlyStringPropertyConditionMapper INSTANCE = Mappers.getMapper( OnlyStringPropertyConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @Condition + default boolean stringCondition(String str) { + return str != null; + } + +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringSourceParameterConditionMapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringSourceParameterConditionMapper.java new file mode 100644 index 000000000..5643737b0 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringSourceParameterConditionMapper.java @@ -0,0 +1,34 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.List; + +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.SourceParameterCondition; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; +import org.mapstruct.factory.Mappers; + +/** + * @author Oliver Erhart + */ +@Mapper +public interface OnlyStringSourceParameterConditionMapper { + + OnlyStringSourceParameterConditionMapper INSTANCE = Mappers.getMapper( OnlyStringSourceParameterConditionMapper.class ); + + @Mapping(target = "currentId", source = "source.uuid") + @Mapping(target = "targetIds", source = "sourceIds") + Target map(Source source, List sourceIds); + + @SourceParameterCondition + default boolean stringCondition(String str) { + return str != null; + } + +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListMultiConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListMultiConditionMapperImpl.java new file mode 100644 index 000000000..6c617768c --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListMultiConditionMapperImpl.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class StringMultiConditionListMultiConditionMapperImpl implements StringMultiConditionListMultiConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && !isNotEmpty( sourceIds ) ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + if ( stringCondition( source.getUuid() ) ) { + target.currentId = source.getUuid(); + } + } + if ( isNotEmpty( sourceIds ) ) { + List list = sourceIds; + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListPropertyConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListPropertyConditionMapperImpl.java new file mode 100644 index 000000000..f517fd86e --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListPropertyConditionMapperImpl.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class StringMultiConditionListPropertyConditionMapperImpl implements StringMultiConditionListPropertyConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && sourceIds == null ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + if ( stringCondition( source.getUuid() ) ) { + target.currentId = source.getUuid(); + } + } + if ( isNotEmpty( sourceIds ) ) { + List list = sourceIds; + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListSourceParameterConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListSourceParameterConditionMapperImpl.java new file mode 100644 index 000000000..190e7c02c --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringMultiConditionListSourceParameterConditionMapperImpl.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class StringMultiConditionListSourceParameterConditionMapperImpl implements StringMultiConditionListSourceParameterConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && !isNotEmpty( sourceIds ) ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + if ( stringCondition( source.getUuid() ) ) { + target.currentId = source.getUuid(); + } + } + List list = sourceIds; + if ( list != null ) { + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListMultiConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListMultiConditionMapperImpl.java new file mode 100644 index 000000000..3efe30da9 --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListMultiConditionMapperImpl.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class StringPropertyConditionListMultiConditionMapperImpl implements StringPropertyConditionListMultiConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && !isNotEmpty( sourceIds ) ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + if ( stringCondition( source.getUuid() ) ) { + target.currentId = source.getUuid(); + } + } + if ( isNotEmpty( sourceIds ) ) { + List list = sourceIds; + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListPropertyConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListPropertyConditionMapperImpl.java new file mode 100644 index 000000000..c7e15d0c3 --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListPropertyConditionMapperImpl.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class StringPropertyConditionListPropertyConditionMapperImpl implements StringPropertyConditionListPropertyConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && sourceIds == null ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + if ( stringCondition( source.getUuid() ) ) { + target.currentId = source.getUuid(); + } + } + if ( isNotEmpty( sourceIds ) ) { + List list = sourceIds; + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListSourceParameterConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListSourceParameterConditionMapperImpl.java new file mode 100644 index 000000000..0a76fbab4 --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringPropertyConditionListSourceParameterConditionMapperImpl.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class StringPropertyConditionListSourceParameterConditionMapperImpl implements StringPropertyConditionListSourceParameterConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && !isNotEmpty( sourceIds ) ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + if ( stringCondition( source.getUuid() ) ) { + target.currentId = source.getUuid(); + } + } + List list = sourceIds; + if ( list != null ) { + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListMultiConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListMultiConditionMapperImpl.java new file mode 100644 index 000000000..3d4810735 --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListMultiConditionMapperImpl.java @@ -0,0 +1,37 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class StringSourceParameterConditionListMultiConditionMapperImpl implements StringSourceParameterConditionListMultiConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && !isNotEmpty( sourceIds ) ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + target.currentId = source.getUuid(); + } + if ( isNotEmpty( sourceIds ) ) { + List list = sourceIds; + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListPropertyConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListPropertyConditionMapperImpl.java new file mode 100644 index 000000000..8f0a6e57b --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListPropertyConditionMapperImpl.java @@ -0,0 +1,37 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class StringSourceParameterConditionListPropertyConditionMapperImpl implements StringSourceParameterConditionListPropertyConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && sourceIds 0= null ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + target.currentId = source.getUuid(); + } + if ( isNotEmpty( sourceIds ) ) { + List list = sourceIds; + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListSourceParameterConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListSourceParameterConditionMapperImpl.java new file mode 100644 index 000000000..afabbdcdf --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/StringSourceParameterConditionListSourceParameterConditionMapperImpl.java @@ -0,0 +1,37 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class StringSourceParameterConditionListSourceParameterConditionMapperImpl implements StringSourceParameterConditionListSourceParameterConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && !isNotEmpty( sourceIds ) ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + target.currentId = source.getUuid(); + } + List list = sourceIds; + if ( list != null ) { + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListMultiConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListMultiConditionMapperImpl.java new file mode 100644 index 000000000..eb878b63f --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListMultiConditionMapperImpl.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class OnlyListMultiConditionMapperImpl implements OnlyListMultiConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && !isNotEmpty( sourceIds ) ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + target.currentId = source.getUuid(); + } + if ( isNotEmpty( sourceIds ) ) { + List list = sourceIds; + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListPropertyConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListPropertyConditionMapperImpl.java new file mode 100644 index 000000000..aa1571ddf --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListPropertyConditionMapperImpl.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class OnlyListPropertyConditionMapperImpl implements OnlyListPropertyConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && sourceIds == null ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + target.currentId = source.getUuid(); + } + if ( isNotEmpty( sourceIds ) ) { + List list = sourceIds; + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListSourceParameterConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListSourceParameterConditionMapperImpl.java new file mode 100644 index 000000000..793cc299d --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyListSourceParameterConditionMapperImpl.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class OnlyListSourceParameterConditionMapperImpl implements OnlyListSourceParameterConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && !isNotEmpty( sourceIds ) ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + target.currentId = source.getUuid(); + } + List list = sourceIds; + if ( list != null ) { + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringMultiConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringMultiConditionMapperImpl.java new file mode 100644 index 000000000..140ce8c39 --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringMultiConditionMapperImpl.java @@ -0,0 +1,41 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class OnlyStringMultiConditionMapperImpl implements OnlyStringMultiConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && sourceIds == null ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + if ( stringCondition( source.getUuid() ) ) { + target.currentId = source.getUuid(); + } + } + List list = sourceIds; + if ( list != null ) { + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringPropertyConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringPropertyConditionMapperImpl.java new file mode 100644 index 000000000..25d83c114 --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringPropertyConditionMapperImpl.java @@ -0,0 +1,41 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class OnlyStringPropertyConditionMapperImpl implements OnlyStringPropertyConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && sourceIds == null ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + if ( stringCondition( source.getUuid() ) ) { + target.currentId = source.getUuid(); + } + } + List list = sourceIds; + if ( list != null ) { + target.targetIds = new ArrayList( list ); + } + + return target; + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringSourceParameterConditionMapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringSourceParameterConditionMapperImpl.java new file mode 100644 index 000000000..64911959b --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3601/single/OnlyStringSourceParameterConditionMapperImpl.java @@ -0,0 +1,39 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3601.single; + +import java.util.ArrayList; +import java.util.List; +import javax.annotation.processing.Generated; +import org.mapstruct.ap.test.bugs._3601.Source; +import org.mapstruct.ap.test.bugs._3601.Target; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-06-03T22:05:12+0200", + comments = "version: , compiler: javac, environment: Java 21.0.1 (Oracle Corporation)" +) +public class OnlyStringSourceParameterConditionMapperImpl implements OnlyStringSourceParameterConditionMapper { + + @Override + public Target map(Source source, List sourceIds) { + if ( source == null && sourceIds == null ) { + return null; + } + + Target target = new Target(); + + if ( source != null ) { + target.currentId = source.getUuid(); + } + List list = sourceIds; + if ( list != null ) { + target.targetIds = new ArrayList( list ); + } + + return target; + } +}