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/causeway.git
commit 84248b09319ea2f1ad46406b28a76260d0246c9d Author: Andi Huber <[email protected]> AuthorDate: Sat Mar 16 09:22:13 2024 +0100 CAUSEWAY-3326: fixes ObjectCreator not injecting services --- .../metamodel/objectmanager/ObjectCreator.java | 6 +- .../good/ProperAnnotationWithSpecification.java | 62 ++ .../testdomain/model/good/ProperMemberSupport.java | 14 +- .../interaction/DomainObjectTesterFactory.java | 38 +- .../DomainModelTest_usingGoodDomain.java | 20 + .../MetaModelRegressionTest.verify.approved.xml | 1097 ++++++++++++++++++++ 6 files changed, 1232 insertions(+), 5 deletions(-) diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/objectmanager/ObjectCreator.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/objectmanager/ObjectCreator.java index 1d1e05961c..67146c8985 100644 --- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/objectmanager/ObjectCreator.java +++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/objectmanager/ObjectCreator.java @@ -21,6 +21,7 @@ package org.apache.causeway.core.metamodel.objectmanager; import java.lang.reflect.Array; import java.lang.reflect.Modifier; +import org.apache.causeway.applib.spec.Specification; import org.apache.causeway.commons.internal.exceptions._Exceptions; import org.apache.causeway.commons.internal.factory._InstanceUtil; import org.apache.causeway.core.metamodel.context.MetaModelContext; @@ -71,6 +72,10 @@ interface ObjectCreator { } val pojo = instantiate(spec); // can only be a scalar + if(Specification.class.isAssignableFrom(spec.getCorrespondingClass()) + || !spec.isValue()) { + spec.getServiceInjector().injectServicesInto(pojo); + } val domainObject = ManagedObject.adaptSingular(spec, pojo); // initialize new object @@ -82,7 +87,6 @@ interface ObjectCreator { } return domainObject; - } // -- HELPER diff --git a/regressiontests/base/src/main/java/org/apache/causeway/testdomain/model/good/ProperAnnotationWithSpecification.java b/regressiontests/base/src/main/java/org/apache/causeway/testdomain/model/good/ProperAnnotationWithSpecification.java new file mode 100644 index 0000000000..80890a4703 --- /dev/null +++ b/regressiontests/base/src/main/java/org/apache/causeway/testdomain/model/good/ProperAnnotationWithSpecification.java @@ -0,0 +1,62 @@ +/* + * 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 org.apache.causeway.testdomain.model.good; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import javax.inject.Inject; + +import org.apache.causeway.applib.annotation.Parameter; +import org.apache.causeway.applib.annotation.ParameterLayout; +import org.apache.causeway.applib.annotation.Property; +import org.apache.causeway.applib.annotation.PropertyLayout; +import org.apache.causeway.applib.spec.AbstractSpecification; +import org.apache.causeway.core.metamodel.specloader.SpecificationLoader; + +@Property( + maxLength = ProperAnnotationWithSpecification.MAX_LEN, + mustSatisfy = ProperAnnotationWithSpecification.ProperSpecification.class) +@PropertyLayout(named = "Proper Name") +@Parameter( + maxLength = ProperAnnotationWithSpecification.MAX_LEN, + mustSatisfy = ProperAnnotationWithSpecification.ProperSpecification.class) +@ParameterLayout(named = "Proper Name") +@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE }) +@Retention(RetentionPolicy.RUNTIME) +public @interface ProperAnnotationWithSpecification { + + int MAX_LEN = 40; + + // used for testing whether injection works + class ProperSpecification extends AbstractSpecification<String> { + + @Inject private SpecificationLoader specLoader; + + @Override + public String satisfiesSafely(final String obj) { + return specLoader!=null + ? "injection worked" + : "injection failed"; + } + } + +} diff --git a/regressiontests/base/src/main/java/org/apache/causeway/testdomain/model/good/ProperMemberSupport.java b/regressiontests/base/src/main/java/org/apache/causeway/testdomain/model/good/ProperMemberSupport.java index 6d95fd7147..e7221fe44b 100644 --- a/regressiontests/base/src/main/java/org/apache/causeway/testdomain/model/good/ProperMemberSupport.java +++ b/regressiontests/base/src/main/java/org/apache/causeway/testdomain/model/good/ProperMemberSupport.java @@ -99,7 +99,6 @@ public class ProperMemberSupport { @Action public void myAction(final String p0, final String p1) { - } @MemberSupport public String namedMyAction() { @@ -176,6 +175,14 @@ public class ProperMemberSupport { return null; } + // -- PROPER PARAM WITH META-ANNOTATIONS + + @Action + public void myActionWithMetaOnParam( + @ProperAnnotationWithSpecification + final String p0) { + } + // -- PROPER PROPERTY @Property @@ -214,6 +221,11 @@ public class ProperMemberSupport { return "think twice"; } + // -- PROPER PROPERTY WITH META-ANNOTATIONS + + @ProperAnnotationWithSpecification + @Getter @Setter private String myPropWithMeta; + // -- PROPER COLLECTION @Collection diff --git a/regressiontests/base/src/main/java/org/apache/causeway/testdomain/util/interaction/DomainObjectTesterFactory.java b/regressiontests/base/src/main/java/org/apache/causeway/testdomain/util/interaction/DomainObjectTesterFactory.java index d67d3f6a1c..23b407a6bc 100644 --- a/regressiontests/base/src/main/java/org/apache/causeway/testdomain/util/interaction/DomainObjectTesterFactory.java +++ b/regressiontests/base/src/main/java/org/apache/causeway/testdomain/util/interaction/DomainObjectTesterFactory.java @@ -28,8 +28,6 @@ import java.util.stream.Stream; import javax.inject.Inject; import org.junit.jupiter.api.function.ThrowingSupplier; -import org.springframework.lang.Nullable; -import org.springframework.stereotype.Service; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -37,6 +35,9 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; +import org.springframework.lang.Nullable; +import org.springframework.stereotype.Service; + import org.apache.causeway.applib.Identifier; import org.apache.causeway.applib.annotation.Where; import org.apache.causeway.applib.exceptions.unrecoverable.DomainModelException; @@ -818,7 +819,38 @@ public class DomainObjectTesterFactory implements HasMetaModelContext { }); }); + } + + /** + * Supported by all properties that reflect a value type. + * Uses value-semantics under the hood to do the conversion. + */ + public void assertValueUpdateUsingNegotiationTextual( + final String parsableProposedValue, + final @NonNull String expectedValidationMessage) { + + assertExists(true); + + managedPropertyIfAny + .ifPresent(managedProperty->{ + interactionService.runAnonymous(()->{ + + val propNeg = managedProperty.startNegotiation(); + val initialValue = managedProperty.getPropertyValue(); + + assertEquals(initialValue, propNeg.getValue().getValue()); + + propNeg.getValueAsParsableText().setValue(parsableProposedValue); + + // yet just pending + assertEquals(initialValue, managedProperty.getPropertyValue()); + assertEquals(parsableProposedValue, propNeg.getValueAsParsableText().getValue()); + // check expected validation message + propNeg.activateValidationFeedback(); + assertEquals(expectedValidationMessage, propNeg.getValidationMessage().getValue()); + }); + }); } @SuppressWarnings("unchecked") @@ -832,7 +864,7 @@ public class DomainObjectTesterFactory implements HasMetaModelContext { return valueFacet.selectParserForPropertyElseFallback(prop) .parseableTextRepresentation(context, - managedPropertyIfAny.get().getPropertyValue().getPojo()); + MmUnwrapUtils.single(managedPropertyIfAny.get().getPropertyValue())); } } diff --git a/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java b/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java index f21d2ea7dd..6232a094b5 100644 --- a/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java +++ b/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java @@ -997,6 +997,26 @@ class DomainModelTest_usingGoodDomain extends CausewayIntegrationTestAbstract { assertMissesProperty(vmSpec, actionName); // verify don't contributes as property } + // -- META ANNOTAIONS + + @Test + void propMeta_shouldHonorSpecification() { + val propTester = testerFactory + .propertyTester(ProperMemberSupport.class, "myPropWithMeta"); + propTester.assertExists(true); + propTester.assertFriendlyName("Proper Name"); + propTester.assertValueUpdateUsingNegotiationTextual("just a string", "injection worked"); + } + + @Test + void actionParamMeta_shouldHonorSpecification() { + val actTester = testerFactory + .actionTester(ProperMemberSupport.class, "myActionWithMetaOnParam"); + actTester.assertExists(true); + //TODO[CAUSEWAY-3326] perhaps tester needs fixing? + //actTester.assertValidationMessage("injection worked", true, p0->"just a string"); + } + // -- HELPER private void assertHasProperty(final ObjectSpecification spec, final String propertyId) { diff --git a/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/MetaModelRegressionTest.verify.approved.xml b/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/MetaModelRegressionTest.verify.approved.xml index 9005cd871a..2d527bc845 100644 --- a/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/MetaModelRegressionTest.verify.approved.xml +++ b/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/MetaModelRegressionTest.verify.approved.xml @@ -3230,6 +3230,877 @@ </mml:act> </mml:actions> </mml:domainClassDto> + <mml:domainClassDto id="org.apache.causeway.testdomain.model.good.ProperAnnotationWithSpecification$ProperSpecification"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.testdomain.model.good.ProperAnnotationWithSpecification.ProperSpecification#)"/> + <mml:attr name="facet" value="MemberNamedFacetForStaticMemberName"/> + <mml:attr name="originalText" value="Proper Specification"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Proper Specification"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.domainobjectlayout.BookmarkPolicyFacetForDomainObjectLayoutXml"> + <mml:attr name="bookmarkPolicy" value="AS_ROOT"/> + <mml:attr name="facet" value="BookmarkPolicyFacetForDomainObjectLayoutXml"/> + <mml:attr name="precedence" value="LOW"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.grid.GridFacetDefault"> + <mml:attr name="facet" value="GridFacetDefault"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.hidden.HiddenTypeFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.hidden.HiddenTypeFacetFromAuthorization"> + <mml:attr name="facet" value="HiddenTypeFacetFromAuthorization"/> + <mml:attr name="interactionAdvisors" value="HidingOrShowing"/> + <mml:attr name="precedence" value="HIGH"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl"> + <mml:attr name="facet" value="ObjectValidPropertiesFacetImpl"/> + <mml:attr name="interactionAdvisors" value="Validating"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.causeway.core.metamodel.facets.fallback.PagedFacetFromConfiguration"> + <mml:attr name="facet" value="PagedFacetFromConfiguration"/> + <mml:attr name="precedence" value="INFERRED"/> + <mml:attr name="value" value="25"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.publish.entitychange.EntityChangePublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.domainobject.entitychangepublishing.EntityChangePublishingFacetFromConfiguration"> + <mml:attr name="facet" value="EntityChangePublishingFacetFromConfiguration"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.tabledec.TableDecoratorFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.domainobjectlayout.tabledec.TableDecoratorFacetFromConfiguration"> + <mml:attr name="facet" value="TableDecoratorFacetFromConfiguration"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="org.apache.causeway.applib.annotation.TableDecorator.Default"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.postprocessors.allbutparam.authorization.AuthorizationFacet" fqcn="org.apache.causeway.core.metamodel.postprocessors.allbutparam.authorization.AuthorizationFacetImpl"> + <mml:attr name="facet" value="AuthorizationFacetImpl"/> + <mml:attr name="interactionAdvisors" value="HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + </mml:facets> + <mml:properties/> + <mml:collections/> + <mml:actions> + <mml:act id="downloadColumnOrderTxtFilesAsZip" mixedIn="true"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionExplicitFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet"> + <mml:attr name="eventType" value="org.apache.causeway.applib.services.columnorder.Object_downloadColumnOrderTxtFilesAsZip.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionDomainEventFacet"/> + <mml:attr name="interactionAdvisors" value="Validating, HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForAction"> + <mml:attr name="declaringType" value="org.apache.causeway.applib.services.columnorder.Object_downloadColumnOrderTxtFilesAsZip"/> + <mml:attr name="eventType" value="org.apache.causeway.applib.services.columnorder.Object_downloadColumnOrderTxtFilesAsZip.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionInvocationFacetForAction"/> + <mml:attr name="intent.act" value="EXECUTE"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="methods" value="public org.apache.causeway.applib.value.Blob org.apache.causeway.applib.services.columnorder.Object_downloadColumnOrderTxtFilesAsZip.act(java.lang.String)"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="returnType" value="org.apache.causeway.applib.value.Blob"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.contributing.ContributingFacet"> + <mml:attr name="contributing" value="AS_ACTION"/> + <mml:attr name="facet" value="ContributingFacetAbstract.1"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation"> + <mml:attr name="facet" value="ActionPositionFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="PANEL_DROPDOWN"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation"> + <mml:attr name="deploymentType" value="PRODUCTION"/> + <mml:attr name="facet" value="PrototypeFacetForActionAnnotation"/> + <mml:attr name="interactionAdvisors" value="HidingOrShowing"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.redirect.RedirectFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.RedirectFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="RedirectFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="redirect" value="AS_CONFIGURED"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionSemanticsFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="IDEMPOTENT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.described.MemberDescribedFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.MemberDescribedFacetForActionLayoutAnnotation"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.services.columnorder.Object_downloadColumnOrderTxtFilesAsZip#act())"/> + <mml:attr name="facet" value="MemberDescribedFacetForActionLayoutAnnotation"/> + <mml:attr name="originalText" value="Downloads all the .columnOrder.txt files for this object and its collections, as a zip file"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Downloads all the .columnOrder.txt files for this object and its collections, as a zip file"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.NamedFacetForActionLayoutAnnotation"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.services.columnorder.Object_downloadColumnOrderTxtFilesAsZip#act())"/> + <mml:attr name="facet" value="NamedFacetForActionLayoutAnnotation"/> + <mml:attr name="originalText" value="Download .columnOrder.txt files (ZIP)"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Download .columnOrder.txt files (ZIP)"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.DefaultViewFacetAsConfigured"> + <mml:attr name="facet" value="DefaultViewFacetAsConfigured"/> + <mml:attr name="precedence" value="LOW"/> + <mml:attr name="value" value="table"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.iconfa.FaFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.FaFacetForActionLayoutAnnotation"> + <mml:attr name="classes" value="download"/> + <mml:attr name="facet" value="FaFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="LEFT"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutGroupFacetFromActionLayoutAnnotation"/> + <mml:attr name="groupId" value="metadata"/> + <mml:attr name="groupName" value="Metadata"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutOrderFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="sequence" value="700.2.3"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="CommandPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="ExecutionPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured"> + <mml:attr name="facet" value="PromptStyleFacetAsConfigured"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="promptStyle" value="INLINE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.tabledec.TableDecoratorFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.tabledec.TableDecoratorFacetFromConfiguration"> + <mml:attr name="facet" value="TableDecoratorFacetFromConfiguration"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="org.apache.causeway.applib.annotation.TableDecorator.Default"/> + </mml:facet> + </mml:facets> + <mml:returnType>org.apache.causeway.applib.value.Blob</mml:returnType> + <mml:params> + <mml:param id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="mml:scalarParam"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.ParamNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.name.NamedFacetForParameterUsingReflection"> +<mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.services.columnorder.Object_downloadColumnOrderTxtFilesAsZip#act())"/> +<mml:attr name="facet" value="NamedFacetForParameterUsingReflection"/> +<mml:attr name="originalText" value="File Name"/> +<mml:attr name="precedence" value="LOW"/> +<mml:attr name="translated" value="File Name"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.causeway.core.metamodel.facets.fallback.LabelAtFacetFromLayoutConfiguration"> +<mml:attr name="facet" value="LabelAtFacetFromLayoutConfiguration"/> +<mml:attr name="labelPosition" value="NOT_SPECIFIED"/> +<mml:attr name="precedence" value="LOW"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod"> +<mml:attr name="facet" value="ActionParameterDefaultsFacetViaMethod"/> +<mml:attr name="intent.default0Act" value="DEFAULTS"/> +<mml:attr name="methods" value="public java.lang.String org.apache.causeway.applib.services.columnorder.Object_downloadColumnOrderTxtFilesAsZip.default0Act()"/> +<mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacetFromConfiguration"> +<mml:attr name="facet" value="PrecedingParametersPolicyFacetFromConfiguration"/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="value" value="RESET"/> + </mml:facet> + </mml:facets> + <mml:type>java.lang.String</mml:type> + </mml:param> + </mml:params> + </mml:act> + <mml:act id="downloadLayout" mixedIn="true"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionExplicitFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet"> + <mml:attr name="eventType" value="org.apache.causeway.applib.mixins.layout.Object_downloadLayout.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionDomainEventFacet"/> + <mml:attr name="interactionAdvisors" value="Validating, HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForAction"> + <mml:attr name="declaringType" value="org.apache.causeway.applib.mixins.layout.Object_downloadLayout"/> + <mml:attr name="eventType" value="org.apache.causeway.applib.mixins.layout.Object_downloadLayout.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionInvocationFacetForAction"/> + <mml:attr name="intent.act" value="EXECUTE"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="methods" value="public java.lang.Object org.apache.causeway.applib.mixins.layout.Object_downloadLayout.act(java.lang.String,org.apache.causeway.applib.services.layout.LayoutExportStyle,org.apache.causeway.applib.value.NamedWithMimeType$CommonMimeType)"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="returnType" value="java.lang.Object"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.contributing.ContributingFacet"> + <mml:attr name="contributing" value="AS_ACTION"/> + <mml:attr name="facet" value="ContributingFacetAbstract.1"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation"> + <mml:attr name="facet" value="ActionPositionFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="PANEL_DROPDOWN"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation"> + <mml:attr name="deploymentType" value="PRODUCTION"/> + <mml:attr name="facet" value="PrototypeFacetForActionAnnotation"/> + <mml:attr name="interactionAdvisors" value="HidingOrShowing"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.redirect.RedirectFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.RedirectFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="RedirectFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="redirect" value="AS_CONFIGURED"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionSemanticsFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="SAFE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.described.MemberDescribedFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.MemberDescribedFacetForActionLayoutAnnotation"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.layout.Object_downloadLayout#act())"/> + <mml:attr name="facet" value="MemberDescribedFacetForActionLayoutAnnotation"/> + <mml:attr name="originalText" value="Downloads the Xxx.layout... layout file effective/inferred for this object"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Downloads the Xxx.layout... layout file effective/inferred for this object"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.layout.Object_downloadLayout#act())"/> + <mml:attr name="facet" value="MemberNamedFacetForStaticMemberName"/> + <mml:attr name="originalText" value="Download Layout"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Download Layout"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.DefaultViewFacetAsConfigured"> + <mml:attr name="facet" value="DefaultViewFacetAsConfigured"/> + <mml:attr name="precedence" value="LOW"/> + <mml:attr name="value" value="table"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.iconfa.FaFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.FaFacetForActionLayoutAnnotation"> + <mml:attr name="classes" value="download"/> + <mml:attr name="facet" value="FaFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="LEFT"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutGroupFacetFromActionLayoutAnnotation"/> + <mml:attr name="groupId" value="metadata"/> + <mml:attr name="groupName" value="Metadata"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutOrderFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="sequence" value="700.1"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="CommandPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="ExecutionPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured"> + <mml:attr name="facet" value="PromptStyleFacetAsConfigured"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="promptStyle" value="INLINE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.tabledec.TableDecoratorFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.tabledec.TableDecoratorFacetFromConfiguration"> + <mml:attr name="facet" value="TableDecoratorFacetFromConfiguration"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="org.apache.causeway.applib.annotation.TableDecorator.Default"/> + </mml:facet> + </mml:facets> + <mml:returnType>java.lang.Object</mml:returnType> + <mml:params> + <mml:param id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="mml:scalarParam"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.described.ParamDescribedFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.layout.ParamDescribedFacetForParameterLayoutAnnotation"> +<mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.layout.Object_downloadLayout#act())"/> +<mml:attr name="facet" value="ParamDescribedFacetForParameterLayoutAnnotation"/> +<mml:attr name="originalText" value="File name extension can be omitted."/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="translated" value="File name extension can be omitted."/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.ParamNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation"> +<mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.layout.Object_downloadLayout#act())"/> +<mml:attr name="facet" value="NamedFacetForParameterLayoutAnnotation"/> +<mml:attr name="originalText" value="File name"/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="translated" value="File name"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.causeway.core.metamodel.facets.fallback.LabelAtFacetFromLayoutConfiguration"> +<mml:attr name="facet" value="LabelAtFacetFromLayoutConfiguration"/> +<mml:attr name="labelPosition" value="NOT_SPECIFIED"/> +<mml:attr name="precedence" value="LOW"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod"> +<mml:attr name="facet" value="ActionParameterDefaultsFacetViaMethod"/> +<mml:attr name="intent.default0Act" value="DEFAULTS"/> +<mml:attr name="methods" value="public java.lang.String org.apache.causeway.applib.mixins.layout.Object_downloadLayout.default0Act()"/> +<mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacetFromConfiguration"> +<mml:attr name="facet" value="PrecedingParametersPolicyFacetFromConfiguration"/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="value" value="RESET"/> + </mml:facet> + </mml:facets> + <mml:type>java.lang.String</mml:type> + </mml:param> + <mml:param id="style" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="mml:scalarParam"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.ParamNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.name.NamedFacetForParameterUsingReflection"> +<mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.layout.Object_downloadLayout#act())"/> +<mml:attr name="facet" value="NamedFacetForParameterUsingReflection"/> +<mml:attr name="originalText" value="Style"/> +<mml:attr name="precedence" value="LOW"/> +<mml:attr name="translated" value="Style"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.causeway.core.metamodel.facets.fallback.LabelAtFacetFromLayoutConfiguration"> +<mml:attr name="facet" value="LabelAtFacetFromLayoutConfiguration"/> +<mml:attr name="labelPosition" value="NOT_SPECIFIED"/> +<mml:attr name="precedence" value="LOW"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod"> +<mml:attr name="facet" value="ActionParameterDefaultsFacetViaMethod"/> +<mml:attr name="intent.default1Act" value="DEFAULTS"/> +<mml:attr name="methods" value="public org.apache.causeway.applib.services.layout.LayoutExportStyle org.apache.causeway.applib.mixins.layout.Object_downloadLayout.default1Act()"/> +<mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacetFromConfiguration"> +<mml:attr name="facet" value="PrecedingParametersPolicyFacetFromConfiguration"/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="value" value="RESET"/> + </mml:facet> + </mml:facets> + <mml:type>org.apache.causeway.applib.services.layout.LayoutExportStyle</mml:type> + </mml:param> + <mml:param id="format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="mml:scalarParam"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.ParamNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.name.NamedFacetForParameterUsingReflection"> +<mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.layout.Object_downloadLayout#act())"/> +<mml:attr name="facet" value="NamedFacetForParameterUsingReflection"/> +<mml:attr name="originalText" value="Format"/> +<mml:attr name="precedence" value="LOW"/> +<mml:attr name="translated" value="Format"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.causeway.core.metamodel.facets.fallback.LabelAtFacetFromLayoutConfiguration"> +<mml:attr name="facet" value="LabelAtFacetFromLayoutConfiguration"/> +<mml:attr name="labelPosition" value="NOT_SPECIFIED"/> +<mml:attr name="precedence" value="LOW"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.choices.ActionParameterChoicesFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.choices.methodnum.ActionParameterChoicesFacetViaMethod"> +<mml:attr name="choicesType" value="SET"/> +<mml:attr name="facet" value="ActionParameterChoicesFacetViaMethod"/> +<mml:attr name="intent.choices2Act" value="CHOICES_OR_AUTOCOMPLETE"/> +<mml:attr name="methods" value="public java.util.Set org.apache.causeway.applib.mixins.layout.Object_downloadLayout.choices2Act()"/> +<mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod"> +<mml:attr name="facet" value="ActionParameterDefaultsFacetViaMethod"/> +<mml:attr name="intent.default2Act" value="DEFAULTS"/> +<mml:attr name="methods" value="public org.apache.causeway.applib.value.NamedWithMimeType$CommonMimeType org.apache.causeway.applib.mixins.layout.Object_downloadLayout.default2Act()"/> +<mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacetFromConfiguration"> +<mml:attr name="facet" value="PrecedingParametersPolicyFacetFromConfiguration"/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="value" value="RESET"/> + </mml:facet> + </mml:facets> + <mml:type>org.apache.causeway.applib.value.NamedWithMimeType$CommonMimeType</mml:type> + </mml:param> + </mml:params> + </mml:act> + <mml:act id="downloadMetamodelXml" mixedIn="true"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionExplicitFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet"> + <mml:attr name="eventType" value="org.apache.causeway.applib.mixins.metamodel.Object_downloadMetamodelXml.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionDomainEventFacet"/> + <mml:attr name="interactionAdvisors" value="Validating, HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForAction"> + <mml:attr name="declaringType" value="org.apache.causeway.applib.mixins.metamodel.Object_downloadMetamodelXml"/> + <mml:attr name="eventType" value="org.apache.causeway.applib.mixins.metamodel.Object_downloadMetamodelXml.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionInvocationFacetForAction"/> + <mml:attr name="intent.act" value="EXECUTE"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="methods" value="public java.lang.Object org.apache.causeway.applib.mixins.metamodel.Object_downloadMetamodelXml.act(java.lang.String)"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="returnType" value="java.lang.Object"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.contributing.ContributingFacet"> + <mml:attr name="contributing" value="AS_ACTION"/> + <mml:attr name="facet" value="ContributingFacetAbstract.1"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation"> + <mml:attr name="facet" value="ActionPositionFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="PANEL_DROPDOWN"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation"> + <mml:attr name="deploymentType" value="PRODUCTION"/> + <mml:attr name="facet" value="PrototypeFacetForActionAnnotation"/> + <mml:attr name="interactionAdvisors" value="HidingOrShowing"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.redirect.RedirectFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.RedirectFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="RedirectFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="redirect" value="AS_CONFIGURED"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionSemanticsFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="SAFE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.described.MemberDescribedFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.MemberDescribedFacetForActionLayoutAnnotation"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.metamodel.Object_downloadMetamodelXml#act())"/> + <mml:attr name="facet" value="MemberDescribedFacetForActionLayoutAnnotation"/> + <mml:attr name="originalText" value="Downloads a representation of the framework's internal metamodel for this object's domain class"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Downloads a representation of the framework's internal metamodel for this object's domain class"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.metamodel.Object_downloadMetamodelXml#act())"/> + <mml:attr name="facet" value="MemberNamedFacetForStaticMemberName"/> + <mml:attr name="originalText" value="Download Metamodel Xml"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Download Metamodel Xml"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.DefaultViewFacetAsConfigured"> + <mml:attr name="facet" value="DefaultViewFacetAsConfigured"/> + <mml:attr name="precedence" value="LOW"/> + <mml:attr name="value" value="table"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.iconfa.FaFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.FaFacetForActionLayoutAnnotation"> + <mml:attr name="classes" value="download"/> + <mml:attr name="facet" value="FaFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="LEFT"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutGroupFacetFromActionLayoutAnnotation"/> + <mml:attr name="groupId" value="metadata"/> + <mml:attr name="groupName" value="Metadata"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutOrderFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="sequence" value="700.2"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="CommandPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="ExecutionPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured"> + <mml:attr name="facet" value="PromptStyleFacetAsConfigured"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="promptStyle" value="INLINE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.tabledec.TableDecoratorFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.tabledec.TableDecoratorFacetFromConfiguration"> + <mml:attr name="facet" value="TableDecoratorFacetFromConfiguration"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="org.apache.causeway.applib.annotation.TableDecorator.Default"/> + </mml:facet> + </mml:facets> + <mml:returnType>java.lang.Object</mml:returnType> + <mml:params> + <mml:param id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="mml:scalarParam"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.described.ParamDescribedFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.layout.ParamDescribedFacetForParameterLayoutAnnotation"> +<mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.metamodel.Object_downloadMetamodelXml#act())"/> +<mml:attr name="facet" value="ParamDescribedFacetForParameterLayoutAnnotation"/> +<mml:attr name="originalText" value="File name extension can be omitted."/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="translated" value="File name extension can be omitted."/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.ParamNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation"> +<mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.metamodel.Object_downloadMetamodelXml#act())"/> +<mml:attr name="facet" value="NamedFacetForParameterLayoutAnnotation"/> +<mml:attr name="originalText" value="File name"/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="translated" value="File name"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.causeway.core.metamodel.facets.fallback.LabelAtFacetFromLayoutConfiguration"> +<mml:attr name="facet" value="LabelAtFacetFromLayoutConfiguration"/> +<mml:attr name="labelPosition" value="NOT_SPECIFIED"/> +<mml:attr name="precedence" value="LOW"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod"> +<mml:attr name="facet" value="ActionParameterDefaultsFacetViaMethod"/> +<mml:attr name="intent.default0Act" value="DEFAULTS"/> +<mml:attr name="methods" value="public java.lang.String org.apache.causeway.applib.mixins.metamodel.Object_downloadMetamodelXml.default0Act()"/> +<mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacetFromConfiguration"> +<mml:attr name="facet" value="PrecedingParametersPolicyFacetFromConfiguration"/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="value" value="RESET"/> + </mml:facet> + </mml:facets> + <mml:type>java.lang.String</mml:type> + </mml:param> + </mml:params> + </mml:act> + <mml:act id="inspectMetamodel" mixedIn="true"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionExplicitFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet"> + <mml:attr name="eventType" value="org.apache.causeway.core.metamodel.inspect.Object_inspectMetamodel.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionDomainEventFacet"/> + <mml:attr name="interactionAdvisors" value="Validating, HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForAction"> + <mml:attr name="declaringType" value="org.apache.causeway.core.metamodel.inspect.Object_inspectMetamodel"/> + <mml:attr name="eventType" value="org.apache.causeway.core.metamodel.inspect.Object_inspectMetamodel.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionInvocationFacetForAction"/> + <mml:attr name="intent.act" value="EXECUTE"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="methods" value="public java.lang.Object org.apache.causeway.core.metamodel.inspect.Object_inspectMetamodel.act()"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="returnType" value="java.lang.Object"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.contributing.ContributingFacet"> + <mml:attr name="contributing" value="AS_ACTION"/> + <mml:attr name="facet" value="ContributingFacetAbstract.1"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation"> + <mml:attr name="facet" value="ActionPositionFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="PANEL_DROPDOWN"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation"> + <mml:attr name="deploymentType" value="PRODUCTION"/> + <mml:attr name="facet" value="PrototypeFacetForActionAnnotation"/> + <mml:attr name="interactionAdvisors" value="HidingOrShowing"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.redirect.RedirectFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.RedirectFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="RedirectFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="redirect" value="AS_CONFIGURED"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionSemanticsFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="SAFE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.described.MemberDescribedFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.MemberDescribedFacetForActionLayoutAnnotation"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.core.metamodel.inspect.Object_inspectMetamodel#act())"/> + <mml:attr name="facet" value="MemberDescribedFacetForActionLayoutAnnotation"/> + <mml:attr name="originalText" value="Open up a view of the metamodel of this object's domain class"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Open up a view of the metamodel of this object's domain class"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.core.metamodel.inspect.Object_inspectMetamodel#act())"/> + <mml:attr name="facet" value="MemberNamedFacetForStaticMemberName"/> + <mml:attr name="originalText" value="Inspect Metamodel"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Inspect Metamodel"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.DefaultViewFacetAsConfigured"> + <mml:attr name="facet" value="DefaultViewFacetAsConfigured"/> + <mml:attr name="precedence" value="LOW"/> + <mml:attr name="value" value="table"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.iconfa.FaFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.FaFacetForActionLayoutAnnotation"> + <mml:attr name="classes" value="sitemap"/> + <mml:attr name="facet" value="FaFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="LEFT"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutGroupFacetFromActionLayoutAnnotation"/> + <mml:attr name="groupId" value="metadata"/> + <mml:attr name="groupName" value="Metadata"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutOrderFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="sequence" value="700.2.1"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="CommandPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="ExecutionPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured"> + <mml:attr name="facet" value="PromptStyleFacetAsConfigured"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="promptStyle" value="INLINE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.tabledec.TableDecoratorFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.tabledec.TableDecoratorFacetFromConfiguration"> + <mml:attr name="facet" value="TableDecoratorFacetFromConfiguration"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="org.apache.causeway.applib.annotation.TableDecorator.Default"/> + </mml:facet> + </mml:facets> + <mml:returnType>java.lang.Object</mml:returnType> + <mml:params/> + </mml:act> + <mml:act id="openRestApi" mixedIn="true"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionExplicitFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet"> + <mml:attr name="eventType" value="org.apache.causeway.applib.mixins.rest.Object_openRestApi.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionDomainEventFacet"/> + <mml:attr name="interactionAdvisors" value="Validating, HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForAction"> + <mml:attr name="declaringType" value="org.apache.causeway.applib.mixins.rest.Object_openRestApi"/> + <mml:attr name="eventType" value="org.apache.causeway.applib.mixins.rest.Object_openRestApi.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionInvocationFacetForAction"/> + <mml:attr name="intent.act" value="EXECUTE"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="methods" value="public org.apache.causeway.applib.value.LocalResourcePath org.apache.causeway.applib.mixins.rest.Object_openRestApi.act()"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="returnType" value="org.apache.causeway.applib.value.LocalResourcePath"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.contributing.ContributingFacet"> + <mml:attr name="contributing" value="AS_ACTION"/> + <mml:attr name="facet" value="ContributingFacetAbstract.1"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation"> + <mml:attr name="facet" value="ActionPositionFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="PANEL_DROPDOWN"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation"> + <mml:attr name="deploymentType" value="PRODUCTION"/> + <mml:attr name="facet" value="PrototypeFacetForActionAnnotation"/> + <mml:attr name="interactionAdvisors" value="HidingOrShowing"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.redirect.RedirectFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.RedirectFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="RedirectFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="redirect" value="AS_CONFIGURED"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionSemanticsFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="SAFE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.described.MemberDescribedFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.MemberDescribedFacetForActionLayoutAnnotation"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.rest.Object_openRestApi#act())"/> + <mml:attr name="facet" value="MemberDescribedFacetForActionLayoutAnnotation"/> + <mml:attr name="originalText" value="Opens up a view of this object as represented in the (Restful Objects) REST API"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Opens up a view of this object as represented in the (Restful Objects) REST API"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.rest.Object_openRestApi#act())"/> + <mml:attr name="facet" value="MemberNamedFacetForStaticMemberName"/> + <mml:attr name="originalText" value="Open Rest Api"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Open Rest Api"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.DefaultViewFacetAsConfigured"> + <mml:attr name="facet" value="DefaultViewFacetAsConfigured"/> + <mml:attr name="precedence" value="LOW"/> + <mml:attr name="value" value="table"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.iconfa.FaFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.FaFacetForActionLayoutAnnotation"> + <mml:attr name="classes" value="external-link-alt"/> + <mml:attr name="facet" value="FaFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="LEFT"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutGroupFacetFromActionLayoutAnnotation"/> + <mml:attr name="groupId" value="metadata"/> + <mml:attr name="groupName" value="Metadata"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutOrderFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="sequence" value="750.1"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="CommandPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="ExecutionPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured"> + <mml:attr name="facet" value="PromptStyleFacetAsConfigured"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="promptStyle" value="INLINE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.tabledec.TableDecoratorFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.tabledec.TableDecoratorFacetFromConfiguration"> + <mml:attr name="facet" value="TableDecoratorFacetFromConfiguration"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="org.apache.causeway.applib.annotation.TableDecorator.Default"/> + </mml:facet> + </mml:facets> + <mml:returnType>org.apache.causeway.applib.value.LocalResourcePath</mml:returnType> + <mml:params/> + </mml:act> + <mml:act id="rebuildMetamodel" mixedIn="true"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionExplicitFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet"> + <mml:attr name="eventType" value="org.apache.causeway.applib.mixins.metamodel.Object_rebuildMetamodel.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionDomainEventFacet"/> + <mml:attr name="interactionAdvisors" value="Validating, HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForAction"> + <mml:attr name="declaringType" value="org.apache.causeway.applib.mixins.metamodel.Object_rebuildMetamodel"/> + <mml:attr name="eventType" value="org.apache.causeway.applib.mixins.metamodel.Object_rebuildMetamodel.ActionDomainEvent"/> + <mml:attr name="eventTypeOrigin" value="ANNOTATED_MEMBER"/> + <mml:attr name="facet" value="ActionInvocationFacetForAction"/> + <mml:attr name="intent.act" value="EXECUTE"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="methods" value="public java.lang.Object org.apache.causeway.applib.mixins.metamodel.Object_rebuildMetamodel.act()"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="returnType" value="java.lang.Object"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.contributing.ContributingFacet"> + <mml:attr name="contributing" value="AS_ACTION"/> + <mml:attr name="facet" value="ContributingFacetAbstract.1"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation"> + <mml:attr name="facet" value="ActionPositionFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="PANEL"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation"> + <mml:attr name="deploymentType" value="PRODUCTION"/> + <mml:attr name="facet" value="PrototypeFacetForActionAnnotation"/> + <mml:attr name="interactionAdvisors" value="HidingOrShowing"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.redirect.RedirectFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.RedirectFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="RedirectFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="redirect" value="AS_CONFIGURED"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionSemanticsFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="IDEMPOTENT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.described.MemberDescribedFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.MemberDescribedFacetForActionLayoutAnnotation"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.metamodel.Object_rebuildMetamodel#act())"/> + <mml:attr name="facet" value="MemberDescribedFacetForActionLayoutAnnotation"/> + <mml:attr name="originalText" value="Rebuilds the framework's internal metamodel of this object's domain class"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Rebuilds the framework's internal metamodel of this object's domain class"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.applib.mixins.metamodel.Object_rebuildMetamodel#act())"/> + <mml:attr name="facet" value="MemberNamedFacetForStaticMemberName"/> + <mml:attr name="originalText" value="Rebuild Metamodel"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Rebuild Metamodel"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.DefaultViewFacetAsConfigured"> + <mml:attr name="facet" value="DefaultViewFacetAsConfigured"/> + <mml:attr name="precedence" value="LOW"/> + <mml:attr name="value" value="table"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.iconfa.FaFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.layout.FaFacetForActionLayoutAnnotation"> + <mml:attr name="classes" value="sync"/> + <mml:attr name="facet" value="FaFacetForActionLayoutAnnotation"/> + <mml:attr name="position" value="LEFT"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutGroupFacetFromActionLayoutAnnotation"/> + <mml:attr name="groupId" value="metadata"/> + <mml:attr name="groupName" value="Metadata"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacetFromActionLayoutAnnotation"> + <mml:attr name="facet" value="LayoutOrderFacetFromActionLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="sequence" value="800.1"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="CommandPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacetForActionAnnotation.Disabled"> + <mml:attr name="facet" value="ExecutionPublishingFacetForActionAnnotation.Disabled"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured"> + <mml:attr name="facet" value="PromptStyleFacetAsConfigured"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="promptStyle" value="INLINE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.tabledec.TableDecoratorFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.tabledec.TableDecoratorFacetFromConfiguration"> + <mml:attr name="facet" value="TableDecoratorFacetFromConfiguration"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="org.apache.causeway.applib.annotation.TableDecorator.Default"/> + </mml:facet> + </mml:facets> + <mml:returnType>java.lang.Object</mml:returnType> + <mml:params/> + </mml:act> + </mml:actions> + </mml:domainClassDto> <mml:domainClassDto id="org.apache.causeway.testdomain.model.good.ProperChoicesWhenActionHasParamSupportingMethodTypeOfReference"> <mml:facets> <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName"> @@ -19184,6 +20055,113 @@ </mml:facets> <mml:type>java.lang.String</mml:type> </mml:prop> + <mml:prop id="myPropWithMeta" mixedIn="false"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.propertylayout.NamedFacetForPropertyLayoutAnnotation"> + <mml:attr name="context" value="TranslationContext(name=org.apache.causeway.testdomain.model.good.ProperMemberSupport#myPropWithMeta)"/> + <mml:attr name="facet" value="NamedFacetForPropertyLayoutAnnotation"/> + <mml:attr name="originalText" value="Proper Name"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="translated" value="Proper Name"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.group.LayoutGroupFacetForLayoutXml"> + <mml:attr name="facet" value="LayoutGroupFacetForLayoutXml"/> + <mml:attr name="groupId" value="other"/> + <mml:attr name="groupName" value="Other"/> + <mml:attr name="precedence" value="LOW"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacetFromPropertyLayoutAnnotation"> + <mml:attr name="facet" value="LayoutOrderFacetFromPropertyLayoutAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacetForPropertyFromConfiguration.None"> + <mml:attr name="facet" value="CommandPublishingFacetForPropertyFromConfiguration.None"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacetForPropertyFromConfiguration.None"> + <mml:attr name="facet" value="ExecutionPublishingFacetForPropertyFromConfiguration.None"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured"> + <mml:attr name="facet" value="PromptStyleFacetAsConfigured"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="promptStyle" value="INLINE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.propertylayout.LabelAtFacetForPropertyLayoutXml"> + <mml:attr name="facet" value="LabelAtFacetForPropertyLayoutXml"/> + <mml:attr name="labelPosition" value="NOT_SPECIFIED"/> + <mml:attr name="precedence" value="LOW"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.property.maxlength.MaxLengthFacetForPropertyAnnotation"> + <mml:attr name="facet" value="MaxLengthFacetForPropertyAnnotation"/> + <mml:attr name="interactionAdvisors" value="Validating"/> + <mml:attr name="maxLength" value="40"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.mustsatisfyspec.MustSatisfySpecificationFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.property.mustsatisfy.MustSatisfySpecificationFacetForPropertyAnnotation"> + <mml:attr name="facet" value="MustSatisfySpecificationFacetForPropertyAnnotation"/> + <mml:attr name="interactionAdvisors" value="Validating"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="specifications" value="org.apache.causeway.testdomain.model.good.ProperAnnotationWithSpecification$ProperSpecification"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.propertylayout.TypicalLengthFacetForPropertyLayoutXml"> + <mml:attr name="facet" value="TypicalLengthFacetForPropertyLayoutXml"/> + <mml:attr name="precedence" value="LOW"/> + <mml:attr name="typicalLength" value="25"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor"> + <mml:attr name="declaringType" value="org.apache.causeway.testdomain.model.good.ProperMemberSupport"/> + <mml:attr name="facet" value="PropertyAccessorFacetViaAccessor"/> + <mml:attr name="intent.getMyPropWithMeta" value="ACCESSOR"/> + <mml:attr name="methods" value="public java.lang.String org.apache.causeway.testdomain.model.good.ProperMemberSupport.getMyPropWithMeta()"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacet"> + <mml:attr name="eventType" value="org.apache.causeway.applib.events.domain.PropertyDomainEvent.Default"/> + <mml:attr name="eventTypeOrigin" value="DEFAULT"/> + <mml:attr name="facet" value="PropertyDomainEventFacet"/> + <mml:attr name="getterFacet" value="org.apache.causeway.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor"/> + <mml:attr name="interactionAdvisors" value="Validating, HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.properties.update.clear.PropertyClearFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.property.modify.PropertyModifyFacetForClearing"> + <mml:attr name="clearFacet" value="org.apache.causeway.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod"/> + <mml:attr name="eventType" value="org.apache.causeway.applib.events.domain.PropertyDomainEvent.Default"/> + <mml:attr name="eventTypeOrigin" value="DEFAULT"/> + <mml:attr name="facet" value="PropertyModifyFacetForClearing"/> + <mml:attr name="getterFacet" value="org.apache.causeway.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.properties.update.init.PropertyInitializationFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.update.init.PropertyInitializationFacetViaSetterMethod"> + <mml:attr name="facet" value="PropertyInitializationFacetViaSetterMethod"/> + <mml:attr name="intent.setMyPropWithMeta" value="MODIFY_PROPERTY"/> + <mml:attr name="methods" value="public void org.apache.causeway.testdomain.model.good.ProperMemberSupport.setMyPropWithMeta(java.lang.String)"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.properties.update.modify.PropertySetterFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.property.modify.PropertyModifyFacetForSetting"> + <mml:attr name="eventType" value="org.apache.causeway.applib.events.domain.PropertyDomainEvent.Default"/> + <mml:attr name="eventTypeOrigin" value="DEFAULT"/> + <mml:attr name="facet" value="PropertyModifyFacetForSetting"/> + <mml:attr name="getterFacet" value="org.apache.causeway.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="setterFacet" value="org.apache.causeway.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.properties.validating.PropertyValidateFacet" fqcn="org.apache.causeway.core.metamodel.facets.properties.validating.dflt.PropertyValidateFacetDefault"> + <mml:attr name="facet" value="PropertyValidateFacetDefault"/> + <mml:attr name="interactionAdvisors" value="Validating"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.postprocessors.allbutparam.authorization.AuthorizationFacet" fqcn="org.apache.causeway.core.metamodel.postprocessors.allbutparam.authorization.AuthorizationFacetImpl"> + <mml:attr name="facet" value="AuthorizationFacetImpl"/> + <mml:attr name="interactionAdvisors" value="HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + </mml:facets> + <mml:type>java.lang.String</mml:type> + </mml:prop> <mml:prop id="property1" mixedIn="true"> <mml:facets> <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet"> @@ -22386,6 +23364,125 @@ </mml:param> </mml:params> </mml:act> + <mml:act id="myActionWithMetaOnParam" mixedIn="false"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacetForActionAnnotation"> + <mml:attr name="facet" value="ActionExplicitFacetForActionAnnotation"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet"> + <mml:attr name="eventType" value="org.apache.causeway.applib.events.domain.ActionDomainEvent.Default"/> + <mml:attr name="eventTypeOrigin" value="DEFAULT"/> + <mml:attr name="facet" value="ActionDomainEventFacet"/> + <mml:attr name="interactionAdvisors" value="Validating, HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForAction"> + <mml:attr name="declaringType" value="org.apache.causeway.testdomain.model.good.ProperMemberSupport"/> + <mml:attr name="eventType" value="org.apache.causeway.applib.events.domain.ActionDomainEvent.Default"/> + <mml:attr name="eventTypeOrigin" value="DEFAULT"/> + <mml:attr name="facet" value="ActionInvocationFacetForAction"/> + <mml:attr name="intent.myActionWithMetaOnParam" value="EXECUTE"/> + <mml:attr name="isPostable" value="true"/> + <mml:attr name="methods" value="public void org.apache.causeway.testdomain.model.good.ProperMemberSupport.myActionWithMetaOnParam(java.lang.String)"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="returnType" value="void"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.redirect.RedirectFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.redirect.RedirectFacetFallback"> + <mml:attr name="facet" value="RedirectFacetFallback"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="redirect" value="AS_CONFIGURED"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetFallbackToNonIdempotent"> + <mml:attr name="facet" value="ActionSemanticsFacetFallbackToNonIdempotent"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="NON_IDEMPOTENT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.DefaultViewFacetAsConfigured"> + <mml:attr name="facet" value="DefaultViewFacetAsConfigured"/> + <mml:attr name="precedence" value="LOW"/> + <mml:attr name="value" value="table"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.iconfa.FaFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.iconfa.annotprop.FaFacetOnMemberFromConfiguredRegex"> + <mml:attr name="classes" value="!imperative"/> + <mml:attr name="facet" value="FaFacetOnMemberFromConfiguredRegex"/> + <mml:attr name="position" value="!imperative"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.layout.order.LayoutOrderFacetForLayoutXml"> + <mml:attr name="facet" value="LayoutOrderFacetForLayoutXml"/> + <mml:attr name="precedence" value="LOW"/> + <mml:attr name="sequence" value="9"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.command.CommandPublishingFacetForActionFromConfiguration.None"> + <mml:attr name="facet" value="CommandPublishingFacetForActionFromConfiguration.None"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacet" fqcn="org.apache.causeway.core.metamodel.facets.members.publish.execution.ExecutionPublishingFacetForActionFromConfiguration.None"> + <mml:attr name="facet" value="ExecutionPublishingFacetForActionFromConfiguration.None"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.causeway.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured"> + <mml:attr name="facet" value="PromptStyleFacetAsConfigured"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="promptStyle" value="INLINE"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.object.tabledec.TableDecoratorFacet" fqcn="org.apache.causeway.core.metamodel.facets.collections.layout.tabledec.TableDecoratorFacetFromConfiguration"> + <mml:attr name="facet" value="TableDecoratorFacetFromConfiguration"/> + <mml:attr name="precedence" value="DEFAULT"/> + <mml:attr name="value" value="org.apache.causeway.applib.annotation.TableDecorator.Default"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.postprocessors.allbutparam.authorization.AuthorizationFacet" fqcn="org.apache.causeway.core.metamodel.postprocessors.allbutparam.authorization.AuthorizationFacetImpl"> + <mml:attr name="facet" value="AuthorizationFacetImpl"/> + <mml:attr name="interactionAdvisors" value="HidingOrShowing, DisablingOrEnabling"/> + <mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + </mml:facets> + <mml:returnType>void</mml:returnType> + <mml:params> + <mml:param id="p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="mml:scalarParam"> + <mml:facets> + <mml:facet id="org.apache.causeway.core.metamodel.facets.all.named.ParamNamedFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation"> +<mml:attr name="context" value="TranslationContext(name=org.apache.causeway.testdomain.model.good.ProperMemberSupport#myActionWithMetaOnParam())"/> +<mml:attr name="facet" value="NamedFacetForParameterLayoutAnnotation"/> +<mml:attr name="originalText" value="Proper Name"/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="translated" value="Proper Name"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.causeway.core.metamodel.facets.fallback.LabelAtFacetFromLayoutConfiguration"> +<mml:attr name="facet" value="LabelAtFacetFromLayoutConfiguration"/> +<mml:attr name="labelPosition" value="NOT_SPECIFIED"/> +<mml:attr name="precedence" value="LOW"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.parameter.maxlen.MaxLengthFacetForParameterAnnotation"> +<mml:attr name="facet" value="MaxLengthFacetForParameterAnnotation"/> +<mml:attr name="interactionAdvisors" value="Validating"/> +<mml:attr name="maxLength" value="40"/> +<mml:attr name="precedence" value="DEFAULT"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.mustsatisfyspec.MustSatisfySpecificationFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.parameter.mustsatisfy.MustSatisfySpecificationFacetForParameterAnnotation"> +<mml:attr name="facet" value="MustSatisfySpecificationFacetForParameterAnnotation"/> +<mml:attr name="interactionAdvisors" value="Validating"/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="specifications" value="org.apache.causeway.testdomain.model.good.ProperAnnotationWithSpecification$ProperSpecification"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterFromType"> +<mml:attr name="facet" value="TypicalLengthFacetOnParameterFromType"/> +<mml:attr name="precedence" value="INFERRED"/> +<mml:attr name="typicalLength" value="25"/> +<mml:attr name="typicalLengthFacet" value="org.apache.causeway.core.metamodel.facets.object.value.TypicalLengthFacetFromValueFacet"/> + </mml:facet> + <mml:facet id="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacet" fqcn="org.apache.causeway.core.metamodel.facets.param.parameter.precpol.PrecedingParametersPolicyFacetForParameterAnnotation"> +<mml:attr name="facet" value="PrecedingParametersPolicyFacetForParameterAnnotation"/> +<mml:attr name="precedence" value="DEFAULT"/> +<mml:attr name="value" value="RESET"/> + </mml:facet> + </mml:facets> + <mml:type>java.lang.String</mml:type> + </mml:param> + </mml:params> + </mml:act> <mml:act id="openRestApi" mixedIn="true"> <mml:facets> <mml:facet id="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacet" fqcn="org.apache.causeway.core.metamodel.facets.actions.action.explicit.ActionExplicitFacetForActionAnnotation">
