Repository: isis-site Updated Branches: refs/heads/asf-site c9e534351 -> 622bc741e
http://git-wip-us.apache.org/repos/asf/isis-site/blob/622bc741/content/resources/templates/isis-templates.xml ---------------------------------------------------------------------- diff --git a/content/resources/templates/isis-templates.xml b/content/resources/templates/isis-templates.xml index f8ea500..ac89b68 100644 --- a/content/resources/templates/isis-templates.xml +++ b/content/resources/templates/isis-templates.xml @@ -1,465 +1,465 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - 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. ---> -<templates><template autoinsert="true" context="java-members" deleted="false" description="Action" enabled="true" name="isa">// {{ ${actionName} (action) -${:import(org.apache.isis.applib.annotation.MemberOrder)}@MemberOrder(sequence="1") -public ${ReturnType} ${actionName}(final ${ParameterType} ${parameterType}) { - return ${cursor}null; // TODO: business logic here -} -// }} - -</template><template autoinsert="true" context="java-members" deleted="false" description="Action argument N choices" enabled="true" name="isacho">${:import(java.util.Collections,java.util.List)}public List<${ParameterType}> choices${ParameterNumThenCapitalizedActionName}() { - return ${cursor}Collections.emptyList(); // TODO: return list of choices for argument N -}</template><template autoinsert="true" context="java-members" deleted="false" description="Action argument defaults" enabled="true" name="isadef">public ${ParameterType} default${ParameterNumThenCapitalizedActionName}() { - return ${cursor}null; // TODO: return default for argument N -}</template><template autoinsert="true" context="java-members" deleted="false" description="Action disabling" enabled="true" name="isadis">public String disable${ActionName}() { - return ${cursor}null; // TODO: return reason why action disabled, null if enabled -}</template><template autoinsert="true" context="java-members" deleted="false" description="Action hiding" enabled="true" name="isahid">public boolean hide${ActionName}() { - return ${cursor}false; // TODO: return true if action is hidden, false if visible -}</template><template autoinsert="true" context="java-members" deleted="false" description="Action validation" enabled="true" name="isaval">public String validate${ActionName}(final ${ParameterType} ${parameterType}) { - return ${cursor}null; // TODO: return reason why action arguments are invalid, null if ok -}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection (1:m bidir parent)" enabled="true" name="isc-1m">public void addTo${ChildCollectionName}(final ${ChildElementType} ${childElementName}) { - // check for no-op - if (${childElementName} == null || - get${ChildCollectionName}().contains(${childElementName})) { - return; - } - // dissociate arg from its current parent (if any). - ${childElementName}.clear${ParentPropertyNameInChild}(); - // associate arg - ${childElementName}.set${ParentPropertyNameInChild}(this); - get${ChildCollectionName}().add(${childElementName}); - // additional business logic - onAddTo${ChildCollectionName}(${childElementName}); -} -public void removeFrom${ChildCollectionName}(final ${ChildElementType} ${childElementName}) { - // check for no-op - if (${childElementName} == null || - !get${ChildCollectionName}().contains(${childElementName})) { - return; - } - // dissociate arg - ${childElementName}.set${ParentPropertyNameInChild}(null); - get${ChildCollectionName}().remove(${childElementName}); - // additional business logic - onRemoveFrom${ChildCollectionName}(${childElementName}); -}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection (m:m bidir child)" enabled="true" name="isc-mmc">public void addTo${ParentCollectionName}(final ${ParentElementType} ${parentElementName}) { - // check for no-op - if (${parentElementName} == null || - get${ParentCollectionName}().contains(${parentElementName})) { - return; - } - // delegate to parent to add - ${parentElementName}.addTo${ChildCollectionNameInParent}(this); - // additional business logic - onAddTo${ParentCollectionName}(${parentElementName}); -} -public void removeFrom${ParentCollectionName}(final ${ParentElementType} ${parentElementName}) { - // check for no-op - if (${parentElementName} == null || - !get${ParentCollectionName}().contains(${parentElementName})) { - return; - } - // delegate to parent to remove - ${parentElementName}.removeFrom${ChildCollectionNameInParent}(this); - // additional business logic - onRemoveFrom${ParentCollectionName}(${parentElementName}); -}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection (m:m bidir parent)" enabled="true" name="isc-mmp">public void addTo${ChildCollectionName}(final ${ChildElementType} ${childElementName}) { - // check for no-op - if (${childElementName} == null || - get${ChildCollectionName}().contains(${childElementName})) { - return; - } - // dissociate arg from its current parent (if any). - ${childElementName}.removeFrom${ParentCollectionNameInChild}(this); - // associate arg - ${childElementName}.get${ParentCollectionNameInChild}().add(this); - get${ChildCollectionName}().add(${childElementName}); - // additional business logic - onAddTo${ChildCollectionName}(${childElementName}); -} -public void removeFrom${ChildCollectionName}(final ${ChildElementType} ${childElementName}) { - // check for no-op - if (${childElementName} == null || - !get${ChildCollectionName}().contains(${childElementName})) { - return; - } - // dissociate arg - ${childElementName}.get${ParentCollectionNameInChild}().remove(this); - get${ChildCollectionName}().remove(${childElementName}); - // additional business logic - onRemoveFrom${ChildCollectionName}(${childElementName}); -}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection disabling" enabled="true" name="iscdis">public String disable${CollectionName}() { - return ${cursor}null; // TODO: return reason why collection read-only, null if editable -}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection hiding" enabled="true" name="ischid">public boolean hide${CollectionName}() { - return ${cursor}false; // TODO: return true if hidden, false otherwise -}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection (list)" enabled="true" name="iscl">// {{ ${CollectionName} (Collection) -${:import(java.util.List,java.util.ArrayList,org.apache.isis.applib.annotation.MemberOrder)}private List<${ElementType}> ${collectionName} = new ArrayList<${ElementType}>(); -@MemberOrder(sequence="1") -public List<${ElementType}> get${CollectionName}() { - return ${collectionName}; -} -public void set${CollectionName}(final List<${ElementType}> ${collectionName}) { - this.${collectionName} = ${collectionName}; -} -// }} - -</template><template autoinsert="true" context="java-members" deleted="false" description="Collection modify" enabled="true" name="iscmod">public void addTo${CollectionName}(final ${ElementType} ${elementName}) { - // check for no-op - if (${elementName} == null || - get${CollectionName}().contains(${elementName})) { - return; - } - // associate new - get${CollectionName}().add(${elementName}); - // additional business logic - onAddTo${CollectionName}(${elementName}); -} -public void removeFrom${CollectionName}(final ${ElementType} ${elementName}) { - // check for no-op - if (${elementName} == null || - !get${CollectionName}().contains(${elementName})) { - return; - } - // dissociate existing - get${CollectionName}().remove(${elementName}); - // additional business logic - onRemoveFrom${CollectionName}(${elementName}); -} -protected void onAddTo${CollectionName}(final ${ElementType} ${elementName}) { -} -protected void onRemoveFrom${CollectionName}(final ${ElementType} ${elementName}) { -}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection (set)" enabled="true" name="iscs">// {{ ${CollectionName} (Collection) -${:import(java.util.Set,java.util.LinkedHashSet,org.apache.isis.applib.annotation.MemberOrder)}private Set<${ElementType}> ${collectionName} = new LinkedHashSet<${ElementType}>(); -@MemberOrder(sequence="1") -public Set<${ElementType}> get${CollectionName}() { - return ${collectionName}; -} -public void set${CollectionName}(final Set<${ElementType}> ${collectionName}) { - this.${collectionName} = ${collectionName}; -} -// }} - -</template><template autoinsert="true" context="java-members" deleted="false" description="Collection validation" enabled="true" name="iscval">public String validateAddTo${CollectionName}(final ${ElementType} ${elementName}) { - return ${cursor}null; // TODO: return reason why argument cannot be added, null if ok to add -} -public String validateRemoveFrom${CollectionName}(final ${ElementType} ${elementName}) { - return null; // TODO: return reason why argument cannot be removed, null if ok to remove -} - -</template><template autoinsert="true" context="java-members" deleted="false" description="Dependencies region" enabled="true" name="isd">// {{ injected dependencies -${cursor} -// }} - -</template><template autoinsert="true" context="java-members" deleted="false" description="Dependencies - injected service" enabled="true" name="isds">// {{ injected: ${ServiceType} -private ${ServiceType} ${serviceType}; -public void set${ServiceType}(final ${ServiceType} ${serviceType}) { - this.${serviceType} = ${serviceType}; -} -// }} - -</template><template autoinsert="true" context="java-members" deleted="false" description="Factory - new instance (persistent)" enabled="true" name="isfp">// {{ Create new (already persisted) ${Type} -public ${Type} new${Type}() { - ${Type} ${type} = newTransientInstance(${Type}.class); - ${cursor}// TODO: set up any properties - - persist(${type}); - return ${type}; -} -// }}</template><template autoinsert="true" context="java-members" deleted="false" description="Factory - new instance (transient)" enabled="true" name="isft">// {{ Create new (still transient) ${Type} -public ${Type} new${InstanceOfType}() { - ${Type} ${type} = newTransientInstance(${Type}.class); - ${cursor}// TODO: set up any properties - - return ${type}; -} -// }}</template><template autoinsert="true" context="java-members" deleted="false" description="Identification region" enabled="true" name="isid">// {{ Identification -${cursor} -// }} - -</template><template autoinsert="true" context="java-members" deleted="false" description="Identification - icon" enabled="true" name="isidicon">public String iconName() { - return ${cursor}null; // TODO: return name of image file (without suffix) -}</template><template autoinsert="true" context="java-members" deleted="false" description="Identification - title" enabled="true" name="isidtitle">public String title() { - ${:import(org.apache.isis.applib.util.TitleBuffer)}final TitleBuffer buf = new TitleBuffer(); - ${cursor}// TODO: append to TitleBuffer, typically value properties - return buf.toString(); -}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (1:n bidir, foreign key)" enabled="true" name="isjdc-1n-b-fk">// {{ ${CollectionName} (Collection) -${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Persistent)}@Persistent(mappedBy="${elementNameInChild}", dependentElement="${trueOrFalse}") -private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>(); -@MemberOrder(sequence="1") -public SortedSet<${ElementType}> get${CollectionName}() { -return ${collectionName}; -} -public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { -this.${collectionName} = ${collectionName}; -} -// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (1:n bidir, join table)" enabled="true" name="isjdc-1n-b-jt">// {{ ${CollectionName} (Collection) -${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Persitent,javax.jdo.annotations.Join)}@Persistent(mappedBy="${elementNameInChild}", dependentElement="${trueOrFalse}") -@Join -private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>(); -@MemberOrder(sequence="1") -public SortedSet<${ElementType}> get${CollectionName}() { -return ${collectionName}; -} -public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { -this.${collectionName} = ${collectionName}; -} -// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (1:n unidir, foreign key)" enabled="true" name="isjdc-1n-u-fk">// {{ ${CollectionName} (Collection) -${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Element)} -@Element(column="${ColumnName}", dependent="${trueOrFalse}") -private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>(); -@MemberOrder(sequence="1") -public SortedSet<${ElementType}> get${CollectionName}() { -return ${collectionName}; -} -public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { -this.${collectionName} = ${collectionName}; -} -// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (1:n unidir, join table)" enabled="true" name="isjdc-1n-u-jt">// {{ ${CollectionName} (Collection) -${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Join,javax.jdo.annotations.Element)}@Join -@Element(dependent="${trueOrFalse}") -private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>(); -@MemberOrder(sequence="1") -public SortedSet<${ElementType}> get${CollectionName}() { -return ${collectionName}; -} -public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { -this.${collectionName} = ${collectionName}; -} -// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (m:n bidir - child)" enabled="true" name="isjdc-mn-ub-c">// {{ ${CollectionName} (Collection) -${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Persistent)}@Persistent(mappedBy="${ChildCollectionNameInParent}") -private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>(); -public SortedSet<${ElementType}> get${CollectionName}() { -return ${collectionName}; -} -public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { -this.${collectionName} = ${collectionName}; -} -// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (m:n unidir & bidir - parent)" enabled="true" name="isjdc-mn-ub-p">// {{ ${CollectionName} (Collection) -${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Persistent,javax.jdo.annotations.Join,javax.jdo.annotations.Element)}@Persistent(table="${TableName}") -@Join(column="${ThisEntityFieldName}") -@Element(column="${RelatedEntityFieldName}") -private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>();@MemberOrder(sequence="1") - -public SortedSet<${ElementType}> get${CollectionName}() { - return ${collectionName}; -} -public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { - this.${collectionName} = ${collectionName}; -} -// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Property (simple - 1:1 unidir & bidir - parent)" enabled="true" name="isjdp">// {{ ${PropertyName} (property) -private ${PropertyType} ${propertyName}; -${:import(org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Column)}@MemberOrder(sequence="1") -@Column(allowsNull="${trueOrFalse}") -public ${PropertyType} get${PropertyName}() { - return ${propertyName}; -} -public void set${PropertyName}(final ${PropertyType} ${propertyName}) { - this.${propertyName} = ${propertyName}; -} -// }} - -</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Property (1:1 child)" enabled="true" name="isjdp-11c">// {{ ${PropertyName} (property) -private ${PropertyType} ${propertyName}; -${:import(org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Column,javax.jdo.annotations.Persistent)}@MemberOrder(sequence="1") -@Column(allowsNull="${trueOrFalse}") -@Persistent(mappedBy="${fieldOnChild}") -public ${PropertyType} get${PropertyName}() { - return ${propertyName}; -} -public void set${PropertyName}(final ${PropertyType} ${propertyName}) { - this.${propertyName} = ${propertyName}; -} -// }}</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle region" enabled="true" name="isl">// {{ Lifecycle methods -${cursor} -// }} - -</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle - create" enabled="true" name="islc">public void created() { - ${cursor}// TODO: post-create -}</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle - load" enabled="true" name="isll">public void loading() { - ${cursor}// TODO: pre-load -} -public void loaded() { - // TODO: post-load -}</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle - persist" enabled="true" name="islp">public void persisting() { - ${cursor}// TODO: pre-persist -} -public void persisted() { - // TODO: post-persist -}</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle - remove" enabled="true" name="islr">public void removing() { - ${cursor}// TODO: pre-remove -} -public void removed() { - // TODO: post-remove -}</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle - update" enabled="true" name="islu">public void updating() { - ${cursor}// TODO: pre-update -} -public void updated() { - // TODO: post-update -}</template><template autoinsert="true" context="java-members" deleted="false" description="Property" enabled="true" name="isp">// {{ ${PropertyName} (property) -private ${PropertyType} ${propertyName}; -${:import(org.apache.isis.applib.annotation.MemberOrder)}@MemberOrder(sequence="1") -public ${PropertyType} get${PropertyName}() { - return ${propertyName}; -} -public void set${PropertyName}(final ${PropertyType} ${propertyName}) { - this.${propertyName} = ${propertyName}; -} -// }} - -</template><template autoinsert="true" context="java-members" deleted="false" description="Property (1:1 bidir child)" enabled="true" name="isp-11c">public void modify${ParentPropertyName}(final ${ParentPropertyType} ${parentPropertyName}) { - ${ParentPropertyType} current${ParentPropertyName} = get${ParentPropertyName}(); - // check for no-op - if (${parentPropertyName} == null || - ${parentPropertyName}.equals(current${ParentPropertyName})) { - return; - } - // delegate to parent to associate - ${parentPropertyName}.modify${ChildPropertyNameInParent}(this); - // additional business logic - onModify${ParentPropertyName}(current${ParentPropertyName}, ${parentPropertyName}); -} -public void clear${PropertyName}() { - ${ParentPropertyType} current${ParentPropertyName} = get${ParentPropertyName}(); - // check for no-op - if (current${ParentPropertyName} == null) { - return; - } - // delegate to parent to dissociate - current${ParentPropertyName}.clear${ChildPropertyNameInParent}(); - // additional business logic - onClear${ParentPropertyName}(current${ParentPropertyName}); -}</template><template autoinsert="true" context="java-members" deleted="false" description="Property (1:1 bidir parent)" enabled="true" name="isp-11p">public void modify${ChildPropertyName}(final ${ChildPropertyType} ${childPropertyName}) { - ${ChildPropertyType} current${ChildPropertyName} = get${ChildPropertyName}(); - // check for no-op - if (${childPropertyName} == null || - ${childPropertyName}.equals(current${ChildPropertyName})) { - return; - } - // dissociate existing - clear${ChildPropertyName}(); - // associate new - ${childPropertyName}.set${ParentPropertyNameInChild}(this); - set${ChildPropertyName}(${childPropertyName}); - // additional business logic - onModify${ChildPropertyName}(current${ChildPropertyName}, ${childPropertyName}); -} -public void clear${ChildPropertyName}() { - ${ChildPropertyType} current${ChildPropertyName} = get${ChildPropertyName}(); - // check for no-op - if (current${ChildPropertyName} == null) { - return; - } - // dissociate existing - current${ChildPropertyName}.set${ParentPropertyNameInChild}(null); - set${ChildPropertyName}(null); - // additional business logic - onClear${ChildPropertyName}(current${ChildPropertyName}); -}</template><template autoinsert="true" context="java-members" deleted="false" description="Property (m:1 bidir child)" enabled="true" name="isp-m1">public void modify${ParentPropertyName}(final ${ParentPropertyType} ${parentPropertyName}) { - ${ParentPropertyType} current${ParentPropertyName} = get${ParentPropertyName}(); - // check for no-op - if (${parentPropertyName} == null || - ${parentPropertyName}.equals(current${ParentPropertyName})) { - return; - } - // delegate to parent to associate - ${parentPropertyName}.addTo${ChildCollectionNameInParent}(this); - // additional business logic - onModify${ParentPropertyName}(current${ParentPropertyName}, ${parentPropertyName}); -} -public void clear${ParentPropertyName}() { - ${ParentPropertyType} current${ParentPropertyName} = get${ParentPropertyName}(); - // check for no-op - if (current${ParentPropertyName} == null) { - return; - } - // delegate to parent to dissociate - current${ParentPropertyName}.removeFrom${ChildCollectionNameInParent}(this); - // additional business logic - onClear${ParentPropertyName}(current${ParentPropertyName}); -}</template><template autoinsert="true" context="java-members" deleted="false" description="Property choices" enabled="true" name="ispcho">${:import(java.util.List)}public List<${PropertyType}> choices${PropertyName}() { - return ${cursor}null; // TODO: return list of choices for property -}</template><template autoinsert="true" context="java-members" deleted="false" description="Property defaults" enabled="true" name="ispdef">public ${PropertyType} default${PropertyName}() { - return ${cursor}null; // TODO: return default for property when first created -}</template><template autoinsert="true" context="java-members" deleted="false" description="Property disabling" enabled="true" name="ispdis">public String disable${PropertyName}() { - return ${cursor}null; // TODO: return reason why property is disabled, null if editable -}</template><template autoinsert="true" context="java-members" deleted="false" description="Property hiding" enabled="true" name="isphid">public boolean hide${PropertyName}() { - return ${cursor}false; // TODO: return true if hidden, false if visible -}</template><template autoinsert="true" context="java-members" deleted="false" description="Property modify" enabled="true" name="ispmod">public void modify${PropertyName}(final ${PropertyType} ${propertyName}) { - ${PropertyType} current${PropertyName} = get${PropertyName}(); - // check for no-op - if (${propertyName} == null || - ${propertyName}.equals(current${PropertyName})) { - return; - } - // associate new - set${PropertyName}(${propertyName}); - // additional business logic - onModify${PropertyName}(current${PropertyName}, ${propertyName}); -} -public void clear${PropertyName}() { - ${PropertyType} current${PropertyName} = get${PropertyName}(); - // check for no-op - if (current${PropertyName} == null) { - return; - } - // dissociate existing - set${PropertyName}(null); - // additional business logic - onClear${PropertyName}(current${PropertyName}); -} -protected void onModify${PropertyName}(final ${PropertyType} old${PropertyName}, final ${PropertyType} new${PropertyName}) { -} -protected void onClear${PropertyName}(final ${PropertyType} old${PropertyName}) { -}</template><template autoinsert="true" context="java-members" deleted="false" description="Property validation" enabled="true" name="ispval">public String validate${PropertyName}(final ${PropertyType} ${propertyName}) { - if (${propertyName} == null) return null; - return ${cursor}null; // TODO: return reason why proposed value is invalid, null if valid -}</template><template autoinsert="true" context="java-members" deleted="false" description="Isis Section" enabled="true" name="iss">// {{ ${SectionName} -${cursor} -// }}</template><template autoinsert="true" context="java-members" deleted="false" description="Search for all" enabled="true" name="issa">// {{ all ${TypePlural} -${:import(org.apache.isis.applib.annotation.Exploration,java.util.List)}@Exploration -public List<${Type}> all${TypePlural}() { - return allInstances(${Type}.class); -} -// }} - - -</template><template autoinsert="true" context="java-members" deleted="false" description="Search for all matching" enabled="true" name="issafil">// {{ all ${TypePlural} that ${filterDescription} -${:import(org.apache.isis.applib.annotation.Exploration,org.apache.isis.applib.Filter,java.util.List)}@Exploration -public List<${Type}> all${TypePlural}Matching(final Filter<${Type}> filter) { - return allMatches(${Type}.class, filter); -} -// }} - - -</template><template autoinsert="true" context="java-members" deleted="false" description="Search for first matching" enabled="true" name="issffil">// {{ first ${Type} that ${filterDescription} -${:import(org.apache.isis.applib.annotation.Exploration,org.apache.isis.applib.Filter,java.util.List)}@Exploration -public ${Type} first${Type}Matching(final Filter<${Type}> filter) { - return firstMatch(${Type}.class, filter); -} -// }} -</template><template autoinsert="true" context="java-members" deleted="false" description="Search for unique matching" enabled="true" name="issufil">// {{ unique ${Type} that ${filterDescription} -${:import(org.apache.isis.applib.annotation.Exploration,org.apache.isis.applib.Filter,java.util.List)}@Exploration -public ${Type} unique${Type}Matching(final Filter<${Type}> filter) { - return uniqueMatch(${Type}.class, filter); -} -// }} -</template><template autoinsert="true" context="java-members" deleted="false" description="Object-level validation" enabled="true" name="isval">public String validate() { - ${cursor}// TODO: return reason why object is in invalid state (and so cannot be saved/updated), or null if ok +<?xml version="1.0" encoding="UTF-8"?> +<!-- + 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. +--> +<templates><template autoinsert="true" context="java-members" deleted="false" description="Action" enabled="true" name="isa">// {{ ${actionName} (action) +${:import(org.apache.isis.applib.annotation.MemberOrder)}@MemberOrder(sequence="1") +public ${ReturnType} ${actionName}(final ${ParameterType} ${parameterType}) { + return ${cursor}null; // TODO: business logic here +} +// }} + +</template><template autoinsert="true" context="java-members" deleted="false" description="Action argument N choices" enabled="true" name="isacho">${:import(java.util.Collections,java.util.List)}public List<${ParameterType}> choices${ParameterNumThenCapitalizedActionName}() { + return ${cursor}Collections.emptyList(); // TODO: return list of choices for argument N +}</template><template autoinsert="true" context="java-members" deleted="false" description="Action argument defaults" enabled="true" name="isadef">public ${ParameterType} default${ParameterNumThenCapitalizedActionName}() { + return ${cursor}null; // TODO: return default for argument N +}</template><template autoinsert="true" context="java-members" deleted="false" description="Action disabling" enabled="true" name="isadis">public String disable${ActionName}() { + return ${cursor}null; // TODO: return reason why action disabled, null if enabled +}</template><template autoinsert="true" context="java-members" deleted="false" description="Action hiding" enabled="true" name="isahid">public boolean hide${ActionName}() { + return ${cursor}false; // TODO: return true if action is hidden, false if visible +}</template><template autoinsert="true" context="java-members" deleted="false" description="Action validation" enabled="true" name="isaval">public String validate${ActionName}(final ${ParameterType} ${parameterType}) { + return ${cursor}null; // TODO: return reason why action arguments are invalid, null if ok +}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection (1:m bidir parent)" enabled="true" name="isc-1m">public void addTo${ChildCollectionName}(final ${ChildElementType} ${childElementName}) { + // check for no-op + if (${childElementName} == null || + get${ChildCollectionName}().contains(${childElementName})) { + return; + } + // dissociate arg from its current parent (if any). + ${childElementName}.clear${ParentPropertyNameInChild}(); + // associate arg + ${childElementName}.set${ParentPropertyNameInChild}(this); + get${ChildCollectionName}().add(${childElementName}); + // additional business logic + onAddTo${ChildCollectionName}(${childElementName}); +} +public void removeFrom${ChildCollectionName}(final ${ChildElementType} ${childElementName}) { + // check for no-op + if (${childElementName} == null || + !get${ChildCollectionName}().contains(${childElementName})) { + return; + } + // dissociate arg + ${childElementName}.set${ParentPropertyNameInChild}(null); + get${ChildCollectionName}().remove(${childElementName}); + // additional business logic + onRemoveFrom${ChildCollectionName}(${childElementName}); +}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection (m:m bidir child)" enabled="true" name="isc-mmc">public void addTo${ParentCollectionName}(final ${ParentElementType} ${parentElementName}) { + // check for no-op + if (${parentElementName} == null || + get${ParentCollectionName}().contains(${parentElementName})) { + return; + } + // delegate to parent to add + ${parentElementName}.addTo${ChildCollectionNameInParent}(this); + // additional business logic + onAddTo${ParentCollectionName}(${parentElementName}); +} +public void removeFrom${ParentCollectionName}(final ${ParentElementType} ${parentElementName}) { + // check for no-op + if (${parentElementName} == null || + !get${ParentCollectionName}().contains(${parentElementName})) { + return; + } + // delegate to parent to remove + ${parentElementName}.removeFrom${ChildCollectionNameInParent}(this); + // additional business logic + onRemoveFrom${ParentCollectionName}(${parentElementName}); +}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection (m:m bidir parent)" enabled="true" name="isc-mmp">public void addTo${ChildCollectionName}(final ${ChildElementType} ${childElementName}) { + // check for no-op + if (${childElementName} == null || + get${ChildCollectionName}().contains(${childElementName})) { + return; + } + // dissociate arg from its current parent (if any). + ${childElementName}.removeFrom${ParentCollectionNameInChild}(this); + // associate arg + ${childElementName}.get${ParentCollectionNameInChild}().add(this); + get${ChildCollectionName}().add(${childElementName}); + // additional business logic + onAddTo${ChildCollectionName}(${childElementName}); +} +public void removeFrom${ChildCollectionName}(final ${ChildElementType} ${childElementName}) { + // check for no-op + if (${childElementName} == null || + !get${ChildCollectionName}().contains(${childElementName})) { + return; + } + // dissociate arg + ${childElementName}.get${ParentCollectionNameInChild}().remove(this); + get${ChildCollectionName}().remove(${childElementName}); + // additional business logic + onRemoveFrom${ChildCollectionName}(${childElementName}); +}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection disabling" enabled="true" name="iscdis">public String disable${CollectionName}() { + return ${cursor}null; // TODO: return reason why collection read-only, null if editable +}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection hiding" enabled="true" name="ischid">public boolean hide${CollectionName}() { + return ${cursor}false; // TODO: return true if hidden, false otherwise +}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection (list)" enabled="true" name="iscl">// {{ ${CollectionName} (Collection) +${:import(java.util.List,java.util.ArrayList,org.apache.isis.applib.annotation.MemberOrder)}private List<${ElementType}> ${collectionName} = new ArrayList<${ElementType}>(); +@MemberOrder(sequence="1") +public List<${ElementType}> get${CollectionName}() { + return ${collectionName}; +} +public void set${CollectionName}(final List<${ElementType}> ${collectionName}) { + this.${collectionName} = ${collectionName}; +} +// }} + +</template><template autoinsert="true" context="java-members" deleted="false" description="Collection modify" enabled="true" name="iscmod">public void addTo${CollectionName}(final ${ElementType} ${elementName}) { + // check for no-op + if (${elementName} == null || + get${CollectionName}().contains(${elementName})) { + return; + } + // associate new + get${CollectionName}().add(${elementName}); + // additional business logic + onAddTo${CollectionName}(${elementName}); +} +public void removeFrom${CollectionName}(final ${ElementType} ${elementName}) { + // check for no-op + if (${elementName} == null || + !get${CollectionName}().contains(${elementName})) { + return; + } + // dissociate existing + get${CollectionName}().remove(${elementName}); + // additional business logic + onRemoveFrom${CollectionName}(${elementName}); +} +protected void onAddTo${CollectionName}(final ${ElementType} ${elementName}) { +} +protected void onRemoveFrom${CollectionName}(final ${ElementType} ${elementName}) { +}</template><template autoinsert="true" context="java-members" deleted="false" description="Collection (set)" enabled="true" name="iscs">// {{ ${CollectionName} (Collection) +${:import(java.util.Set,java.util.LinkedHashSet,org.apache.isis.applib.annotation.MemberOrder)}private Set<${ElementType}> ${collectionName} = new LinkedHashSet<${ElementType}>(); +@MemberOrder(sequence="1") +public Set<${ElementType}> get${CollectionName}() { + return ${collectionName}; +} +public void set${CollectionName}(final Set<${ElementType}> ${collectionName}) { + this.${collectionName} = ${collectionName}; +} +// }} + +</template><template autoinsert="true" context="java-members" deleted="false" description="Collection validation" enabled="true" name="iscval">public String validateAddTo${CollectionName}(final ${ElementType} ${elementName}) { + return ${cursor}null; // TODO: return reason why argument cannot be added, null if ok to add +} +public String validateRemoveFrom${CollectionName}(final ${ElementType} ${elementName}) { + return null; // TODO: return reason why argument cannot be removed, null if ok to remove +} + +</template><template autoinsert="true" context="java-members" deleted="false" description="Dependencies region" enabled="true" name="isd">// {{ injected dependencies +${cursor} +// }} + +</template><template autoinsert="true" context="java-members" deleted="false" description="Dependencies - injected service" enabled="true" name="isds">// {{ injected: ${ServiceType} +private ${ServiceType} ${serviceType}; +public void set${ServiceType}(final ${ServiceType} ${serviceType}) { + this.${serviceType} = ${serviceType}; +} +// }} + +</template><template autoinsert="true" context="java-members" deleted="false" description="Factory - new instance (persistent)" enabled="true" name="isfp">// {{ Create new (already persisted) ${Type} +public ${Type} new${Type}() { + ${Type} ${type} = newTransientInstance(${Type}.class); + ${cursor}// TODO: set up any properties + + persist(${type}); + return ${type}; +} +// }}</template><template autoinsert="true" context="java-members" deleted="false" description="Factory - new instance (transient)" enabled="true" name="isft">// {{ Create new (still transient) ${Type} +public ${Type} new${InstanceOfType}() { + ${Type} ${type} = newTransientInstance(${Type}.class); + ${cursor}// TODO: set up any properties + + return ${type}; +} +// }}</template><template autoinsert="true" context="java-members" deleted="false" description="Identification region" enabled="true" name="isid">// {{ Identification +${cursor} +// }} + +</template><template autoinsert="true" context="java-members" deleted="false" description="Identification - icon" enabled="true" name="isidicon">public String iconName() { + return ${cursor}null; // TODO: return name of image file (without suffix) +}</template><template autoinsert="true" context="java-members" deleted="false" description="Identification - title" enabled="true" name="isidtitle">public String title() { + ${:import(org.apache.isis.applib.util.TitleBuffer)}final TitleBuffer buf = new TitleBuffer(); + ${cursor}// TODO: append to TitleBuffer, typically value properties + return buf.toString(); +}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (1:n bidir, foreign key)" enabled="true" name="isjdc-1n-b-fk">// {{ ${CollectionName} (Collection) +${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Persistent)}@Persistent(mappedBy="${elementNameInChild}", dependentElement="${trueOrFalse}") +private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>(); +@MemberOrder(sequence="1") +public SortedSet<${ElementType}> get${CollectionName}() { +return ${collectionName}; +} +public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { +this.${collectionName} = ${collectionName}; +} +// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (1:n bidir, join table)" enabled="true" name="isjdc-1n-b-jt">// {{ ${CollectionName} (Collection) +${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Persitent,javax.jdo.annotations.Join)}@Persistent(mappedBy="${elementNameInChild}", dependentElement="${trueOrFalse}") +@Join +private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>(); +@MemberOrder(sequence="1") +public SortedSet<${ElementType}> get${CollectionName}() { +return ${collectionName}; +} +public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { +this.${collectionName} = ${collectionName}; +} +// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (1:n unidir, foreign key)" enabled="true" name="isjdc-1n-u-fk">// {{ ${CollectionName} (Collection) +${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Element)} +@Element(column="${ColumnName}", dependent="${trueOrFalse}") +private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>(); +@MemberOrder(sequence="1") +public SortedSet<${ElementType}> get${CollectionName}() { +return ${collectionName}; +} +public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { +this.${collectionName} = ${collectionName}; +} +// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (1:n unidir, join table)" enabled="true" name="isjdc-1n-u-jt">// {{ ${CollectionName} (Collection) +${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Join,javax.jdo.annotations.Element)}@Join +@Element(dependent="${trueOrFalse}") +private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>(); +@MemberOrder(sequence="1") +public SortedSet<${ElementType}> get${CollectionName}() { +return ${collectionName}; +} +public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { +this.${collectionName} = ${collectionName}; +} +// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (m:n bidir - child)" enabled="true" name="isjdc-mn-ub-c">// {{ ${CollectionName} (Collection) +${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Persistent)}@Persistent(mappedBy="${ChildCollectionNameInParent}") +private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>(); +public SortedSet<${ElementType}> get${CollectionName}() { +return ${collectionName}; +} +public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { +this.${collectionName} = ${collectionName}; +} +// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Collection (m:n unidir & bidir - parent)" enabled="true" name="isjdc-mn-ub-p">// {{ ${CollectionName} (Collection) +${:import(java.util.SortedSet,java.util.TreeSet,org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Persistent,javax.jdo.annotations.Join,javax.jdo.annotations.Element)}@Persistent(table="${TableName}") +@Join(column="${ThisEntityFieldName}") +@Element(column="${RelatedEntityFieldName}") +private SortedSet<${ElementType}> ${collectionName} = new TreeSet<${ElementType}>();@MemberOrder(sequence="1") + +public SortedSet<${ElementType}> get${CollectionName}() { + return ${collectionName}; +} +public void set${CollectionName}(final SortedSet<${ElementType}> ${collectionName}) { + this.${collectionName} = ${collectionName}; +} +// }}</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Property (simple - 1:1 unidir & bidir - parent)" enabled="true" name="isjdp">// {{ ${PropertyName} (property) +private ${PropertyType} ${propertyName}; +${:import(org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Column)}@MemberOrder(sequence="1") +@Column(allowsNull="${trueOrFalse}") +public ${PropertyType} get${PropertyName}() { + return ${propertyName}; +} +public void set${PropertyName}(final ${PropertyType} ${propertyName}) { + this.${propertyName} = ${propertyName}; +} +// }} + +</template><template autoinsert="true" context="java-members" deleted="false" description="JDO Property (1:1 child)" enabled="true" name="isjdp-11c">// {{ ${PropertyName} (property) +private ${PropertyType} ${propertyName}; +${:import(org.apache.isis.applib.annotation.MemberOrder,javax.jdo.annotations.Column,javax.jdo.annotations.Persistent)}@MemberOrder(sequence="1") +@Column(allowsNull="${trueOrFalse}") +@Persistent(mappedBy="${fieldOnChild}") +public ${PropertyType} get${PropertyName}() { + return ${propertyName}; +} +public void set${PropertyName}(final ${PropertyType} ${propertyName}) { + this.${propertyName} = ${propertyName}; +} +// }}</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle region" enabled="true" name="isl">// {{ Lifecycle methods +${cursor} +// }} + +</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle - create" enabled="true" name="islc">public void created() { + ${cursor}// TODO: post-create +}</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle - load" enabled="true" name="isll">public void loading() { + ${cursor}// TODO: pre-load +} +public void loaded() { + // TODO: post-load +}</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle - persist" enabled="true" name="islp">public void persisting() { + ${cursor}// TODO: pre-persist +} +public void persisted() { + // TODO: post-persist +}</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle - remove" enabled="true" name="islr">public void removing() { + ${cursor}// TODO: pre-remove +} +public void removed() { + // TODO: post-remove +}</template><template autoinsert="true" context="java-members" deleted="false" description="Lifecycle - update" enabled="true" name="islu">public void updating() { + ${cursor}// TODO: pre-update +} +public void updated() { + // TODO: post-update +}</template><template autoinsert="true" context="java-members" deleted="false" description="Property" enabled="true" name="isp">// {{ ${PropertyName} (property) +private ${PropertyType} ${propertyName}; +${:import(org.apache.isis.applib.annotation.MemberOrder)}@MemberOrder(sequence="1") +public ${PropertyType} get${PropertyName}() { + return ${propertyName}; +} +public void set${PropertyName}(final ${PropertyType} ${propertyName}) { + this.${propertyName} = ${propertyName}; +} +// }} + +</template><template autoinsert="true" context="java-members" deleted="false" description="Property (1:1 bidir child)" enabled="true" name="isp-11c">public void modify${ParentPropertyName}(final ${ParentPropertyType} ${parentPropertyName}) { + ${ParentPropertyType} current${ParentPropertyName} = get${ParentPropertyName}(); + // check for no-op + if (${parentPropertyName} == null || + ${parentPropertyName}.equals(current${ParentPropertyName})) { + return; + } + // delegate to parent to associate + ${parentPropertyName}.modify${ChildPropertyNameInParent}(this); + // additional business logic + onModify${ParentPropertyName}(current${ParentPropertyName}, ${parentPropertyName}); +} +public void clear${PropertyName}() { + ${ParentPropertyType} current${ParentPropertyName} = get${ParentPropertyName}(); + // check for no-op + if (current${ParentPropertyName} == null) { + return; + } + // delegate to parent to dissociate + current${ParentPropertyName}.clear${ChildPropertyNameInParent}(); + // additional business logic + onClear${ParentPropertyName}(current${ParentPropertyName}); +}</template><template autoinsert="true" context="java-members" deleted="false" description="Property (1:1 bidir parent)" enabled="true" name="isp-11p">public void modify${ChildPropertyName}(final ${ChildPropertyType} ${childPropertyName}) { + ${ChildPropertyType} current${ChildPropertyName} = get${ChildPropertyName}(); + // check for no-op + if (${childPropertyName} == null || + ${childPropertyName}.equals(current${ChildPropertyName})) { + return; + } + // dissociate existing + clear${ChildPropertyName}(); + // associate new + ${childPropertyName}.set${ParentPropertyNameInChild}(this); + set${ChildPropertyName}(${childPropertyName}); + // additional business logic + onModify${ChildPropertyName}(current${ChildPropertyName}, ${childPropertyName}); +} +public void clear${ChildPropertyName}() { + ${ChildPropertyType} current${ChildPropertyName} = get${ChildPropertyName}(); + // check for no-op + if (current${ChildPropertyName} == null) { + return; + } + // dissociate existing + current${ChildPropertyName}.set${ParentPropertyNameInChild}(null); + set${ChildPropertyName}(null); + // additional business logic + onClear${ChildPropertyName}(current${ChildPropertyName}); +}</template><template autoinsert="true" context="java-members" deleted="false" description="Property (m:1 bidir child)" enabled="true" name="isp-m1">public void modify${ParentPropertyName}(final ${ParentPropertyType} ${parentPropertyName}) { + ${ParentPropertyType} current${ParentPropertyName} = get${ParentPropertyName}(); + // check for no-op + if (${parentPropertyName} == null || + ${parentPropertyName}.equals(current${ParentPropertyName})) { + return; + } + // delegate to parent to associate + ${parentPropertyName}.addTo${ChildCollectionNameInParent}(this); + // additional business logic + onModify${ParentPropertyName}(current${ParentPropertyName}, ${parentPropertyName}); +} +public void clear${ParentPropertyName}() { + ${ParentPropertyType} current${ParentPropertyName} = get${ParentPropertyName}(); + // check for no-op + if (current${ParentPropertyName} == null) { + return; + } + // delegate to parent to dissociate + current${ParentPropertyName}.removeFrom${ChildCollectionNameInParent}(this); + // additional business logic + onClear${ParentPropertyName}(current${ParentPropertyName}); +}</template><template autoinsert="true" context="java-members" deleted="false" description="Property choices" enabled="true" name="ispcho">${:import(java.util.List)}public List<${PropertyType}> choices${PropertyName}() { + return ${cursor}null; // TODO: return list of choices for property +}</template><template autoinsert="true" context="java-members" deleted="false" description="Property defaults" enabled="true" name="ispdef">public ${PropertyType} default${PropertyName}() { + return ${cursor}null; // TODO: return default for property when first created +}</template><template autoinsert="true" context="java-members" deleted="false" description="Property disabling" enabled="true" name="ispdis">public String disable${PropertyName}() { + return ${cursor}null; // TODO: return reason why property is disabled, null if editable +}</template><template autoinsert="true" context="java-members" deleted="false" description="Property hiding" enabled="true" name="isphid">public boolean hide${PropertyName}() { + return ${cursor}false; // TODO: return true if hidden, false if visible +}</template><template autoinsert="true" context="java-members" deleted="false" description="Property modify" enabled="true" name="ispmod">public void modify${PropertyName}(final ${PropertyType} ${propertyName}) { + ${PropertyType} current${PropertyName} = get${PropertyName}(); + // check for no-op + if (${propertyName} == null || + ${propertyName}.equals(current${PropertyName})) { + return; + } + // associate new + set${PropertyName}(${propertyName}); + // additional business logic + onModify${PropertyName}(current${PropertyName}, ${propertyName}); +} +public void clear${PropertyName}() { + ${PropertyType} current${PropertyName} = get${PropertyName}(); + // check for no-op + if (current${PropertyName} == null) { + return; + } + // dissociate existing + set${PropertyName}(null); + // additional business logic + onClear${PropertyName}(current${PropertyName}); +} +protected void onModify${PropertyName}(final ${PropertyType} old${PropertyName}, final ${PropertyType} new${PropertyName}) { +} +protected void onClear${PropertyName}(final ${PropertyType} old${PropertyName}) { +}</template><template autoinsert="true" context="java-members" deleted="false" description="Property validation" enabled="true" name="ispval">public String validate${PropertyName}(final ${PropertyType} ${propertyName}) { + if (${propertyName} == null) return null; + return ${cursor}null; // TODO: return reason why proposed value is invalid, null if valid +}</template><template autoinsert="true" context="java-members" deleted="false" description="Isis Section" enabled="true" name="iss">// {{ ${SectionName} +${cursor} +// }}</template><template autoinsert="true" context="java-members" deleted="false" description="Search for all" enabled="true" name="issa">// {{ all ${TypePlural} +${:import(org.apache.isis.applib.annotation.Exploration,java.util.List)}@Exploration +public List<${Type}> all${TypePlural}() { + return allInstances(${Type}.class); +} +// }} + + +</template><template autoinsert="true" context="java-members" deleted="false" description="Search for all matching" enabled="true" name="issafil">// {{ all ${TypePlural} that ${filterDescription} +${:import(org.apache.isis.applib.annotation.Exploration,org.apache.isis.applib.Filter,java.util.List)}@Exploration +public List<${Type}> all${TypePlural}Matching(final Filter<${Type}> filter) { + return allMatches(${Type}.class, filter); +} +// }} + + +</template><template autoinsert="true" context="java-members" deleted="false" description="Search for first matching" enabled="true" name="issffil">// {{ first ${Type} that ${filterDescription} +${:import(org.apache.isis.applib.annotation.Exploration,org.apache.isis.applib.Filter,java.util.List)}@Exploration +public ${Type} first${Type}Matching(final Filter<${Type}> filter) { + return firstMatch(${Type}.class, filter); +} +// }} +</template><template autoinsert="true" context="java-members" deleted="false" description="Search for unique matching" enabled="true" name="issufil">// {{ unique ${Type} that ${filterDescription} +${:import(org.apache.isis.applib.annotation.Exploration,org.apache.isis.applib.Filter,java.util.List)}@Exploration +public ${Type} unique${Type}Matching(final Filter<${Type}> filter) { + return uniqueMatch(${Type}.class, filter); +} +// }} +</template><template autoinsert="true" context="java-members" deleted="false" description="Object-level validation" enabled="true" name="isval">public String validate() { + ${cursor}// TODO: return reason why object is in invalid state (and so cannot be saved/updated), or null if ok }</template></templates> \ No newline at end of file