You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/06/16 08:32:16 UTC
svn commit: r1685718 [44/47] - in /isis/site/trunk/content: ./ css/
css/asciidoctor/ css/font-awesome/ css/font-awesome/4.3.0/
css/font-awesome/4.3.0/css/ css/font-awesome/4.3.0/fonts/
css/font-awesome/4.3.0/less/ css/font-awesome/4.3.0/scss/ css/found...
Added: isis/site/trunk/content/resources/templates/isis-templates.xml
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/resources/templates/isis-templates.xml?rev=1685718&view=auto
==============================================================================
--- isis/site/trunk/content/resources/templates/isis-templates.xml (added)
+++ isis/site/trunk/content/resources/templates/isis-templates.xml Tue Jun 16 06:32:10 2015
@@ -0,0 +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
+}</template></templates>
\ No newline at end of file
Added: isis/site/trunk/content/resources/templates/isis-templates2.xml
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/resources/templates/isis-templates2.xml?rev=1685718&view=auto
==============================================================================
--- isis/site/trunk/content/resources/templates/isis-templates2.xml (added)
+++ isis/site/trunk/content/resources/templates/isis-templates2.xml Tue Jun 16 06:32:10 2015
@@ -0,0 +1,479 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><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="JDO Collection (set - 1:n bidir, foreign key)" enabled="true" name="isc-jdo-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 (set - 1:n bidir, join table)" enabled="true" name="isc-jdo-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 (set - 1:n unidir, foreign key)" enabled="true" name="isc-jdo-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 (set - 1:n unidir, join table)" enabled="true" name="isc-jdo-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 (set - m:n bidir - child)" enabled="true" name="isc-jdo-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 (set - m:n unidir & bidir - parent)" enabled="true" name="isc-jdo-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="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">private ${ServiceType} ${serviceType};
+public final void inject${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">public ${Type} new${Type}() {
+ ${Type} ${type} = newTransientInstance(${Type}.class);
+ ${cursor}// TODO: set up any properties
+
+ persistIfNotAlready(${type});
+ return ${type};
+}
+</template><template autoinsert="true" context="java-members" deleted="false" description="Factory - new instance (transient)" enabled="true" name="isft">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="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="Search for all" enabled="true" name="issa">// //////////////////////////////////////
+// all ${TypePlural}
+// //////////////////////////////////////
+
+${:import(org.apache.isis.applib.annotation.Prototype,java.util.List)}@Prototype
+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.Prototype,org.apache.isis.applib.Filter,java.util.List)}@Prototype
+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.Prototype,org.apache.isis.applib.Filter,java.util.List)}@Prototype
+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
Added: isis/site/trunk/content/resources/templates/jmock2-templates-idea.xml
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/resources/templates/jmock2-templates-idea.xml?rev=1685718&view=auto
==============================================================================
--- isis/site/trunk/content/resources/templates/jmock2-templates-idea.xml (added)
+++ isis/site/trunk/content/resources/templates/jmock2-templates-idea.xml Tue Jun 16 06:32:10 2015
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templateSet group="jmock2-templates">
+ <template name="jmautomock" value="@org.jmock.auto.Mock private $MockClass$ mock$MockClass$;" description="" toReformat="true" toShortenFQNames="true">
+ <variable name="MockClass" expression="className()" defaultValue="" alwaysStopAt="true" />
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+ <template name="jmcontext" value="private org.jmock.Mockery context = new org.jmock.integration.junit4.JUnit4Mockery();" description="" toReformat="true" toShortenFQNames="true">
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+ <template name="jmexpectations" value="context.checking(new org.jmock.Expectations() {{ $END$ }});" description="" toReformat="true" toShortenFQNames="true">
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+ <template name="jmmock" value="$MockClass$ $mockObject$ = context.mock($MockClass$.class);" description="" toReformat="true" toShortenFQNames="true">
+ <variable name="MockClass" expression="className()" defaultValue="" alwaysStopAt="true" />
+ <variable name="mockObject" expression="suggestVariableName()" defaultValue="" alwaysStopAt="true" />
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+ <template name="jmrule" value="@org.junit.Rule public org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2 context = org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.createFor(org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES$END$);" description="" toReformat="true" toShortenFQNames="true">
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+ <template name="jmrunwith" value="@org.junit.runner.RunWith(org.jmock.integration.junit4.JMock.class)" description="" toReformat="true" toShortenFQNames="true">
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+ <template name="jmvalue" value="will(returnValue($END$));" description="" toReformat="true" toShortenFQNames="true">
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+</templateSet>
+
Added: isis/site/trunk/content/resources/templates/jmock2-templates.xml
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/resources/templates/jmock2-templates.xml?rev=1685718&view=auto
==============================================================================
--- isis/site/trunk/content/resources/templates/jmock2-templates.xml (added)
+++ isis/site/trunk/content/resources/templates/jmock2-templates.xml Tue Jun 16 06:32:10 2015
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="true" context="java" deleted="false" description="JMock2 AutoMock Definition" enabled="true" name="jmautomock">${:import(org.jmock.auto.Mock)}@Mock
+private ${MockClass} mock${MockClass};
+</template><template autoinsert="true" context="java" deleted="false" description="JMock2 Context field" enabled="true" name="jmcontext">${:import(org.jmock.Mockery,org.jmock.integration.junit4.JUnit4Mockery)}private Mockery context = new JUnit4Mockery();
+</template><template autoinsert="true" context="java" deleted="false" description="JMock2 Expectations" enabled="true" name="jmexpectations">${:import(org.jmock.Expectations)}context.checking(new Expectations() {{
+ ${cursor}
+}});</template><template autoinsert="true" context="java" deleted="false" description="JMock2 Mock Definition" enabled="true" name="jmmock">${MockClass} ${mockObject} = context.mock(${MockClass}.class);</template><template autoinsert="true" context="java" deleted="false" description="JMock2 Rule (Isis variant)" enabled="true" name="jmrule">${:import(org.junit.Rule,org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2,org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode)}@Rule
+public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES${cursor});
+
+</template><template autoinsert="true" context="java" deleted="false" description="JMock2 RunWith" enabled="true" name="jmrunwith">${:import(org.junit.runner.RunWith,org.jmock.integration.junit4.JMock)}@RunWith(JMock.class)</template><template autoinsert="true" context="java" deleted="false" description="JMock2 Expectation Return Value" enabled="true" name="jmvalue">will(returnValue(${cursor}));</template></templates>
\ No newline at end of file
Added: isis/site/trunk/content/resources/templates/junit4-templates-idea.xml
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/resources/templates/junit4-templates-idea.xml?rev=1685718&view=auto
==============================================================================
--- isis/site/trunk/content/resources/templates/junit4-templates-idea.xml (added)
+++ isis/site/trunk/content/resources/templates/junit4-templates-idea.xml Tue Jun 16 06:32:10 2015
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templateSet group="junit4-templates">
+ <template name="juafter" value="@org.junit.After public void tearDown() throws Exception { $END$ }" description="" toReformat="true" toShortenFQNames="true">
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+ <template name="juassertThat" value="org.junit.Assert.assertThat($object$, $matcher$);" description="" toReformat="true" toShortenFQNames="true">
+ <variable name="object" expression=""object"" defaultValue="" alwaysStopAt="true" />
+ <variable name="matcher" expression=""matcher"" defaultValue="" alwaysStopAt="true" />
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+ <template name="jubefore" value="@org.junit.Before public void setUp() throws Exception { $END$ }" description="" toReformat="true" toShortenFQNames="true">
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+ <template name="jutest" value="@org.junit.Test public void $xxx$() throws Exception { $END$ }" description="" toReformat="true" toShortenFQNames="true">
+ <variable name="xxx" expression=""xxx"" defaultValue="" alwaysStopAt="true" />
+ <context>
+ <option name="HTML" value="false" />
+ <option name="XML" value="false" />
+ <option name="JAVA_CODE" value="true" />
+ <option name="JAVA_COMMENT" value="false" />
+ <option name="JAVA_STRING" value="false" />
+ <option name="COMPLETION" value="false" />
+ <option name="JAVA_SCRIPT" value="false" />
+ <option name="OTHER" value="false" />
+ </context>
+ </template>
+</templateSet>
+
Added: isis/site/trunk/content/resources/templates/junit4-templates.xml
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/resources/templates/junit4-templates.xml?rev=1685718&view=auto
==============================================================================
--- isis/site/trunk/content/resources/templates/junit4-templates.xml (added)
+++ isis/site/trunk/content/resources/templates/junit4-templates.xml Tue Jun 16 06:32:10 2015
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="true" context="java" deleted="false" description="JUnit4 After Method" enabled="true" name="juafter">${:import(org.junit.After)}@After
+public void tearDown() throws Exception {
+ ${cursor}
+}
+</template><template autoinsert="true" context="java" deleted="false" description="JUnit4 AssertThat" enabled="true" name="juassertThat">${:importStatic(org.junit.Assert.assertThat,'org.hamcrest.CoreMatchers.*')}assertThat(${object}, ${matcher});</template><template autoinsert="true" context="java" deleted="false" description="JUnit4 Before Method" enabled="true" name="jubefore">${:import(org.junit.Before)}@Before
+public void setUp() throws Exception {
+ ${cursor}
+}
+</template><template autoinsert="true" context="java" deleted="false" description="JUnit4 Test Method" enabled="true" name="jutest">${:import(org.junit.Test)}@Test
+public void ${xxx}() throws Exception {
+ ${cursor}
+}
+</template></templates>
\ No newline at end of file
Added: isis/site/trunk/content/resources/thesis/Pawson-Naked-Objects-thesis.pdf
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/resources/thesis/Pawson-Naked-Objects-thesis.pdf?rev=1685718&view=auto
==============================================================================
Binary files isis/site/trunk/content/resources/thesis/Pawson-Naked-Objects-thesis.pdf (added) and isis/site/trunk/content/resources/thesis/Pawson-Naked-Objects-thesis.pdf Tue Jun 16 06:32:10 2015 differ