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 2012/04/28 09:47:31 UTC

svn commit: r1331698 [3/3] - in /incubator/isis/branches/0.3.0-incubating-NEW-OIDs: core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/ core/metamodel/src/main/ja...

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/PolymorphismTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/PolymorphismTest.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/PolymorphismTest.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/PolymorphismTest.java Sat Apr 28 07:47:28 2012
@@ -18,15 +18,22 @@
  */
 package org.apache.isis.runtimes.dflt.objectstores.sql;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import java.util.List;
 import java.util.Properties;
 
+import org.junit.Test;
+
 import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestCommonBase;
-import org.apache.isis.runtimes.dflt.objectstores.sql.singleton.SqlIntegrationTestSingleton;
-import org.apache.isis.tck.dom.sqlos.SqlDomainObjectRepository;
+import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestFixtures.State;
 import org.apache.isis.tck.dom.sqlos.poly.EmptyInterface;
+import org.apache.isis.tck.dom.sqlos.poly.EmptyInterfaceEx;
 import org.apache.isis.tck.dom.sqlos.poly.PolyBaseClass;
 import org.apache.isis.tck.dom.sqlos.poly.PolyInterface;
+import org.apache.isis.tck.dom.sqlos.poly.PolyInterfaceEx;
 import org.apache.isis.tck.dom.sqlos.poly.PolyInterfaceImplA;
 import org.apache.isis.tck.dom.sqlos.poly.PolyInterfaceImplB;
 import org.apache.isis.tck.dom.sqlos.poly.PolySelfRefClass;
@@ -39,44 +46,9 @@ public class PolymorphismTest extends Sq
 
     private static final String IMPL_B_STRING = "Impl B String";
 
-    public class PolyInterfaceEx implements PolyInterface {
-        // {{ String
-        private String string;
-
-        @Override
-        public String getString() {
-            return string;
-        }
-
-        public void setString(final String string) {
-            this.string = string;
-        }
-
-        // }}
-
-        public String getSpecial() {
-            return "special";
-        }
-
-    };
-
-    public class EmptyInterfaceEx implements EmptyInterface {
-        // {{ Special
-        private String special;
-
-        public String getSpecial() {
-            return special;
-        }
-
-        public void setSpecial(final String special) {
-            this.special = special;
-        }
-
-        // }}
-    }
-
     private static final String IMPL_A_STRING = "Impl A String";
     private static final String CHILD_1 = "Child 1";
+    
     private static PolyInterfaceImplA polyIntImpA;
     private static PolyInterfaceImplB polyIntImpB;
 
@@ -100,39 +72,40 @@ public class PolymorphismTest extends Sq
 
     @Override
     public String getPropertiesFilename() {
-        return "hsql-polytest.properties";
+        return "hsql.properties";
     }
 
     @Override
     public String getSqlTeardownString() {
         return "SHUTDOWN;";
     }
-
     // }}
 
+    
+    @Test
     public void testSetup() {
-        initialiseTests();
-        getSingletonInstance().setState(0);
+        resetPersistenceStoreDirectlyIfRequired();
+        setFixtureInitializationState(State.INITIALIZE);
         // SqlIntegrationTestSingleton.drop("%");
     }
 
+    @Test
     public void testCreate() throws Exception {
-        SqlIntegrationTestSingleton.drop("ISIS_POLYTESTCLASS");
-        SqlIntegrationTestSingleton.drop("ISIS_POLYBASECLASS");
-        SqlIntegrationTestSingleton.drop("ISIS_POLYINTERFACE");
-        SqlIntegrationTestSingleton.drop("ISIS_POLYSUBCLASS");
-        SqlIntegrationTestSingleton.drop("ISIS_POLYSUBCLASSONE");
-        SqlIntegrationTestSingleton.drop("ISIS_POLYSUBCLASSTWO");
-        SqlIntegrationTestSingleton.drop("ISIS_POLYSUBCLASSTHREE");
-        SqlIntegrationTestSingleton.drop("ISIS_POLYINTERFACEIMPLA");
-        SqlIntegrationTestSingleton.drop("ISIS_POLYINTERFACEIMPLB");
-        SqlIntegrationTestSingleton.drop("ISIS_POLYSELFREFCLASS");
+        getSqlIntegrationTestFixtures().dropTable("ISIS_POLYTESTCLASS");
+        getSqlIntegrationTestFixtures().dropTable("ISIS_POLYBASECLASS");
+        getSqlIntegrationTestFixtures().dropTable("ISIS_POLYINTERFACE");
+        getSqlIntegrationTestFixtures().dropTable("ISIS_POLYSUBCLASS");
+        getSqlIntegrationTestFixtures().dropTable("ISIS_POLYSUBCLASSONE");
+        getSqlIntegrationTestFixtures().dropTable("ISIS_POLYSUBCLASSTWO");
+        getSqlIntegrationTestFixtures().dropTable("ISIS_POLYSUBCLASSTHREE");
+        getSqlIntegrationTestFixtures().dropTable("ISIS_POLYINTERFACEIMPLA");
+        getSqlIntegrationTestFixtures().dropTable("ISIS_POLYINTERFACEIMPLB");
+        getSqlIntegrationTestFixtures().dropTable("ISIS_POLYSELFREFCLASS");
 
-        final SqlDomainObjectRepository factory = SqlIntegrationTestSingleton.getSqlDataClassFactory();
         final PolyTestClass polyTestClass = factory.newPolyTestClass();
         polyTestClass.setString("polyTestClassString");
 
-        // {{ Setup self-referencing collection
+        // Setup self-referencing collection
         final PolySelfRefClass polySelfRefClassParent = factory.newPolySelfRefClass();
         polySelfRefClassParent.setString("Parent");
 
@@ -154,7 +127,6 @@ public class PolymorphismTest extends Sq
 
         factory.save(polySelfRefClassParent);
         polyTestClass.setPolySelfRefClass(polySelfRefClassParent);
-        // }}
 
         // polyTestClass.setPolyTestInterface(polyTestClass);
 
@@ -191,28 +163,22 @@ public class PolymorphismTest extends Sq
         // store it and step the state engine
         factory.save(polyTestClass);
 
-        // For in-memory only!
-        if (getProperties().getProperty("isis.persistor") == "in-memory") {
-            getSingletonInstance().setState(1);
-        }
-
+        setFixtureInitializationState(State.DONT_INITIALIZE, "in-memory");
     }
 
-    // testLoad() Must be the first test defined and run
+    @Test
     public void testLoad() {
-        final SqlDomainObjectRepository factory = SqlIntegrationTestSingleton.getSqlDataClassFactory();
         final List<PolyTestClass> dataClasses = factory.allPolyTestClasses();
         assertEquals(1, dataClasses.size());
         final PolyTestClass polyTestClass = dataClasses.get(0);
-        SqlIntegrationTestSingleton.setStaticPolyTestClass(polyTestClass);
+        
+        getSqlIntegrationTestFixtures().setPolyTestClass(polyTestClass);
 
-        // Must set state to 1 to prevent re-initialisation
-        getSingletonInstance().setState(1);
+        setFixtureInitializationState(State.DONT_INITIALIZE);
     }
 
+    @Test
     public void testPolymorphicLoad() {
-        final PolyTestClass polyTestClass = SqlIntegrationTestSingleton.getStaticPolyTestClass();
-
         final List<PolyBaseClass> polyBaseClasses = polyTestClass.getPolyBaseClasses();
         assertEquals(3, polyBaseClasses.size());
 
@@ -234,18 +200,15 @@ public class PolymorphismTest extends Sq
         assertEquals("Another String", polySubClassThree.getStringClassThree());
     }
 
+    @Test
     public void testInterfaceLoad() {
-        final SqlDomainObjectRepository factory = SqlIntegrationTestSingleton.getSqlDataClassFactory();
-        final PolyTestClass polyTestClass = SqlIntegrationTestSingleton.getStaticPolyTestClass();
-
         final PolyInterface loaded = polyTestClass.getPolyInterfaceType();
         factory.resolve(loaded);
         assertEquals(polyIntImpA.getString(), loaded.getString());
     }
 
+    @Test
     public void testLoadSelfReferencingCollection() {
-        final PolyTestClass polyTestClass = SqlIntegrationTestSingleton.getStaticPolyTestClass();
-
         final PolySelfRefClass polySelfRefParent = polyTestClass.getPolySelfRefClass();
         final List<PolySelfRefClass> list = polySelfRefParent.getPolySelfRefClasses();
         assertEquals(2, list.size());
@@ -260,21 +223,20 @@ public class PolymorphismTest extends Sq
 
         assertEquals(CHILD_1, polySelfRefChild1.title());
 
-        final SqlDomainObjectRepository factory = SqlIntegrationTestSingleton.getSqlDataClassFactory();
         List<PolySelfRefClass> list2 = polySelfRefChild1.getPolySelfRefClasses();
         factory.resolve(polySelfRefChild1);
         list2 = polySelfRefChild1.getPolySelfRefClasses();
         assertEquals(1, list2.size());
     }
 
+    @Test
     public void testInterfaceLoadProperty() {
-        final PolyTestClass polyTestClass = SqlIntegrationTestSingleton.getStaticPolyTestClass();
         final PolyInterface loaded = polyTestClass.getPolyInterfaceType();
         assertEquals(polyIntImpA.getString(), loaded.getString());
     }
 
+    @Test
     public void testInterfaceLoadCollection() {
-        final PolyTestClass polyTestClass = SqlIntegrationTestSingleton.getStaticPolyTestClass();
         final List<PolyInterface> list = polyTestClass.getPolyInterfaces();
 
         assertEquals(1, list.size());
@@ -283,8 +245,8 @@ public class PolymorphismTest extends Sq
         assertEquals(polyIntImpA.getString(), loaded.getString());
     }
 
+    @Test
     public void testInterfaceEditSave() {
-        final SqlDomainObjectRepository factory = SqlIntegrationTestSingleton.getSqlDataClassFactory();
         polyIntImpB = factory.newPolyInterfaceImplB();
         polyIntImpB.setString(IMPL_B_STRING);
         polyIntImpB.setSpecial("special");
@@ -292,28 +254,27 @@ public class PolymorphismTest extends Sq
 
         factory.save(polyIntImpB);
 
-        final PolyTestClass polyTestClass = SqlIntegrationTestSingleton.getStaticPolyTestClass();
         polyTestClass.setPolyInterfaceType(polyIntImpB);
 
-        getSingletonInstance().setState(0); // ready for testInterfaceEditSave
+        setFixtureInitializationState(State.INITIALIZE);
     }
 
+    @Test
     public void testInterfaceEditLoad() {
         testLoad(); // reload data
 
-        final PolyTestClass polyTestClass = SqlIntegrationTestSingleton.getStaticPolyTestClass();
         final PolyInterface loaded = polyTestClass.getPolyInterfaceType();
         assertEquals(polyIntImpB.getString(), loaded.getString());
     }
 
+    @Test
     public void testAllInterfacesInstancesLoaded() {
-        final SqlDomainObjectRepository factory = SqlIntegrationTestSingleton.getSqlDataClassFactory();
         final List<PolyInterface> list = factory.allPolyInterfaces();
         assertEquals(2, list.size());
     }
 
+    @Test
     public void testInterfacesLoadedByQuery() {
-        final SqlDomainObjectRepository factory = SqlIntegrationTestSingleton.getSqlDataClassFactory();
         // PolyInterface query = polyIntImpA;
 
         final PolyInterfaceEx query = new PolyInterfaceEx();
@@ -324,7 +285,6 @@ public class PolymorphismTest extends Sq
     }
 
     public void testInterfacesLoadedByQuerySpecial() {
-        final SqlDomainObjectRepository factory = SqlIntegrationTestSingleton.getSqlDataClassFactory();
 
         final PolyInterfaceEx query = new PolyInterfaceEx();
 
@@ -333,7 +293,6 @@ public class PolymorphismTest extends Sq
     }
 
     public void testFindByMatchPartialEntity() {
-        final SqlDomainObjectRepository factory = SqlIntegrationTestSingleton.getSqlDataClassFactory();
         final EmptyInterface match = new EmptyInterfaceEx();
         final List<EmptyInterface> matches = factory.allEmptyInterfacesThatMatch(match);
         assertEquals(1, matches.size());
@@ -344,16 +303,15 @@ public class PolymorphismTest extends Sq
     }
 
     public void testCannotFindByMatchWithWrongValue() {
-        final SqlDomainObjectRepository factory = SqlIntegrationTestSingleton.getSqlDataClassFactory();
         final PolyInterfaceImplB match = new PolyInterfaceImplB();
         match.setInteger(0);
         final List<EmptyInterface> matches = factory.allEmptyInterfacesThatMatch(match);
         assertEquals(0, matches.size());
     }
 
-    // Last "test" - Set the Singleton state to 0 to invoke a clean shutdown.
-    public void testZSetStateZero() {
-        getSingletonInstance().setState(0);
+    @Test
+    public void reinitializeFixtures() {
+        setFixtureInitializationState(State.INITIALIZE);
     }
 
 }

Copied: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/InMemoryPersistenceTest.java (from r1307476, incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/InMemoryPersistanceTest.java)
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/InMemoryPersistenceTest.java?p2=incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/InMemoryPersistenceTest.java&p1=incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/InMemoryPersistanceTest.java&r1=1307476&r2=1331698&rev=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/InMemoryPersistanceTest.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/InMemoryPersistenceTest.java Sat Apr 28 07:47:28 2012
@@ -24,9 +24,9 @@ package org.apache.isis.runtimes.dflt.ob
 
 import java.util.Properties;
 
-import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestCommon;
+import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestData;
 
-public class InMemoryPersistanceTest extends SqlIntegrationTestCommon {
+public class InMemoryPersistenceTest extends SqlIntegrationTestData {
 
     @Override
     public Properties getProperties() {

Copied: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/XmlPersistenceTest.java (from r1307476, incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/XmlPersistanceTest.java)
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/XmlPersistenceTest.java?p2=incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/XmlPersistenceTest.java&p1=incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/XmlPersistanceTest.java&r1=1307476&r2=1331698&rev=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/XmlPersistanceTest.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-common/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/crosscheck/XmlPersistenceTest.java Sat Apr 28 07:47:28 2012
@@ -26,9 +26,9 @@ import java.io.File;
 import java.io.FilenameFilter;
 import java.util.Properties;
 
-import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestCommon;
+import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestData;
 
-public class XmlPersistanceTest extends SqlIntegrationTestCommon {
+public class XmlPersistenceTest extends SqlIntegrationTestData {
 
     public static void deleteFiles(final String directory, final FilenameFilter extension) {
         final File dir = new File(directory);
@@ -46,7 +46,7 @@ public class XmlPersistanceTest extends 
     }
 
     @Override
-    public void initialiseTests() {
+    public void resetPersistenceStoreDirectlyIfRequired() {
         // Delete all XML files.
         deleteFiles("xml/objects", new FilenameFilter() {
 

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-served/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/MySqlTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-served/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/MySqlTest.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-served/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/MySqlTest.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-served/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/MySqlTest.java Sat Apr 28 07:47:28 2012
@@ -24,9 +24,9 @@ package org.apache.isis.runtimes.dflt.ob
 
 import java.util.Properties;
 
-import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestCommon;
+import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestData;
 
-public class MySqlTest extends SqlIntegrationTestCommon {
+public class MySqlTest extends SqlIntegrationTestData {
 
     /**/
     @Override

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-served/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/PostgreSqlTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-served/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/PostgreSqlTest.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-served/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/PostgreSqlTest.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/sql/sql-tests-served/src/test/java/org/apache/isis/runtimes/dflt/objectstores/sql/PostgreSqlTest.java Sat Apr 28 07:47:28 2012
@@ -24,9 +24,9 @@ package org.apache.isis.runtimes.dflt.ob
 
 import java.util.Properties;
 
-import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestCommon;
+import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestData;
 
-public class PostgreSqlTest extends SqlIntegrationTestCommon {
+public class PostgreSqlTest extends SqlIntegrationTestData {
 
     @Override
     public Properties getProperties() {

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/xml/src/test/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectDataTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/xml/src/test/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectDataTest.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/xml/src/test/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectDataTest.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/xml/src/test/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectDataTest.java Sat Apr 28 07:47:28 2012
@@ -24,7 +24,7 @@ import java.util.Iterator;
 import junit.framework.TestCase;
 
 import org.apache.isis.core.metamodel.adapter.oid.RootOidDefault;
-import org.apache.isis.core.metamodel.testspec.TestProxySpecification;
+import org.apache.isis.core.metamodel.testspec.ObjectSpecificationStub;
 import org.apache.isis.runtimes.dflt.objectstores.xml.internal.clock.DefaultClock;
 import org.apache.isis.runtimes.dflt.objectstores.xml.internal.version.FileVersion;
 
@@ -35,7 +35,7 @@ public class ObjectDataTest extends Test
     public void testValueField() {
         FileVersion.setClock(new DefaultClock());
 
-        final TestProxySpecification type = new TestProxySpecification("test");
+        final ObjectSpecificationStub type = new ObjectSpecificationStub("test");
         final ObjectData objectData = new ObjectData(RootOidDefault.create(objectType, ""+13), new FileVersion(""));
 
         assertEquals(null, objectData.get("name"));

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/xml/src/test/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectDataVectorTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/xml/src/test/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectDataVectorTest.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/xml/src/test/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectDataVectorTest.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/objectstores/xml/src/test/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectDataVectorTest.java Sat Apr 28 07:47:28 2012
@@ -27,7 +27,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.isis.core.metamodel.adapter.oid.RootOidDefault;
-import org.apache.isis.core.metamodel.testspec.TestProxySpecification;
+import org.apache.isis.core.metamodel.testspec.ObjectSpecificationStub;
 import org.apache.isis.runtimes.dflt.objectstores.xml.internal.version.FileVersion;
 
 public class ObjectDataVectorTest {
@@ -36,7 +36,7 @@ public class ObjectDataVectorTest {
     
     private ObjectDataVector objectDataVector;
     private ObjectData objectData;
-    private TestProxySpecification spec;
+    private ObjectSpecificationStub spec;
     private RootOidDefault oid;
     private FileVersion version;
 
@@ -45,7 +45,7 @@ public class ObjectDataVectorTest {
         final boolean isTransient = true;
         oid = isTransient ? RootOidDefault.createTransient(objectType, ""+1) : RootOidDefault.create(objectType, ""+1);
 
-        spec = new TestProxySpecification(this.getClass());
+        spec = new ObjectSpecificationStub(this.getClass());
         spec.fields = Collections.emptyList();
 
         version = new FileVersion("", System.currentTimeMillis());

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/memento/Memento.java Sat Apr 28 07:47:28 2012
@@ -87,7 +87,7 @@ public class Memento implements Serializ
     ////////////////////////////////////////////////
 
     private Data createData(final ObjectAdapter object) {
-        if (object.getSpecification().isCollection()) {
+        if (object.getSpecification().isParentedOrFreeCollection()) {
             return createCollectionData(object);
         } else {
             return createObjectData(object);
@@ -153,7 +153,7 @@ public class Memento implements Serializ
             return createStandaloneData(ref);
         }
 
-        if ((ref.getSpecification().isAggregated() || refOid.isTransient()) && !transientObjects.contains(refOid)) {
+        if ((ref.getSpecification().isParented() || refOid.isTransient()) && !transientObjects.contains(refOid)) {
             transientObjects.add(refOid);
             return createObjectData(ref);
         }
@@ -200,7 +200,7 @@ public class Memento implements Serializ
             targetState = ResolveState.UPDATING;
         }
         
-        if (adapter.getSpecification().isCollection()) {
+        if (adapter.getSpecification().isParentedOrFreeCollection()) {
             populateCollection(adapter, (CollectionData) state, targetState);
         } else {
             updateObject(adapter, state, targetState);
@@ -235,8 +235,8 @@ public class Memento implements Serializ
             ObjectAdapter ref;
             ref = getHydrator().recreateAdapter(oid, spec);
             if (data instanceof ObjectData) {
-                if (oid.isTransient() || spec.isAggregated()) {
-                    final ResolveState resolveState = spec.isAggregated() ? ResolveState.GHOST : ResolveState.TRANSIENT;
+                if (oid.isTransient() || spec.isParented()) {
+                    final ResolveState resolveState = spec.isParented() ? ResolveState.GHOST : ResolveState.TRANSIENT;
                     if (ref.getResolveState().isValidToChangeTo(resolveState)) {
                         ref.changeState(resolveState);
                     }

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistenceSessionAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistenceSessionAbstract.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistenceSessionAbstract.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/PersistenceSessionAbstract.java Sat Apr 28 07:47:28 2012
@@ -49,7 +49,7 @@ import org.apache.isis.core.metamodel.se
 import org.apache.isis.core.metamodel.services.container.query.QueryFindByPattern;
 import org.apache.isis.core.metamodel.services.container.query.QueryFindByTitle;
 import org.apache.isis.core.metamodel.spec.Dirtiable;
-import org.apache.isis.core.metamodel.spec.ObjectList;
+import org.apache.isis.core.metamodel.spec.FreeStandingList;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
 import org.apache.isis.runtimes.dflt.runtime.persistence.adaptermanager.AdapterManagerExtended;
@@ -404,7 +404,7 @@ public abstract class PersistenceSession
     public ObjectAdapter findInstances(final PersistenceQuery persistenceQuery) {
         final ObjectAdapter[] instances = getInstances(persistenceQuery);
         final ObjectSpecification specification = persistenceQuery.getSpecification();
-        final ObjectList results = new ObjectList(specification, instances);
+        final FreeStandingList results = new FreeStandingList(specification, instances);
         return getAdapterManager().adapterFor(results);
     }
 

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapter.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapter.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapter.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapter.java Sat Apr 28 07:47:28 2012
@@ -128,7 +128,7 @@ public class PojoAdapter extends Instanc
     @Override
     public ResolveState getResolveState() {
         return isAggregated() ? 
-                getParentAdapter().getResolveState() : 
+                getAggregateRoot().getResolveState() : 
                 resolveState;
     }
 
@@ -224,23 +224,16 @@ public class PojoAdapter extends Instanc
     }
 
     @Override
-    public ObjectAdapter getAggregateRoot(ObjectAdapterLookup objectAdapterLookup) {
-        if (!getSpecification().isAggregated()) {
-            return this;
-        } 
-        final AggregatedOid aggregatedOid = (AggregatedOid) this.getOid();
-        final Oid parentOid = aggregatedOid.getParentOid();
-        return objectAdapterLookup.getAdapterFor(parentOid);
-    }
-    
-    private ObjectAdapter getParentAdapter() {
+    public ObjectAdapter getAggregateRoot() {
         if(!isParented()) {
-            throw new IllegalStateException("This adapter is not parented (it's OID is not of type ParentedOid); oid:" + oid);
+            //throw new IllegalStateException("This adapter is not parented (it's OID is not of type ParentedOid); oid:" + oid);
+            return this;
         }
         ParentedOid parentedOid = (ParentedOid) oid;
         final Oid parentOid = parentedOid.getParentOid();
         return objectAdapterLookup.getAdapterFor(parentOid);
     }
+    
 
     
 
@@ -252,8 +245,7 @@ public class PojoAdapter extends Instanc
     @Override
     public Version getVersion() {
         if(isParented()) {
-            final ObjectAdapter parentAdapter = getParentAdapter();
-            return parentAdapter.getVersion();
+            return getAggregateRoot().getVersion();
         } else {
             return version;
         }
@@ -263,12 +255,12 @@ public class PojoAdapter extends Instanc
     @Override
     public void checkLock(final Version version) {
         if(isParented()) {
-            getParentAdapter().checkLock(version);
-        } else {
-            if (this.version != null && this.version.different(version)) {
-                LOG.info("concurrency conflict on " + this + " (" + version + ")");
-                throw new ConcurrencyException(this, version);
-            }
+            getAggregateRoot().checkLock(version);
+            return;
+        }
+        if (this.version != null && this.version.different(version)) {
+            LOG.info("concurrency conflict on " + this + " (" + version + ")");
+            throw new ConcurrencyException(this, version);
         }
     }
 
@@ -303,7 +295,7 @@ public class PojoAdapter extends Instanc
      */
     @Override
     public String titleString() {
-        if (getSpecification().isCollection()) {
+        if (getSpecification().isParentedOrFreeCollection()) {
             final CollectionFacet facet = getSpecification().getFacet(CollectionFacet.class);
             return collectionTitleString(facet);
         } else {

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/AdapterManagerDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/AdapterManagerDefault.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/AdapterManagerDefault.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/adaptermanager/AdapterManagerDefault.java Sat Apr 28 07:47:28 2012
@@ -46,7 +46,7 @@ import org.apache.isis.core.metamodel.ad
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.adapter.version.Version;
 import org.apache.isis.core.metamodel.facets.accessor.PropertyOrCollectionAccessorFacet;
-import org.apache.isis.core.metamodel.facets.object.aggregated.AggregatedFacet;
+import org.apache.isis.core.metamodel.facets.object.aggregated.ParentedFacet;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.facets.typeof.ElementSpecificationProviderFromTypeOfFacet;
 import org.apache.isis.core.metamodel.facets.typeof.TypeOfFacet;
@@ -287,7 +287,7 @@ public class AdapterManagerDefault exten
     
 
     private static boolean isAggregated(final ObjectSpecification objSpec) {
-        return objSpec.containsFacet(AggregatedFacet.class);
+        return objSpec.containsFacet(ParentedFacet.class);
     }
 
     
@@ -381,7 +381,7 @@ public class AdapterManagerDefault exten
         // ??? REVIEW: don't do this because the Oid has been updated already
         // ensureMapsConsistent(adapter);
         
-        final ObjectAdapter rootAdapter = adapter.getAggregateRoot(this);
+        final ObjectAdapter rootAdapter = adapter.getAggregateRoot();
         final RootOid transientRootOid = (RootOid) rootAdapter.getOid();
 
         Ensure.ensureThatArg(rootAdapter.isTransient(), is(true), "root adapter should be transient; oid:" + transientRootOid);

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/IsisStoreLogger.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/IsisStoreLogger.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/IsisStoreLogger.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/IsisStoreLogger.java Sat Apr 28 07:47:28 2012
@@ -106,7 +106,11 @@ public class IsisStoreLogger extends Log
     @Override
     public RootOid getOidForService(ObjectSpecification serviceSpec) {
         final RootOid serviceOid = decorated.getOidForService(serviceSpec);
-        log("get OID for service: " + serviceOid.enString());
+        if(serviceOid != null) {
+            log("get OID for service: " + serviceOid.enString());
+        } else {
+            log("get OID for service: null (presumably in the process of being registered for '" + serviceSpec.getObjectType() + "')");
+        }
         return serviceOid;
     }
 

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/PersistenceSessionObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/PersistenceSessionObjectStore.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/PersistenceSessionObjectStore.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/PersistenceSessionObjectStore.java Sat Apr 28 07:47:28 2012
@@ -251,7 +251,16 @@ public class PersistenceSessionObjectSto
 
     @Override
     public void resolveField(final ObjectAdapter objectAdapter, final ObjectAssociation field) {
-        if (field.isNotPersisted() || field.isOneToManyAssociation() || field.getSpecification().isCollectionOrIsAggregated()) {
+        if (field.isNotPersisted()) {
+            return;
+        }
+        if (field.isOneToManyAssociation()) {
+            return;
+        }
+        if (field.getSpecification().isParented()) {
+            return;
+        }
+        if (field.getSpecification().isValue()) {
             return;
         }
         final ObjectAdapter referenceAdapter = field.get(objectAdapter);
@@ -347,7 +356,7 @@ public class PersistenceSessionObjectSto
     @Override
     public void objectChanged(final ObjectAdapter adapter) {
 
-        if (adapter.isTransient() || (adapter.isParented() && adapter.getAggregateRoot(getAdapterManager()).isTransient())) {
+        if (adapter.isTransient() || (adapter.isParented() && adapter.getAggregateRoot().isTransient())) {
             addObjectChangedForPresentationLayer(adapter);
             return;
         }
@@ -415,7 +424,7 @@ public class PersistenceSessionObjectSto
      */
     @Override
     public void destroyObject(final ObjectAdapter adapter) {
-        if (adapter.getSpecification().isAggregated()) {
+        if (adapter.getSpecification().isParented()) {
             return;
         }
         if (LOG.isDebugEnabled()) {

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/dflt/DefaultPersistAlgorithm.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/dflt/DefaultPersistAlgorithm.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/dflt/DefaultPersistAlgorithm.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/dflt/DefaultPersistAlgorithm.java Sat Apr 28 07:47:28 2012
@@ -46,7 +46,7 @@ public class DefaultPersistAlgorithm ext
 
     @Override
     public void makePersistent(final ObjectAdapter adapter, final ToPersistObjectSet toPersistObjectSet) {
-        if (adapter.getSpecification().isCollection()) {
+        if (adapter.getSpecification().isParentedOrFreeCollection()) {
             if(LOG.isDebugEnabled()) {
                 LOG.debug("persist " + adapter);
             }

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/topdown/TopDownPersistAlgorithm.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/topdown/TopDownPersistAlgorithm.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/topdown/TopDownPersistAlgorithm.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/topdown/TopDownPersistAlgorithm.java Sat Apr 28 07:47:28 2012
@@ -43,7 +43,7 @@ public class TopDownPersistAlgorithm ext
 
     @Override
     public void makePersistent(final ObjectAdapter object, final ToPersistObjectSet toPersistObjectSet) {
-        if (object.getSpecification().isCollection()) {
+        if (object.getSpecification().isParentedOrFreeCollection()) {
             makeCollectionPersistent(object, toPersistObjectSet);
         } else {
             makeObjectPersistent(object, toPersistObjectSet);

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/twopass/TwoPassPersistAlgorithm.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/twopass/TwoPassPersistAlgorithm.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/twopass/TwoPassPersistAlgorithm.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/twopass/TwoPassPersistAlgorithm.java Sat Apr 28 07:47:28 2012
@@ -47,7 +47,7 @@ public class TwoPassPersistAlgorithm ext
 
     @Override
     public void makePersistent(final ObjectAdapter object, final ToPersistObjectSet toPersistObjectSet) {
-        if (object.getSpecification().isCollection()) {
+        if (object.getSpecification().isParentedOrFreeCollection()) {
             makeCollectionPersistent(object, toPersistObjectSet);
         } else {
             makeObjectPersistent(object, toPersistObjectSet);

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/query/PersistenceQueryFindByPattern.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/query/PersistenceQueryFindByPattern.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/query/PersistenceQueryFindByPattern.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/persistence/query/PersistenceQueryFindByPattern.java Sat Apr 28 07:47:28 2012
@@ -58,55 +58,48 @@ public class PersistenceQueryFindByPatte
 
             // are ignoring internal collections - these probably should be
             // considered
+            
             // ignore non-persistent fields - there is no persisted field to
             // compare against
             if (fld.isNotPersisted()) {
                 continue;
             }
-            if (fld.isOneToOneAssociation()) {
-                if (fld.getSpecification().isCollectionOrIsAggregated()) {
-                    // if pattern contains empty value then it matches anything
-                    if (fld.isEmpty(pattern)) {
-                        continue;
-                    }
-
-                    // find the objects
-                    final ObjectAdapter reqd = fld.get(pattern);
-                    final ObjectAdapter search = fld.get(object);
-
-                    if (search == null) {
-                        return false;
-                    }
-
-                    // compare the titles
-                    final String r = reqd.titleString().toLowerCase();
-                    final String s = search.titleString().toLowerCase();
-
-                    // if the pattern occurs in the object
-                    if (s.indexOf(r) == -1) {
-                        return false;
-                    }
-                } else if (fld.isOneToOneAssociation()) {
-                    // find the objects
-                    final ObjectAdapter reqd = fld.get(pattern);
-
-                    // if pattern contains null reference then it matches
-                    // anything
-                    if (reqd == null) {
-                        continue;
-                    }
-
-                    final ObjectAdapter search = fld.get(object);
-
-                    // otherwise there must be a reference, else they can never
-                    // match
-                    if (search == null) {
-                        return false;
-                    }
-
-                    if (reqd != search) {
-                        return false;
-                    }
+            if (!fld.isOneToOneAssociation()) {
+                continue;
+            } 
+
+            // if pattern contains empty value then it matches anything
+            if (fld.isEmpty(pattern)) {
+                continue;
+            }
+
+            // find the object to match against, if any
+            final ObjectAdapter reqd = fld.get(pattern);
+            if (reqd == null) {
+                continue;
+            }
+
+            // find the object; it's a bust if nothing
+            final ObjectAdapter search = fld.get(object);
+            if (search == null) {
+                return false;
+            }
+
+            if (fld.getSpecification().isValue()) {
+                // compare values directly
+                if (reqd != search) {
+                    return false;
+                }
+                
+            } else {
+
+                // compare the titles
+                final String r = reqd.titleString().toLowerCase();
+                final String s = search.titleString().toLowerCase();
+
+                // if the pattern does not occur in the object, then it's a bust
+                if (s.indexOf(r) == -1) {
+                    return false;
                 }
             }
         }

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/persistence/PersistenceSessionContainer.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/persistence/PersistenceSessionContainer.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/persistence/PersistenceSessionContainer.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/persistence/PersistenceSessionContainer.java Sat Apr 28 07:47:28 2012
@@ -41,7 +41,7 @@ public interface PersistenceSessionConta
     /**
      * Creates a new instance of the specified type and returns it in an adapter
      * whose resolved state set to {@link ResolveState#TRANSIENT} (except if the
-     * type is marked as {@link ObjectSpecification#isValueOrIsAggregated()
+     * type is marked as {@link ObjectSpecification#isValueOrIsParented()
      * aggregated} in which case it will be set to {@link ResolveState#VALUE}).
      * 
      * <p>

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/AggregatedFacetAlways.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/AggregatedFacetAlways.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/AggregatedFacetAlways.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/AggregatedFacetAlways.java Sat Apr 28 07:47:28 2012
@@ -21,12 +21,12 @@ package org.apache.isis.runtimes.dflt.ru
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.MarkerFacetAbstract;
-import org.apache.isis.core.metamodel.facets.object.aggregated.AggregatedFacet;
+import org.apache.isis.core.metamodel.facets.object.aggregated.ParentedFacet;
 
 public class AggregatedFacetAlways extends MarkerFacetAbstract {
 
     public AggregatedFacetAlways(final FacetHolder holder) {
-        super(AggregatedFacet.class, holder);
+        super(ParentedFacet.class, holder);
     }
 
 }

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/PersistAlgorithmContractTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/PersistAlgorithmContractTest.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/PersistAlgorithmContractTest.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/algorithm/PersistAlgorithmContractTest.java Sat Apr 28 07:47:28 2012
@@ -72,7 +72,7 @@ public abstract class PersistAlgorithmCo
         
         context.checking(new Expectations() {
             {
-                allowing(objectSpec).isCollection();
+                allowing(objectSpec).isParentedOrFreeCollection();
                 will(returnValue(false));
 
                 allowing(objectSpec).persistability();
@@ -95,7 +95,7 @@ public abstract class PersistAlgorithmCo
                 allowing(objectSpec).isService();
                 will(returnValue(false));
                 
-                allowing(objectSpec).isCollection();
+                allowing(objectSpec).isParentedOrFreeCollection();
                 will(returnValue(false));
 
                 allowing(objectSpec).persistability();
@@ -120,7 +120,7 @@ public abstract class PersistAlgorithmCo
                 allowing(objectSpec).isService();
                 will(returnValue(false));
 
-                allowing(objectSpec).isCollection();
+                allowing(objectSpec).isParentedOrFreeCollection();
                 will(returnValue(false));
 
                 allowing(objectSpec).persistability();
@@ -142,7 +142,7 @@ public abstract class PersistAlgorithmCo
                 allowing(objectSpec).isService();
                 will(returnValue(false));
 
-                allowing(objectSpec).isCollection();
+                allowing(objectSpec).isParentedOrFreeCollection();
                 will(returnValue(false));
 
                 allowing(objectSpec).persistability();

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/tree/TreeDisplayRules.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/tree/TreeDisplayRules.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/tree/TreeDisplayRules.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/tree/TreeDisplayRules.java Sat Apr 28 07:47:28 2012
@@ -84,7 +84,7 @@ public class TreeDisplayRules {
         final boolean lookupView = object != null && BoundedFacetUtils.isBoundedSet(object.getSpecification());
         final boolean showNonCollections = !TreeDisplayRules.isCollectionsOnly();
         final boolean objectView = object instanceof ObjectAdapter && showNonCollections;
-        final boolean collectionView = object.getSpecification().isCollection();
+        final boolean collectionView = object.getSpecification().isParentedOrFreeCollection();
         return (objectView || collectionView) && !lookupView;
     }
 }

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/util/Properties.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/util/Properties.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/util/Properties.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/util/Properties.java Sat Apr 28 07:47:28 2012
@@ -126,7 +126,7 @@ public class Properties {
     public static Options getDefaultViewOptions(final ObjectSpecification specification) {
         final Options settingsOptions = getOptions("views.type-default");
         String name;
-        if (specification.isCollection()) {
+        if (specification.isParentedOrFreeCollection()) {
             name = "collection:" + specification.getFacet(TypeOfFacet.class).valueSpec().getFullIdentifier();
         } else {
             name = specification.getFullIdentifier();

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/view/action/DialoggedObjectOption.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/view/action/DialoggedObjectOption.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/view/action/DialoggedObjectOption.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/view/action/DialoggedObjectOption.java Sat Apr 28 07:47:28 2012
@@ -62,7 +62,7 @@ public class DialoggedObjectOption exten
                 Content content;
                 if (target == null && action.getOnType().isService() || target != null && target.getSpecification().isNotCollection()) {
                     content = new ObjectActionContent(helper);
-                } else if (target.getSpecification().isCollection()) {
+                } else if (target.getSpecification().isParentedOrFreeCollection()) {
                     content = new CollectionActionContent(helper);
                 } else {
                     throw new UnknownTypeException(target);

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/view/action/OptionFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/view/action/OptionFactory.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/view/action/OptionFactory.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/view/action/OptionFactory.java Sat Apr 28 07:47:28 2012
@@ -25,7 +25,7 @@ import java.util.List;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.ObjectList;
+import org.apache.isis.core.metamodel.spec.FreeStandingList;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionContainer.Contributed;
@@ -52,7 +52,7 @@ public class OptionFactory {
 
         // TODO: this looks like a bit of a hack; can we improve it by looking
         // at the facets?
-        if (adapter.getObject() instanceof ObjectList) {
+        if (adapter.getObject() instanceof FreeStandingList) {
             return;
         }
         final Oid oid = adapter.getOid();

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/viewer/DefaultContentFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/viewer/DefaultContentFactory.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/viewer/DefaultContentFactory.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/viewer/DefaultContentFactory.java Sat Apr 28 07:47:28 2012
@@ -40,7 +40,7 @@ public class DefaultContentFactory imple
     public Content createRootContent(final ObjectAdapter object) {
         Assert.assertNotNull(object);
         final ObjectSpecification objectSpec = object.getSpecification();
-        if (objectSpec.isCollection()) {
+        if (objectSpec.isParentedOrFreeCollection()) {
             return new RootCollection(object);
         }
         if (objectSpec.isNotCollection()) {

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/viewer/basic/ApplicationWorkspace.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/viewer/basic/ApplicationWorkspace.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/viewer/basic/ApplicationWorkspace.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/dnd/src/main/java/org/apache/isis/viewer/dnd/viewer/basic/ApplicationWorkspace.java Sat Apr 28 07:47:28 2012
@@ -30,7 +30,7 @@ import org.apache.isis.core.metamodel.co
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.Veto;
 import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.ObjectList;
+import org.apache.isis.core.metamodel.spec.FreeStandingList;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
 import org.apache.isis.core.runtime.userprofile.PerspectiveEntry;
@@ -366,7 +366,7 @@ public final class ApplicationWorkspace 
                     serviceObjects[i++] = adapterManager.adapterFor(object);
                 }
                 final ObjectSpecification spec = getSpecificationLoader().loadSpecification(Object.class);
-                final ObjectList collection = new ObjectList(spec, serviceObjects);
+                final FreeStandingList collection = new FreeStandingList(spec, serviceObjects);
                 addWindowFor(getAdapterManager().adapterFor(collection), new Placement(at));
             }
         });

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/html/src/main/java/org/apache/isis/viewer/html/task/InvokeMethod.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/html/src/main/java/org/apache/isis/viewer/html/task/InvokeMethod.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/html/src/main/java/org/apache/isis/viewer/html/task/InvokeMethod.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/html/src/main/java/org/apache/isis/viewer/html/task/InvokeMethod.java Sat Apr 28 07:47:28 2012
@@ -84,14 +84,14 @@ public final class InvokeMethod implemen
             // null object - so just view service
             request.forward(ForwardRequest.viewService(targetId));
         } else {
-            if (result.getSpecification().isCollection()) {
+            if (result.getSpecification().isParentedOrFreeCollection()) {
                 final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(result);
                 if (facet.size(result) == 1) {
                     forwardObjectResult(request, context, facet.firstElement(result));
                 } else {
                     forwardCollectionResult(request, context, result);
                 }
-            } else if (result.getSpecification().isValueOrIsAggregated()) {
+            } else if (result.getSpecification().isValueOrIsParented()) {
                 // TODO deal with this object properly, it might not be just a
                 // simple string
                 final List<String> messages = context.getMessages();

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/html/src/main/java/org/apache/isis/viewer/html/task/Task.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/html/src/main/java/org/apache/isis/viewer/html/task/Task.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/html/src/main/java/org/apache/isis/viewer/html/task/Task.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/html/src/main/java/org/apache/isis/viewer/html/task/Task.java Sat Apr 28 07:47:28 2012
@@ -98,7 +98,7 @@ public abstract class Task {
                 } else {
                     entryText[i] = context.mapObject(obj);
                 }
-            } else if (obj.getSpecification().isCollection()) {
+            } else if (obj.getSpecification().isParentedOrFreeCollection()) {
                 entryText[i] = (obj).titleString();
             }
         }

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/DefaultOidObjectMapping.java Sat Apr 28 07:47:28 2012
@@ -314,7 +314,7 @@ public class DefaultOidObjectMapping imp
         
         final String id = jsonObject.getString("_id");
 
-        if (objectSpec.isAggregated() && !objectSpec.isCollection()) {
+        if (objectSpec.isParented() && !objectSpec.isParentedOrFreeCollection()) {
             final String[] split = id.split("@");
             final String parentOidStr = split[0];
             final String aggregatedLocalId = split[1];

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/context/RequestContext.java Sat Apr 28 07:47:28 2012
@@ -200,7 +200,7 @@ public abstract class RequestContext {
 
         ObjectAdapter aggregatedAdapter = null;
         outer: for (final ObjectAssociation association : parentObject.getSpecification().getAssociations()) {
-            if (association.getSpecification().isAggregated()) {
+            if (association.getSpecification().isParented()) {
                 final ObjectAdapter objectAdapter = association.get(parentObject);
                 if (objectAdapter == null) {
                     continue;

Modified: incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/Debug.java
URL: http://svn.apache.org/viewvc/incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/Debug.java?rev=1331698&r1=1331697&r2=1331698&view=diff
==============================================================================
--- incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/Debug.java (original)
+++ incubator/isis/branches/0.3.0-incubating-NEW-OIDs/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/Debug.java Sat Apr 28 07:47:28 2012
@@ -258,7 +258,7 @@ public class Debug extends AbstractEleme
             final ObjectSpecification specification = field.getSpecification();
             if (!specification.isValue()) {
                 final boolean contains = visited.contains(specification);
-                final String aggregated = specification.isAggregated() ? "++" : "";
+                final String aggregated = specification.isParented() ? "++" : "";
                 view.appendln(aggregated + field.getName() + "  (<a href=\"./debug.shtml?type=specification-graph&value=" + specification.getFullIdentifier() + "\">" + specification.getFullIdentifier() + "</a>" + (contains ? "..." : "") + ")");
                 if (!contains) {
                     visited.add(specification);
@@ -282,7 +282,7 @@ public class Debug extends AbstractEleme
         view.appendln("Description", spec.getDescription());
 
         view.appendln("Type", "?");
-        view.appendln("Value/aggregated", String.valueOf(!spec.isValueOrIsAggregated()));
+        view.appendln("Value/aggregated", String.valueOf(!spec.isValueOrIsParented()));
 
         view.appendln("Parent specification", specificationLink(spec.superclass()));
         specificationClasses(view, "Child specifications", spec.subclasses());