isis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From danhayw...@apache.org
Subject svn commit: r1049313 [3/4] - in /incubator/isis/trunk: alternatives/embedded/src/main/java/org/apache/isis/alternatives/embedded/internal/ alternatives/objectstore/nosql/src/main/java/org/apache/isis/alternatives/objectstore/nosql/ applib/src/docbkx/gu...
Date Tue, 14 Dec 2010 22:42:04 GMT
Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java Tue Dec 14 22:42:03 2010
@@ -34,7 +34,7 @@ import java.lang.annotation.Target;
  * For a repository action, is equivalent to {@link NotContributed} and also {@link NotInServiceMenu}.
  */
 @Inherited
-@Target( { ElementType.METHOD })
+@Target( { ElementType.TYPE, ElementType.METHOD })
 @Retention(RetentionPolicy.RUNTIME)
 public @interface Hidden {
     When value() default When.ALWAYS;

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/NotPersisted.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/NotPersisted.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/NotPersisted.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/NotPersisted.java Tue Dec 14 22:42:03 2010
@@ -28,7 +28,7 @@ import java.lang.annotation.Target;
 
 
 /**
- * Indicates that an instance or a property should not be persisted.
+ * Indicates that a property should not be persisted.
  */
 @Inherited
 @Target( { ElementType.METHOD })

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/Optional.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/Optional.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/Optional.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/annotation/Optional.java Tue Dec 14 22:42:03 2010
@@ -28,13 +28,10 @@ import java.lang.annotation.Target;
 
 
 /**
- * Indicates that a property is not mandatory.
- * 
- * <p>
- * Can also be specified for types that are annotated as <tt>@Value</tt> types. The value need not have string semantics.
+ * Indicates that a property or parameter is not mandatory.
  */
 @Inherited
-@Target( { ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER })
+@Target( { ElementType.METHOD, ElementType.PARAMETER })
 @Retention(RetentionPolicy.RUNTIME)
 public @interface Optional {
 

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentEvent.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentEvent.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentEvent.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentEvent.java Tue Dec 14 22:42:03 2010
@@ -33,7 +33,7 @@ import org.apache.isis.applib.Identifier
  * <p>
  * Called once per argument, and before {@link ActionInvocationEvent}.
  */
-public class ActionArgumentEvent extends ValidityEvent implements ProposedHolderEvent {
+public class ActionArgumentEvent extends ValidityEvent {
 
     private static final long serialVersionUID = 1L;
 

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ActionInvocationEvent.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ActionInvocationEvent.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ActionInvocationEvent.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ActionInvocationEvent.java Tue Dec 14 22:42:03 2010
@@ -50,6 +50,14 @@ public class ActionInvocationEvent exten
 
     public void setArgs(final Object[] args) {
         this.args = args;
-    }
+    }
+
+    /**
+     * Does not apply
+     */
+	@Override
+	public Object getProposed() {
+		return null;
+	}
 
 }

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/CollectionAddToEvent.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/CollectionAddToEvent.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/CollectionAddToEvent.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/CollectionAddToEvent.java Tue Dec 14 22:42:03 2010
@@ -32,7 +32,7 @@ import org.apache.isis.applib.Identifier
  * 
  * @see CollectionRemoveFromEvent
  */
-public class CollectionAddToEvent extends ValidityEvent implements ProposedHolderEvent {
+public class CollectionAddToEvent extends ValidityEvent {
 
     private static final long serialVersionUID = 1L;
 

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/CollectionRemoveFromEvent.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/CollectionRemoveFromEvent.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/CollectionRemoveFromEvent.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/CollectionRemoveFromEvent.java Tue Dec 14 22:42:03 2010
@@ -32,7 +32,7 @@ import org.apache.isis.applib.Identifier
  * 
  * @see CollectionAddToEvent
  */
-public class CollectionRemoveFromEvent extends ValidityEvent implements ProposedHolderEvent {
+public class CollectionRemoveFromEvent extends ValidityEvent {
 
     private static final long serialVersionUID = 1L;
 

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ObjectValidityEvent.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ObjectValidityEvent.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ObjectValidityEvent.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ObjectValidityEvent.java Tue Dec 14 22:42:03 2010
@@ -31,7 +31,7 @@ import org.apache.isis.applib.Identifier
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the object is invalid,
  * otherwise ok.
  */
-public class ObjectValidityEvent extends ValidityEvent implements ProposedHolderEvent {
+public class ObjectValidityEvent extends ValidityEvent {
 
     private static final long serialVersionUID = 1L;
 

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ParseValueEvent.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ParseValueEvent.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ParseValueEvent.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ParseValueEvent.java Tue Dec 14 22:42:03 2010
@@ -30,7 +30,7 @@ import org.apache.isis.applib.Identifier
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the proposed value is invalid,
  * otherwise the new value is acceptable.
  */
-public class ParseValueEvent extends ValidityEvent implements ProposedHolderEvent {
+public class ParseValueEvent extends ValidityEvent {
 
     private static final long serialVersionUID = 1L;
 

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/PropertyModifyEvent.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/PropertyModifyEvent.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/PropertyModifyEvent.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/PropertyModifyEvent.java Tue Dec 14 22:42:03 2010
@@ -30,7 +30,7 @@ import org.apache.isis.applib.Identifier
  * If {@link #getReason()} is not <tt>null</tt> then provides the reason why the value is invalid; otherwise
  * the value is valid.
  */
-public class PropertyModifyEvent extends ValidityEvent implements ProposedHolderEvent {
+public class PropertyModifyEvent extends ValidityEvent {
 
     private static final long serialVersionUID = 1L;
 

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ValidityEvent.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ValidityEvent.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ValidityEvent.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/events/ValidityEvent.java Tue Dec 14 22:42:03 2010
@@ -43,7 +43,7 @@ import org.apache.isis.applib.Identifier
  * @see VisibilityEvent
  * @see UsabilityEvent
  */
-public abstract class ValidityEvent extends InteractionEvent {
+public abstract class ValidityEvent extends InteractionEvent implements ProposedHolderEvent {
 
     private static final long serialVersionUID = 1L;
 

Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/security/UserMemento.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/security/UserMemento.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/security/UserMemento.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/security/UserMemento.java Tue Dec 14 22:42:03 2010
@@ -78,13 +78,16 @@ public final class UserMemento {
     
     
     /**
-     * Determine if the specified user is this user. Returns true if the names match (is case sensitive).
+     * Determine if the specified name is this user. 
+     * 
+     * <p>
+     * @return true if the names match (is case sensitive).
      */
-    public boolean isCurrentUser(final String user) {
-        if (user == null) {
-            throw new IllegalStateException("no user specified");
+    public boolean isCurrentUser(final String userName) {
+        if (userName == null) {
+            throw new IllegalArgumentException("no user name provided");
         }
-        return name.equals(user);
+        return name.equals(userName);
     }
     // }}
 

Added: incubator/isis/trunk/applib/src/main/resources/org/apache/isis/applib/events/Events.ucd
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/resources/org/apache/isis/applib/events/Events.ucd?rev=1049313&view=auto
==============================================================================
--- incubator/isis/trunk/applib/src/main/resources/org/apache/isis/applib/events/Events.ucd (added)
+++ incubator/isis/trunk/applib/src/main/resources/org/apache/isis/applib/events/Events.ucd Tue Dec 14 22:42:03 2010
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<editmodel:ClassDiagramEditModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:editmodel="editmodel.xmi" xmlns:options="options.xmi" name="Events" size="3834,1217" id="org.apache.isis.applib.events" metadata="uml2-1.0" initialized="true" zoom="0.75" scrolledY="27" tag="1000" key="32303037303533312D31303030206170706C69622F64616E">
+  <children xsi:type="editmodel:ClassEditModel" name="ObjectTitleEvent" location="989,436" size="146,67" id="org.apache.isis.applib.events/ObjectTitleEvent" runTimeClassModel="title,ObjectTitleEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.String;),getTitle()">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="64,18">
+      <children xsi:type="editmodel:MethodEditModel" name="getTitle" id="org.apache.isis.applib.events/ObjectTitleEvent#getTitle()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.4/@sourceConnections.0 //@children.17/@sourceConnections.0 //@children.13/@sourceConnections.0" autoLocated="true" id="org.apache.isis.applib.events/AccessEvent&lt;-org.apache.isis.applib.events/ObjectTitleEvent" source="//@children.0" target="//@children.10" targetEnd="//@children.0/@sourceConnections.0/@children.1" sourceEnd="//@children.0/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="73,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="60,29" anchorKind="FixedAtEdge"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="CollectionAddToEvent" location="936,743" size="181,67" id="org.apache.isis.applib.events/CollectionAddToEvent" runTimeClassModel="getProposed(),CollectionAddToEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.Object;),proposed">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="91,18">
+      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/CollectionAddToEvent#getProposed()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/CollectionAddToEvent" source="//@children.1" target="//@children.3/@sourceConnections.0" targetEnd="//@children.1/@sourceConnections.0/@children.1" sourceEnd="//@children.1/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="90,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.3/@sourceConnections.0" name="ValidityEvent" location="1123,597" size="124,67" id="org.apache.isis.applib.events/ValidityEvent" runTimeClassModel="ValidityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;),getSource()">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="80,18">
+      <children xsi:type="editmodel:MethodEditModel" name="getSource" id="org.apache.isis.applib.events/ValidityEvent#getSource()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/InteractionEvent&lt;-org.apache.isis.applib.events/ValidityEvent" source="//@children.2" target="//@children.10/@sourceConnections.0" targetEnd="//@children.2/@sourceConnections.0/@children.1" sourceEnd="//@children.2/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="62,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ProposedHolderEvent&lt;-org.apache.isis.applib.events/ValidityEvent" source="//@children.2" target="//@children.5" targetEnd="//@children.2/@sourceConnections.1/@children.1" sourceEnd="//@children.2/@sourceConnections.1/@children.0" connectionRouterKind="Manual">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="114,0" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="8,99"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="ActionArgumentEvent" location="1288,733" size="179,103" id="org.apache.isis.applib.events/ActionArgumentEvent" runTimeClassModel="ActionArgumentEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;[Ljava.lang.Object;I),position,getProposed(),getArgs(),args,getPosition(),proposed">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="91,54">
+      <children xsi:type="editmodel:MethodEditModel" name="getArgs" id="org.apache.isis.applib.events/ActionArgumentEvent#getArgs()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getPosition" id="org.apache.isis.applib.events/ActionArgumentEvent#getPosition()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/ActionArgumentEvent#getProposed()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.1/@sourceConnections.0 //@children.15/@sourceConnections.0 //@children.6/@sourceConnections.0 //@children.7/@sourceConnections.0 //@children.11/@sourceConnections.0 //@children.19/@sourceConnections.0" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/ActionArgumentEvent" source="//@children.3" target="//@children.2" targetEnd="//@children.3/@sourceConnections.0/@children.1" sourceEnd="//@children.3/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="89,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="62,67" anchorKind="FixedAtEdge"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="CollectionMethodEvent" location="778,438" size="188,139" id="org.apache.isis.applib.events/CollectionMethodEvent" runTimeClassModel="getArgs(),getMethodName(),getReturnValue(),CollectionMethodEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.Object;Ljava.lang.String;[Ljava.lang.Object;Ljava.lang.Object;),args,getDomainObject(),returnValue,domainObject,methodName,getSource()">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="111,90">
+      <children xsi:type="editmodel:MethodEditModel" name="getSource" id="org.apache.isis.applib.events/CollectionMethodEvent#getSource()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getDomainObject" id="org.apache.isis.applib.events/CollectionMethodEvent#getDomainObject()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getMethodName" id="org.apache.isis.applib.events/CollectionMethodEvent#getMethodName()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getArgs" id="org.apache.isis.applib.events/CollectionMethodEvent#getArgs()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getReturnValue" id="org.apache.isis.applib.events/CollectionMethodEvent#getReturnValue()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/AccessEvent&lt;-org.apache.isis.applib.events/CollectionMethodEvent" source="//@children.4" target="//@children.0/@sourceConnections.0" targetEnd="//@children.4/@sourceConnections.0/@children.1" sourceEnd="//@children.4/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="94,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:InterfaceEditModel" targetConnections="//@children.2/@sourceConnections.1" name="ProposedHolderEvent" location="1229,449" size="179,99" id="org.apache.isis.applib.events/ProposedHolderEvent" runTimeClassModel="getProposed(),getMemberNaturalName()">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="144,36">
+      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/ProposedHolderEvent#getProposed()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getMemberNaturalName" id="org.apache.isis.applib.events/ProposedHolderEvent#getMemberNaturalName()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="ObjectValidityEvent" location="1394,850" size="165,85" id="org.apache.isis.applib.events/ObjectValidityEvent" runTimeClassModel="getProposed(),ObjectValidityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="122,36">
+      <children xsi:type="editmodel:MethodEditModel" name="ObjectValidityEvent" id="org.apache.isis.applib.events/ObjectValidityEvent#ObjectValidityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/ObjectValidityEvent#getProposed()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/ObjectValidityEvent" source="//@children.6" target="//@children.3/@sourceConnections.0" targetEnd="//@children.6/@sourceConnections.0/@children.1" sourceEnd="//@children.6/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="82,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="ParseValueEvent" location="754,743" size="149,85" id="org.apache.isis.applib.events/ParseValueEvent" runTimeClassModel="getProposed(),ParseValueEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.String;),proposed,getSource()">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="91,36">
+      <children xsi:type="editmodel:MethodEditModel" name="getSource" id="org.apache.isis.applib.events/ParseValueEvent#getSource()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/ParseValueEvent#getProposed()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/ParseValueEvent" source="//@children.7" target="//@children.3/@sourceConnections.0" targetEnd="//@children.7/@sourceConnections.0/@children.1" sourceEnd="//@children.7/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="74,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.21/@sourceConnections.0 //@children.20/@sourceConnections.0 //@children.22/@sourceConnections.0" name="UsabilityEvent" location="433,586" size="131,29" id="org.apache.isis.applib.events/UsabilityEvent" runTimeClassModel="UsabilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/InteractionEvent&lt;-org.apache.isis.applib.events/UsabilityEvent" source="//@children.8" target="//@children.10/@sourceConnections.0" targetEnd="//@children.8/@sourceConnections.0/@children.1" sourceEnd="//@children.8/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="65,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.18/@sourceConnections.0 //@children.14/@sourceConnections.0" name="VisibilityEvent" location="194,329" size="131,67" id="org.apache.isis.applib.events/VisibilityEvent" runTimeClassModel="VisibilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="96,18">
+      <children xsi:type="editmodel:MethodEditModel" name="VisibilityEvent" id="org.apache.isis.applib.events/VisibilityEvent#VisibilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/InteractionEvent&lt;-org.apache.isis.applib.events/VisibilityEvent" source="//@children.9" target="//@children.10/@sourceConnections.0" targetEnd="//@children.9/@sourceConnections.0/@children.1" sourceEnd="//@children.9/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="65,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.0/@sourceConnections.0" name="AccessEvent" location="823,320" size="120,29" id="org.apache.isis.applib.events/AccessEvent" runTimeClassModel="AccessEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.2/@sourceConnections.0 //@children.8/@sourceConnections.0 //@children.9/@sourceConnections.0" autoLocated="true" id="org.apache.isis.applib.events/InteractionEvent&lt;-org.apache.isis.applib.events/AccessEvent" source="//@children.10" target="//@children.16" targetEnd="//@children.10/@sourceConnections.0/@children.1" sourceEnd="//@children.10/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="60,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="94,229" anchorKind="FixedAtEdge"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="PropertyModifyEvent" location="831,851" size="173,67" id="org.apache.isis.applib.events/PropertyModifyEvent" runTimeClassModel="getProposed(),PropertyModifyEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.Object;),proposed">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="91,18">
+      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/PropertyModifyEvent#getProposed()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/PropertyModifyEvent" source="//@children.11" target="//@children.3/@sourceConnections.0" targetEnd="//@children.11/@sourceConnections.0/@children.1" sourceEnd="//@children.11/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="86,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="PropertyVisibilityEvent" location="59,448" size="185,29" id="org.apache.isis.applib.events/PropertyVisibilityEvent" runTimeClassModel="PropertyVisibilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" id="org.apache.isis.applib.events/VisibilityEvent&lt;-org.apache.isis.applib.events/PropertyVisibilityEvent" source="//@children.12" target="//@children.18/@sourceConnections.0" targetEnd="//@children.12/@sourceConnections.0/@children.1" sourceEnd="//@children.12/@sourceConnections.0/@children.0" connectionRouterKind="Manual">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="92,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="16,-127"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="PropertyAccessEvent" location="553,436" size="174,67" id="org.apache.isis.applib.events/PropertyAccessEvent" runTimeClassModel="getValue(),PropertyAccessEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.Object;),value">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="72,18">
+      <children xsi:type="editmodel:MethodEditModel" name="getValue" id="org.apache.isis.applib.events/PropertyAccessEvent#getValue()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/AccessEvent&lt;-org.apache.isis.applib.events/PropertyAccessEvent" source="//@children.13" target="//@children.0/@sourceConnections.0" targetEnd="//@children.13/@sourceConnections.0/@children.1" sourceEnd="//@children.13/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="87,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="CollectionVisibilityEvent" location="165,501" size="195,29" id="org.apache.isis.applib.events/CollectionVisibilityEvent" runTimeClassModel="CollectionVisibilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/VisibilityEvent&lt;-org.apache.isis.applib.events/CollectionVisibilityEvent" source="//@children.14" target="//@children.9" targetEnd="//@children.14/@sourceConnections.0/@children.1" sourceEnd="//@children.14/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="94,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="65,67" anchorKind="FixedAtEdge"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="CollectionRemoveFromEvent" location="1033,822" size="226,67" id="org.apache.isis.applib.events/CollectionRemoveFromEvent" runTimeClassModel="getProposed(),proposed,CollectionRemoveFromEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;Ljava.lang.Object;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="91,18">
+      <children xsi:type="editmodel:MethodEditModel" name="getProposed" id="org.apache.isis.applib.events/CollectionRemoveFromEvent#getProposed()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/CollectionRemoveFromEvent" source="//@children.15" target="//@children.3/@sourceConnections.0" targetEnd="//@children.15/@sourceConnections.0/@children.1" sourceEnd="//@children.15/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="113,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" targetConnections="//@children.10/@sourceConnections.0" name="InteractionEvent" location="629,30" size="188,229" id="org.apache.isis.applib.events/InteractionEvent" runTimeClassModel="getClassName(),advisorClass,reason,getMemberName(),getClassNaturalName(),getAdvisorClass(),getMemberNaturalName(),getSource(),InteractionEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;),isVeto(),advised(Ljava.lang.String;Ljava.lang.Class;),getIdentifier(),getReason(),getMemberParameterNames(),getMemberParameterNaturalNames(),identifier">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="165,180">
+      <children xsi:type="editmodel:MethodEditModel" name="getSource" id="org.apache.isis.applib.events/InteractionEvent#getSource()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getClassName" id="org.apache.isis.applib.events/InteractionEvent#getClassName()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getMemberParameterNames" id="org.apache.isis.applib.events/InteractionEvent#getMemberParameterNames()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="advised" id="org.apache.isis.applib.events/InteractionEvent#advised(Ljava.lang.String;Ljava.lang.Class;)"/>
+      <children xsi:type="editmodel:MethodEditModel" name="InteractionEvent" id="org.apache.isis.applib.events/InteractionEvent#InteractionEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)"/>
+      <children xsi:type="editmodel:MethodEditModel" name="isVeto" id="org.apache.isis.applib.events/InteractionEvent#isVeto()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getIdentifier" id="org.apache.isis.applib.events/InteractionEvent#getIdentifier()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getMemberName" id="org.apache.isis.applib.events/InteractionEvent#getMemberName()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getAdvisorClass" id="org.apache.isis.applib.events/InteractionEvent#getAdvisorClass()"/>
+      <children xsi:type="editmodel:MethodEditModel" name="getReason" id="org.apache.isis.applib.events/InteractionEvent#getReason()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Visibility" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="CollectionAccessEvent" location="592,520" size="184,29" id="org.apache.isis.applib.events/CollectionAccessEvent" runTimeClassModel="CollectionAccessEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" id="org.apache.isis.applib.events/AccessEvent&lt;-org.apache.isis.applib.events/CollectionAccessEvent" source="//@children.17" target="//@children.0/@sourceConnections.0" targetEnd="//@children.17/@sourceConnections.0/@children.1" sourceEnd="//@children.17/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="156,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="ActionVisibilityEvent" location="294,455" size="171,29" id="org.apache.isis.applib.events/ActionVisibilityEvent" runTimeClassModel="ActionVisibilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" targetConnections="//@children.12/@sourceConnections.0" id="org.apache.isis.applib.events/VisibilityEvent&lt;-org.apache.isis.applib.events/ActionVisibilityEvent" source="//@children.18" target="//@children.9" targetEnd="//@children.18/@sourceConnections.0/@children.1" sourceEnd="//@children.18/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="90,-1" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="65,67" anchorKind="FixedAtEdge"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="ActionInvocationEvent" location="1183,925" size="183,67" id="org.apache.isis.applib.events/ActionInvocationEvent" runTimeClassModel="getArgs(),getProposed(),args,setArgs([Ljava.lang.Object;),ActionInvocationEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;[Ljava.lang.Object;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="69,18">
+      <children xsi:type="editmodel:MethodEditModel" name="getArgs" id="org.apache.isis.applib.events/ActionInvocationEvent#getArgs()"/>
+    </children>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/ValidityEvent&lt;-org.apache.isis.applib.events/ActionInvocationEvent" source="//@children.19" target="//@children.3/@sourceConnections.0" targetEnd="//@children.19/@sourceConnections.0/@children.1" sourceEnd="//@children.19/@sourceConnections.0/@children.0" connectionRouterKind="GeneralizationManhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="91,0" anchorKind="FixedAtEdge" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="99,67"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="ActionUsabilityEvent" location="534,682" size="171,29" id="org.apache.isis.applib.events/ActionUsabilityEvent" runTimeClassModel="ActionUsabilityEvent(Ljava.lang.Object;Lorg.apache.isis.applib.Identifier;)">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" id="org.apache.isis.applib.events/UsabilityEvent&lt;-org.apache.isis.applib.events/ActionUsabilityEvent" source="//@children.20" target="//@children.8" targetEnd="//@children.20/@sourceConnections.0/@children.1" sourceEnd="//@children.20/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="82,0" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="64,29"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="CollectionUsabilityEvent" location="414,724" size="195,29" id="org.apache.isis.applib.events/CollectionUsabilityEvent" runTimeClassModel="">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" autoLocated="true" id="org.apache.isis.applib.events/UsabilityEvent&lt;-org.apache.isis.applib.events/CollectionUsabilityEvent" source="//@children.21" target="//@children.8" targetEnd="//@children.21/@sourceConnections.0/@children.1" sourceEnd="//@children.21/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="84,0" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="65,29"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <children xsi:type="editmodel:ClassEditModel" name="PropertyUsabilityEvent" location="288,682" size="185,29" id="org.apache.isis.applib.events/PropertyUsabilityEvent" runTimeClassModel="">
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <children xsi:type="editmodel:CompartmentEditModel" size="0,0"/>
+    <sourceConnections xsi:type="editmodel:GeneralizationEditModel" id="org.apache.isis.applib.events/UsabilityEvent&lt;-org.apache.isis.applib.events/PropertyUsabilityEvent" source="//@children.22" target="//@children.8" targetEnd="//@children.22/@sourceConnections.0/@children.1" sourceEnd="//@children.22/@sourceConnections.0/@children.0" connectionRouterKind="Manhattan">
+      <children xsi:type="editmodel:AssociationEndEditModel" location="104,-1" attachSource="true"/>
+      <children xsi:type="editmodel:AssociationEndEditModel" location="64,29"/>
+    </sourceConnections>
+    <classifierPreferences xsi:type="editmodel:UMLClassDiagramClassifierPreference" showStereotype="true" attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+  </children>
+  <diagramOptions xsi:type="options:ClassDiagramOptions" properties="wireOptions=1;Product=eUML2" autoName="false"/>
+  <boardSetting snapToGeometry="true" gridEnabled="true" gridSpacing="15,15" gridOrigin="0,0" rulerUnit="pixel" gridVisibility="false">
+    <leftRuler/>
+    <topRuler/>
+  </boardSetting>
+  <classDiagramPreferences xsi:type="editmodel:UMLClassDiagramPreference" showPopupBars="true" showConnectionHandles="true" attributeSorter="Natural" methodSorter="Natural" showClassStereotype="true" showPackageStereotype="true" showDependencyStereotype="true" showInterfaceStereotype="true" innerClassSorter="Natural" showPublicAttributes="true" showPackageAttributes="true" showStaticAttributes="true" showPublicMethods="true" showPackageMethods="true" showStaticMethods="true" showPublicInnerClasses="true" showPackageInnerClasses="true" showStaticInnerClasses="true" packageIndication="3" showAttributeProperty="true"/>
+</editmodel:ClassDiagramEditModel>

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java Tue Dec 14 22:42:03 2010
@@ -82,4 +82,10 @@ public interface ObjectAdapter extends O
      */
     boolean isAggregated();
 
+    /**
+     * Either itself or its parent adapter (if aggregated).
+     * @return
+     */
+    ObjectAdapter getAggregateRoot();
+
 }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/When.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/When.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/When.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/When.java Tue Dec 14 22:42:03 2010
@@ -42,6 +42,19 @@ public final class When extends Enumerat
         return this == When.ALWAYS || 
                this == When.ONCE_PERSISTED && !isTransient || 
                this == When.UNTIL_PERSISTED && isTransient;
+    }
+
+    public static org.apache.isis.core.metamodel.facets.When decode(org.apache.isis.applib.annotation.When when) {
+        if (when == org.apache.isis.applib.annotation.When.ALWAYS) {
+            return org.apache.isis.core.metamodel.facets.When.ALWAYS;
+        }
+        if (when == org.apache.isis.applib.annotation.When.ONCE_PERSISTED) {
+            return org.apache.isis.core.metamodel.facets.When.ONCE_PERSISTED;
+        }
+        if (when == org.apache.isis.applib.annotation.When.UNTIL_PERSISTED) {
+            return org.apache.isis.core.metamodel.facets.When.UNTIL_PERSISTED;
+        }
+        return org.apache.isis.core.metamodel.facets.When.NEVER;
     }
 
 }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/java5/AnnotationBasedFacetFactoryAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/java5/AnnotationBasedFacetFactoryAbstract.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/java5/AnnotationBasedFacetFactoryAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/java5/AnnotationBasedFacetFactoryAbstract.java Tue Dec 14 22:42:03 2010
@@ -20,9 +20,9 @@
 
 package org.apache.isis.core.metamodel.java5;
 
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+
 import org.apache.isis.core.metamodel.facets.FacetFactory;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.spec.feature.ObjectFeatureType;
@@ -49,21 +49,6 @@ public abstract class AnnotationBasedFac
         return cls.equals(String.class);
     }
 
-    protected org.apache.isis.core.metamodel.facets.When decodeWhen(final org.apache.isis.applib.annotation.When when) {
-        if (when == org.apache.isis.applib.annotation.When.ALWAYS) {
-            return org.apache.isis.core.metamodel.facets.When.ALWAYS;
-        }
-        if (when == org.apache.isis.applib.annotation.When.ONCE_PERSISTED) {
-            return org.apache.isis.core.metamodel.facets.When.ONCE_PERSISTED;
-        }
-        if (when == org.apache.isis.applib.annotation.When.UNTIL_PERSISTED) {
-            return org.apache.isis.core.metamodel.facets.When.UNTIL_PERSISTED;
-        }
-        return org.apache.isis.core.metamodel.facets.When.NEVER;
-    }
-
-
-
     /**
      * Searches for annotation on provided class, and if not found for the superclass.
      *

Modified: incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ObjectNoop.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ObjectNoop.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ObjectNoop.java (original)
+++ incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/ObjectNoop.java Tue Dec 14 22:42:03 2010
@@ -20,9 +20,6 @@
 
 package org.apache.isis.core.metamodel.adapter;
 
-import org.apache.isis.core.metamodel.adapter.Instance;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ResolveState;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.version.Version;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
@@ -35,71 +32,94 @@ import org.apache.isis.core.metamodel.sp
  */
 public class ObjectNoop implements ObjectAdapter {
 
+    @Override
     public void changeState(final ResolveState newState) {}
 
+    @Override
     public void checkLock(final Version version) {}
 
+    @Override
     public void fireChangedEvent() {}
 
+    @Override
     public String getIconName() {
         return null;
     }
 
+    @Override
     public Object getObject() {
         return null;
     }
 
+    @Override
     public Oid getOid() {
         return null;
     }
 
+    @Override
     public ResolveState getResolveState() {
         return null;
     }
 
+    @Override
     public ObjectSpecification getSpecification() {
         return null;
     }
 
+    @Override
     public Version getVersion() {
         return null;
     }
 
+    @Override
     public void replacePojo(final Object pojo) {}
 
+    @Override
     public void setOptimisticLock(final Version version) {}
 
+    @Override
     public String titleString() {
         return null;
     }
 
+    @Override
     public TypeOfFacet getTypeOfFacet() {
         return null;
     }
 
+    @Override
     public void setTypeOfFacet(final TypeOfFacet typeOfFacet) {}
 
+    @Override
     public ObjectAdapter getOwner() {
         return null;
     }
 
+    @Override
     public Instance getInstance(Specification specification) {
         return null;
     }
 
+    @Override
     public boolean isAggregated() {
         return false;
     }
 
-	public boolean isPersistent() {
+	@Override
+    public boolean isPersistent() {
 		return false;
 	}
 
-	public boolean isTransient() {
+	@Override
+    public boolean isTransient() {
 		return false;
-	}
-
-
+	}
+
+    @Override
+    public ObjectAdapter getAggregateRoot() {
+        return null;
+    }
+
 
 }
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/disable/DisabledAnnotationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/disable/DisabledAnnotationFacetFactory.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/disable/DisabledAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/disable/DisabledAnnotationFacetFactory.java Tue Dec 14 22:42:03 2010
@@ -20,12 +20,13 @@
 
 package org.apache.isis.core.progmodel.facets.disable;
 
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Disabled;
+import java.lang.reflect.Method;
+
+import org.apache.isis.applib.annotation.Disabled;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.facets.FacetUtil;
 import org.apache.isis.core.metamodel.facets.MethodRemover;
+import org.apache.isis.core.metamodel.facets.When;
 import org.apache.isis.core.metamodel.java5.AnnotationBasedFacetFactoryAbstract;
 import org.apache.isis.core.metamodel.spec.feature.ObjectFeatureType;
 
@@ -43,7 +44,7 @@ public class DisabledAnnotationFacetFact
     }
 
     private DisabledFacet create(final Disabled annotation, final FacetHolder holder) {
-        return annotation == null ? null : new DisabledFacetAnnotation(decodeWhen(annotation.value()), holder);
+        return annotation == null ? null : new DisabledFacetAnnotation(When.decode(annotation.value()), holder);
     }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/hide/HiddenAnnotationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/hide/HiddenAnnotationFacetFactory.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/hide/HiddenAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/hide/HiddenAnnotationFacetFactory.java Tue Dec 14 22:42:03 2010
@@ -20,12 +20,13 @@
 
 package org.apache.isis.core.progmodel.facets.hide;
 
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Hidden;
+import java.lang.reflect.Method;
+
+import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.facets.FacetUtil;
 import org.apache.isis.core.metamodel.facets.MethodRemover;
+import org.apache.isis.core.metamodel.facets.When;
 import org.apache.isis.core.metamodel.facets.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.java5.AnnotationBasedFacetFactoryAbstract;
 import org.apache.isis.core.metamodel.spec.feature.ObjectFeatureType;
@@ -51,7 +52,7 @@ public class HiddenAnnotationFacetFactor
     }
 
     private HiddenFacet create(final Hidden annotation, final FacetHolder holder) {
-        return annotation == null ? null : new HiddenFacetAnnotation(decodeWhen(annotation.value()), holder);
+        return annotation == null ? null : new HiddenFacetAnnotation(When.decode(annotation.value()), holder);
     }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/immutable/ImmutableAnnotationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/immutable/ImmutableAnnotationFacetFactory.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/immutable/ImmutableAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/immutable/ImmutableAnnotationFacetFactory.java Tue Dec 14 22:42:03 2010
@@ -20,12 +20,13 @@
 
 package org.apache.isis.core.progmodel.facets.object.immutable;
 
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Immutable;
+import java.lang.reflect.Method;
+
+import org.apache.isis.applib.annotation.Immutable;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.facets.FacetUtil;
 import org.apache.isis.core.metamodel.facets.MethodRemover;
+import org.apache.isis.core.metamodel.facets.When;
 import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
 import org.apache.isis.core.metamodel.java5.AnnotationBasedFacetFactoryAbstract;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -55,7 +56,7 @@ public class ImmutableAnnotationFacetFac
     }
 
     private ImmutableFacet create(final Immutable annotation, final FacetHolder holder) {
-        return annotation == null ? null : new ImmutableFacetAnnotation(decodeWhen(annotation.value()), holder);
+        return annotation == null ? null : new ImmutableFacetAnnotation(When.decode(annotation.value()), holder);
     }
 
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/mandatory/OptionalAnnotationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/mandatory/OptionalAnnotationFacetFactory.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/mandatory/OptionalAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/mandatory/OptionalAnnotationFacetFactory.java Tue Dec 14 22:42:03 2010
@@ -20,10 +20,10 @@
 
 package org.apache.isis.core.progmodel.facets.propparam.validate.mandatory;
 
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Optional;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+
+import org.apache.isis.applib.annotation.Optional;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.facets.FacetUtil;
 import org.apache.isis.core.metamodel.facets.MethodRemover;
@@ -37,20 +37,21 @@ public class OptionalAnnotationFacetFact
     public OptionalAnnotationFacetFactory() {
         super(ObjectFeatureType.PROPERTIES_AND_PARAMETERS);
     }
-
-    @Override
-    public boolean process(Class<?> cls, final Method method, final MethodRemover methodRemover, final FacetHolder holder) {
-        final Class<?> returnType = method.getReturnType();
-        if (returnType.isPrimitive()) {
-            return false;
-        }
-        if (!isAnnotationPresent(method, Optional.class)) {
-            return false;
-        }
-        final Optional annotation = getAnnotation(method, Optional.class);
-        return FacetUtil.addFacet(create(annotation, holder));
-    }
-
+
+    @Override
+    public boolean process(Class<?> cls, final Method method, final MethodRemover methodRemover, final FacetHolder holder) {
+        final Class<?> returnType = method.getReturnType();
+        if (returnType.isPrimitive()) {
+            return false;
+        }
+        if (!isAnnotationPresent(method, Optional.class)) {
+            return false;
+        }
+        final Optional annotation = getAnnotation(method, Optional.class);
+        return FacetUtil.addFacet(create(annotation, holder));
+    }
+
+
     @Override
     public boolean processParams(final Method method, final int paramNum, final FacetHolder holder) {
         final Class<?>[] parameterTypes = method.getParameterTypes();

Modified: incubator/isis/trunk/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapterfactory/pojo/PojoAdapter.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapterfactory/pojo/PojoAdapter.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapterfactory/pojo/PojoAdapter.java (original)
+++ incubator/isis/trunk/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapterfactory/pojo/PojoAdapter.java Tue Dec 14 22:42:03 2010
@@ -23,7 +23,6 @@ package org.apache.isis.core.runtime.per
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.notNullValue;
 
-import org.apache.log4j.Logger;
 import org.apache.isis.core.commons.ensure.Assert;
 import org.apache.isis.core.commons.ensure.Ensure;
 import org.apache.isis.core.commons.exceptions.IsisException;
@@ -43,6 +42,8 @@ import org.apache.isis.core.metamodel.sp
 import org.apache.isis.core.runtime.context.IsisContext;
 import org.apache.isis.core.runtime.persistence.ConcurrencyException;
 import org.apache.isis.core.runtime.persistence.PersistenceSession;
+import org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManager;
+import org.apache.log4j.Logger;
 
 
 
@@ -124,6 +125,7 @@ public class PojoAdapter extends Instanc
     // Object, replacePojo
     /////////////////////////////////////////////////////////////////////
 
+    @Override
     public Object getObject() {
         return pojo;
     }
@@ -133,6 +135,7 @@ public class PojoAdapter extends Instanc
      * component such as an object store). This method allows the adapter to be kept while the domain object
      * is replaced.
      */
+    @Override
     public void replacePojo(final Object pojo) {
         this.pojo = pojo;
     }
@@ -143,11 +146,13 @@ public class PojoAdapter extends Instanc
     // ResolveState, changeState
     /////////////////////////////////////////////////////////////////////
 
+    @Override
     public ResolveState getResolveState() {
         return resolveState;
     }
 
 
+    @Override
     public void changeState(final ResolveState newState) {
         
         boolean validToChangeTo = resolveState.isValidToChangeTo(newState);
@@ -183,7 +188,8 @@ public class PojoAdapter extends Instanc
      * @see ResolveState#isPersistent()
      * @see #isTransient()
      */
-	public boolean isPersistent() {
+	@Override
+    public boolean isPersistent() {
 		return getResolveState().isPersistent();
 	}
 
@@ -193,7 +199,8 @@ public class PojoAdapter extends Instanc
      * @see ResolveState#isTransient()
      * @see #isPersistent()
      */
-	public boolean isTransient() {
+	@Override
+    public boolean isTransient() {
 		return getResolveState().isTransient();
 	}
 
@@ -203,6 +210,7 @@ public class PojoAdapter extends Instanc
     // Oid
     /////////////////////////////////////////////////////////////////////
 
+    @Override
     public Oid getOid() {
         return oid;
     }
@@ -212,6 +220,7 @@ public class PojoAdapter extends Instanc
         this.oid = oid;
     }
 
+    @Override
     public boolean isAggregated() {
         return getOid() instanceof AggregatedOid;
     }
@@ -221,10 +230,12 @@ public class PojoAdapter extends Instanc
     // Version
     /////////////////////////////////////////////////////////////////////
 
+    @Override
     public Version getVersion() {
         return version;
     }
 
+    @Override
     public void checkLock(final Version version) {
         if (this.version != null && this.version.different(version)) {
             LOG.info("concurrency conflict on " + this + " (" + version + ")");
@@ -232,6 +243,7 @@ public class PojoAdapter extends Instanc
         }
     }
 
+    @Override
     public void setOptimisticLock(final Version version) {
         if (shouldSetVersion(version)) {
             this.version = version;
@@ -256,6 +268,7 @@ public class PojoAdapter extends Instanc
      * as the title then this method will return a title relating to the name of the object type, 
      * e.g. "A Customer", "A Product".
      */
+    @Override
     public String titleString() {
         if (getSpecification().isCollection()) {
             final CollectionFacet facet = getSpecification().getFacet(CollectionFacet.class);
@@ -359,6 +372,7 @@ public class PojoAdapter extends Instanc
     /**
      * Returns the name of the icon to use to represent this object.
      */
+    @Override
     public String getIconName() {
         return getSpecification().getIconName(this);
     }
@@ -368,6 +382,7 @@ public class PojoAdapter extends Instanc
     // TypeOfFacet
     /////////////////////////////////////////////////////////////////////
 
+    @Override
     public TypeOfFacet getTypeOfFacet() {
         if (typeOfFacet == null) {
             return getSpecification().getFacet(TypeOfFacet.class);
@@ -375,6 +390,7 @@ public class PojoAdapter extends Instanc
         return typeOfFacet;
     }
 
+    @Override
     public void setTypeOfFacet(final TypeOfFacet typeOfFacet) {
         this.typeOfFacet = typeOfFacet;
     }
@@ -388,6 +404,7 @@ public class PojoAdapter extends Instanc
     /**
      * Not supported by this implementation.
      */
+    @Override
     public Instance getInstance(Specification specification) {
         throw new UnsupportedOperationException();
     }
@@ -405,6 +422,7 @@ public class PojoAdapter extends Instanc
      * This implementation does nothing, but subclasses (for example <tt>PojoAdapterX</tt>)
      * might provide listeners. 
      */
+    @Override
     public void fireChangedEvent() {
     }
 
@@ -421,6 +439,27 @@ public class PojoAdapter extends Instanc
         return IsisContext.getPersistenceSession();
     }
 
+    @Override
+    public ObjectAdapter getAggregateRoot() {
+        if (getSpecification().isAggregated()) {
+            Oid parentOid = ((AggregatedOid) this.getOid()).getParentOid();
+            return getAdapterManager().getAdapterFor(parentOid);
+        } else {
+            return this;
+        }
+    }
+
+    //////////////////////////////////////////////////////////////////
+    // Dependencies (from context)
+    //////////////////////////////////////////////////////////////////
+    
+    protected AdapterManager getAdapterManager() {
+        return getPersistenceSession().getAdapterManager();
+    }
+
+    protected PersistenceSession getPersistenceSession() {
+        return IsisContext.getPersistenceSession();
+    }
 
 
 }

Modified: incubator/isis/trunk/core/runtime/src/test/java/org/apache/isis/core/runtime/testsystem/TestProxyAdapter.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/runtime/src/test/java/org/apache/isis/core/runtime/testsystem/TestProxyAdapter.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/runtime/src/test/java/org/apache/isis/core/runtime/testsystem/TestProxyAdapter.java (original)
+++ incubator/isis/trunk/core/runtime/src/test/java/org/apache/isis/core/runtime/testsystem/TestProxyAdapter.java Tue Dec 14 22:42:03 2010
@@ -37,6 +37,7 @@ import org.apache.isis.core.metamodel.sp
 import org.apache.isis.core.runtime.persistence.ConcurrencyException;
 
 public class TestProxyAdapter implements ObjectAdapter {
+    
     private final Hashtable fieldContents = new Hashtable();
     private Object object;
     private Oid oid;
@@ -195,4 +196,9 @@ public class TestProxyAdapter implements
         return false;
     }
 
+    @Override
+    public ObjectAdapter getAggregateRoot() {
+        return this;
+    }
+
 }

Modified: incubator/isis/trunk/core/runtime/src/test/java/org/apache/isis/core/runtime/testsystem/TestProxyCollectionAdapter.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/runtime/src/test/java/org/apache/isis/core/runtime/testsystem/TestProxyCollectionAdapter.java?rev=1049313&r1=1049312&r2=1049313&view=diff
==============================================================================
--- incubator/isis/trunk/core/runtime/src/test/java/org/apache/isis/core/runtime/testsystem/TestProxyCollectionAdapter.java (original)
+++ incubator/isis/trunk/core/runtime/src/test/java/org/apache/isis/core/runtime/testsystem/TestProxyCollectionAdapter.java Tue Dec 14 22:42:03 2010
@@ -35,6 +35,7 @@ import org.apache.isis.core.metamodel.ad
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.ObjectList;
 import org.apache.isis.core.metamodel.adapter.ResolveState;
+import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.version.Version;
 import org.apache.isis.core.metamodel.facets.Facet;
@@ -43,6 +44,9 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.Specification;
+import org.apache.isis.core.runtime.context.IsisContext;
+import org.apache.isis.core.runtime.persistence.PersistenceSession;
+import org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManager;
 import org.apache.isis.core.runtime.persistence.adaptermanager.ObjectToAdapterTransformer;
 
 
@@ -76,6 +80,7 @@ public class TestProxyCollectionAdapter 
         }
     }
 
+    @Override
     public void checkLock(final Version version) {}
 
     boolean contains(final ObjectAdapter object) {
@@ -98,34 +103,42 @@ public class TestProxyCollectionAdapter 
         return null;
     }
 
+    @Override
     public String getIconName() {
         return null;
     }
 
+    @Override
     public Object getObject() {
         return collection;
     }
 
+    @Override
     public Oid getOid() {
         return oid;
     }
 
+    @Override
     public ResolveState getResolveState() {
         return resolveState;
     }
 
-	public boolean isPersistent() {
+	@Override
+    public boolean isPersistent() {
 		return getResolveState().isPersistent();
 	}
 
-	public boolean isTransient() {
+	@Override
+    public boolean isTransient() {
 		return getResolveState().isTransient();
 	}
 
+    @Override
     public ObjectSpecification getSpecification() {
         return specification;
     }
 
+    @Override
     public Version getVersion() {
         return version;
     }
@@ -137,10 +150,12 @@ public class TestProxyCollectionAdapter 
         }
     }
 
+    @Override
     public void replacePojo(final Object pojo) {
         throw new NotYetImplementedException();
     }
 
+    @Override
     public void setOptimisticLock(final Version version) {}
 
     public void setupResolveState(final ResolveState resolveState) {
@@ -163,6 +178,7 @@ public class TestProxyCollectionAdapter 
         return collection.size();
     }
 
+    @Override
     public String titleString() {
         return "title";
     }
@@ -171,6 +187,7 @@ public class TestProxyCollectionAdapter 
         this.version = version;
     }
 
+    @Override
     public void changeState(final ResolveState newState) {}
 
     public void add(final ObjectAdapter element) {
@@ -201,26 +218,51 @@ public class TestProxyCollectionAdapter 
         this.removeValidMessage = removeValidMessage;
     }
 
+    @Override
     public void fireChangedEvent() {}
 
+    @Override
     public void setTypeOfFacet(final TypeOfFacet typeOfFacet) {}
 
+    @Override
     public TypeOfFacet getTypeOfFacet() {
         return null;
     }
 
+    @Override
     public ObjectAdapter getOwner() {
         return null;
     }
 
+    @Override
     public Instance getInstance(Specification specification) {
         return null;
     }
 
+    @Override
     public boolean isAggregated() {
         return true;
     }
 
+    
+    @Override
+    public ObjectAdapter getAggregateRoot() {
+        Oid parentOid = ((AggregatedOid) this.getOid()).getParentOid();
+        return getAdapterManager().getAdapterFor(parentOid);
+    }
+
+    //////////////////////////////////////////////////////////////////
+    // Dependencies (from context)
+    //////////////////////////////////////////////////////////////////
+    
+    protected AdapterManager getAdapterManager() {
+        return getPersistenceSession().getAdapterManager();
+    }
+
+    protected PersistenceSession getPersistenceSession() {
+        return IsisContext.getPersistenceSession();
+    }
+
 }
 
 class TestProxyCollectionFacet implements CollectionFacet {
@@ -230,10 +272,12 @@ class TestProxyCollectionFacet implement
         return coll;
     }
 
+    @Override
     public boolean contains(final ObjectAdapter collection, final ObjectAdapter element) {
         return collectionDowncasted(collection).contains(element);
     }
 
+    @Override
     public Enumeration elements(final ObjectAdapter collection) {
         TestProxyCollectionAdapter collectionDowncasted = collectionDowncasted(collection);
         List list = EnumerationUtils.toList(collectionDowncasted.elements());
@@ -241,59 +285,75 @@ class TestProxyCollectionFacet implement
         return new IteratorEnumeration(transformedCollection.iterator());
     }
 
+    @Override
     public ObjectAdapter firstElement(final ObjectAdapter collection) {
         return collectionDowncasted(collection).firstElement();
     }
 
+    @Override
     public void init(final ObjectAdapter collection, final ObjectAdapter[] initData) {}
 
+    @Override
     public int size(final ObjectAdapter collection) {
         return collectionDowncasted(collection).size();
     }
 
+    @Override
     public Class<? extends Facet> facetType() {
         return CollectionFacet.class;
     }
 
+    @Override
     public void setFacetHolder(final FacetHolder facetHolder) {}
 
+    @Override
     public boolean alwaysReplace() {
         return false;
     }
     
+    @Override
     public boolean isDerived() {
     	return false;
     }
 
+    @Override
     public boolean isNoop() {
         return false;
     }
 
+    @Override
     public FacetHolder getFacetHolder() {
         throw new NotYetImplementedException();
     }
 
+    @Override
     public TypeOfFacet getTypeOfFacet() {
         throw new NotYetImplementedException();
     }
 
+    @Override
     public Iterator<ObjectAdapter> iterator(ObjectAdapter wrappedCollection) {
         throw new NotYetImplementedException();
     }
 
+    @Override
     public Collection<ObjectAdapter> collection(ObjectAdapter wrappedCollection) {
         throw new NotYetImplementedException();
     }
 
+    @Override
     public Iterable<ObjectAdapter> iterable(ObjectAdapter collectionAdapter) {
         throw new NotYetImplementedException();
     }
 
-	public Facet getUnderlyingFacet() {
+	@Override
+    public Facet getUnderlyingFacet() {
 		return null;
 	}
-	public void setUnderlyingFacet(Facet underlyingFacet) {
+	@Override
+    public void setUnderlyingFacet(Facet underlyingFacet) {
 		throw new UnsupportedOperationException();
 	}
 
+
 }

Added: incubator/isis/trunk/src/docbkx/guide/images/soyatec-install-1.png
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/src/docbkx/guide/images/soyatec-install-1.png?rev=1049313&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/isis/trunk/src/docbkx/guide/images/soyatec-install-1.png
------------------------------------------------------------------------------
    needs-lock = 

Propchange: incubator/isis/trunk/src/docbkx/guide/images/soyatec-install-1.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: incubator/isis/trunk/src/docbkx/guide/images/soyatec-install-2.png
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/src/docbkx/guide/images/soyatec-install-2.png?rev=1049313&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/isis/trunk/src/docbkx/guide/images/soyatec-install-2.png
------------------------------------------------------------------------------
    needs-lock = 

Propchange: incubator/isis/trunk/src/docbkx/guide/images/soyatec-install-2.png
------------------------------------------------------------------------------
    svn:mime-type = image/png



Mime
View raw message