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());

Reply via email to