This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new e8a9e52a50 ISIS-3123: adds more missing showcase mixins
e8a9e52a50 is described below
commit e8a9e52a505affaceaa47c3fba61ea92c81faff8
Author: andi-huber <[email protected]>
AuthorDate: Thu Aug 18 10:53:16 2022 +0200
ISIS-3123: adds more missing showcase mixins
---
..._updateReadOnlyOptionalPropertyWithChoices.java | 71 ++++++++++++++++++++++
..._updateReadOnlyOptionalPropertyWithChoices.java | 71 ++++++++++++++++++++++
.../demoshowcases/value/ValueShowCase.java | 16 ++++-
.../value/ValueTypeGenTemplateTest.java | 17 +++++-
4 files changed, 172 insertions(+), 3 deletions(-)
diff --git
a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/enums/holder/JavaLangEnumHolder_updateReadOnlyOptionalPropertyWithChoices.java
b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/enums/holder/JavaLangEnumHolder_updateReadOnlyOptionalPropertyWithChoices.java
new file mode 100644
index 0000000000..9e81978a9a
--- /dev/null
+++
b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/enums/holder/JavaLangEnumHolder_updateReadOnlyOptionalPropertyWithChoices.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package demoapp.dom.types.javalang.enums.holder;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.MemberSupport;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+
+import demoapp.dom.types.Samples;
+import lombok.RequiredArgsConstructor;
+
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT
+)
+@ActionLayout(
+ promptStyle = PromptStyle.INLINE
+ , named = "Update with choices"
+ , associateWith = "readOnlyOptionalProperty"
+ , sequence = "2")
+@RequiredArgsConstructor
+public class JavaLangEnumHolder_updateReadOnlyOptionalPropertyWithChoices {
+
+ private final JavaLangEnumHolder holder;
+
+ @MemberSupport public JavaLangEnumHolder act(
+ @Parameter(optionality = Optionality.OPTIONAL)
+ final demoapp.dom.types.javalang.enums.samples.DemoEnum newValue) {
+ holder.setReadOnlyOptionalProperty(newValue);
+ return holder;
+ }
+
+ @MemberSupport public demoapp.dom.types.javalang.enums.samples.DemoEnum
default0Act() {
+ return holder.getReadOnlyOptionalProperty();
+ }
+
+ @MemberSupport public
List<demoapp.dom.types.javalang.enums.samples.DemoEnum> choices0Act() {
+ return samples.stream()
+ .collect(Collectors.toList());
+ }
+
+ @Inject
+ Samples<demoapp.dom.types.javalang.enums.samples.DemoEnum> samples;
+}
+//end::class[]
diff --git
a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/holder/JavaLangStringHolder_updateReadOnlyOptionalPropertyWithChoices.java
b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/holder/JavaLangStringHolder_updateReadOnlyOptionalPropertyWithChoices.java
new file mode 100644
index 0000000000..a81e816bab
--- /dev/null
+++
b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/holder/JavaLangStringHolder_updateReadOnlyOptionalPropertyWithChoices.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package demoapp.dom.types.javalang.strings.holder;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.MemberSupport;
+import org.apache.isis.applib.annotation.Optionality;
+import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+
+import demoapp.dom.types.Samples;
+import lombok.RequiredArgsConstructor;
+
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
+//tag::class[]
+@Action(
+ semantics = SemanticsOf.IDEMPOTENT
+)
+@ActionLayout(
+ promptStyle = PromptStyle.INLINE
+ , named = "Update with choices"
+ , associateWith = "readOnlyOptionalProperty"
+ , sequence = "2")
+@RequiredArgsConstructor
+public class JavaLangStringHolder_updateReadOnlyOptionalPropertyWithChoices {
+
+ private final JavaLangStringHolder holder;
+
+ @MemberSupport public JavaLangStringHolder act(
+ @Parameter(optionality = Optionality.OPTIONAL)
+ final java.lang.String newValue) {
+ holder.setReadOnlyOptionalProperty(newValue);
+ return holder;
+ }
+
+ @MemberSupport public java.lang.String default0Act() {
+ return holder.getReadOnlyOptionalProperty();
+ }
+
+ @MemberSupport public List<java.lang.String> choices0Act() {
+ return samples.stream()
+ .collect(Collectors.toList());
+ }
+
+ @Inject
+ Samples<java.lang.String> samples;
+}
+//end::class[]
diff --git
a/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
b/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
index ed36e644eb..e0158c8a21 100644
---
a/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
+++
b/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
@@ -35,6 +35,21 @@ public enum ValueShowCase {
.javaPackage("demoapp.dom.types.javautil.uuids")
.showcaseValueType("java.util.UUID")
.showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.UUIDValueSemantics")),
+ ENUM(Config.builder()
+ .showcaseName("JavaLangEnum")
+ .javaPackage("demoapp.dom.types.javalang.enums")
+
.showcaseValueType("demoapp.dom.types.javalang.enums.samples.DemoEnum")
+
.showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.EnumValueSemantics")),
+ STRING(Config.builder()
+ .showcaseName("JavaLangString")
+ .javaPackage("demoapp.dom.types.javalang.strings")
+ .showcaseValueType("java.lang.String")
+
.showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.StringValueSemantics")),
+// VOID(Config.builder()
+// .showcaseName("JavaLangVoid")
+// .javaPackage("demoapp.dom.types.javalang.voids")
+// .showcaseValueType("java.lang.Void")
+//
.showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.VoidValueSemantics")),
PBOOL(fundamentalTypeSupportNotice()
.showcaseName("PrimitiveBoolean")
@@ -92,7 +107,6 @@ public enum ValueShowCase {
.showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.FloatValueSemantics")
.templates(Template.PRIMITIVE_SET)
.templateVariant(TemplateVariant.PRIMITIVE)),
-
WBOOL(fundamentalTypeSupportNotice()
.showcaseName("WrapperBoolean")
.javaPackage("demoapp.dom.types.javalang.booleans")
diff --git
a/tooling/metaprog/src/test/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
b/tooling/metaprog/src/test/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
index e85c872cfc..0a1e455c59 100644
---
a/tooling/metaprog/src/test/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
+++
b/tooling/metaprog/src/test/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
@@ -58,6 +58,7 @@ class ValueTypeGenTemplateTest {
// override origin
//copyFiles(generatedFiles, config.getOutputRootDir(),
demoDomainShowCase);
+ //copyMissingFiles(generatedFiles, config.getOutputRootDir(),
demoDomainShowCase);
assertFileSetEquals(refShowcaseFiles, demoDomainShowCase,
generatedFiles, config.getOutputRootDir());
assertFileContentEquals(refShowcaseFiles, generatedFiles);
@@ -93,13 +94,25 @@ class ValueTypeGenTemplateTest {
}
- private void copyFiles(final Collection<File> files, final File
sourceRoot, final File destinationRoot) {
- files.forEach(src->{
+ @SuppressWarnings("unused")
+ private void copyFiles(final Collection<File> generatedFiles, final File
sourceRoot, final File destinationRoot) {
+ generatedFiles.forEach(src->{
val dest = new File(destinationRoot,
_Files.realtiveFileName(sourceRoot, src));
_Files.copy(src, dest);
});
}
+ @SuppressWarnings("unused")
+ private void copyMissingFiles(final Collection<File> generatedFiles, final
File sourceRoot, final File destinationRoot) {
+ generatedFiles.forEach(src->{
+ val dest = new File(destinationRoot,
_Files.realtiveFileName(sourceRoot, src));
+ if(!dest.exists()) {
+ _Files.copy(src, dest);
+ }
+ });
+ }
+
+
private void assertFileContentEquals(final Collection<File> filesA, final
Collection<File> filesB) {
val sortedA =
Can.ofCollection(filesA).sorted(Comparator.naturalOrder());