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 2011/01/17 19:23:18 UTC

svn commit: r1060035 [6/14] - in /incubator/isis/trunk: alternatives/embedded/src/main/java/org/apache/isis/alternatives/embedded/ alternatives/objectstore/nosql/src/test/java/org/apache/isis/alternatives/objectstore/nosql/ alternatives/objectstore/sql...

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/multiline/annotation/MultiLineFacetAnnotationOnType.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/multiline/annotation/MultiLineFacetAnnotation.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/multiline/annotation/MultiLineFacetAnnotationOnType.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/multiline/annotation/MultiLineFacetAnnotationOnType.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/multiline/annotation/MultiLineFacetAnnotation.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/multiline/annotation/MultiLineFacetAnnotation.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/multiline/annotation/MultiLineFacetAnnotationOnType.java Mon Jan 17 18:22:58 2011
@@ -18,15 +18,15 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.propparam.multiline.annotation;
+package org.apache.isis.core.progmodel.facets.object.multiline.annotation;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.progmodel.facets.propparam.multiline.MultiLineFacetAbstract;
+import org.apache.isis.core.metamodel.facets.multiline.MultiLineFacetAbstract;
 
 
-public class MultiLineFacetAnnotation extends MultiLineFacetAbstract {
+public class MultiLineFacetAnnotationOnType extends MultiLineFacetAbstract {
 
-    public MultiLineFacetAnnotation(final int numberOfLines, final boolean preventWrapping, final FacetHolder holder) {
+    public MultiLineFacetAnnotationOnType(final int numberOfLines, final boolean preventWrapping, final FacetHolder holder) {
         super(numberOfLines, preventWrapping, holder);
     }
 

Added: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/annotation/NamedAnnotationOnTypeFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/annotation/NamedAnnotationOnTypeFacetFactory.java?rev=1060035&view=auto
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/annotation/NamedAnnotationOnTypeFacetFactory.java (added)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/annotation/NamedAnnotationOnTypeFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -0,0 +1,47 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package org.apache.isis.core.progmodel.facets.object.named.annotation;
+
+import org.apache.isis.applib.annotation.Named;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.AnnotationBasedFacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.named.NamedFacet;
+
+
+public class NamedAnnotationOnTypeFacetFactory extends AnnotationBasedFacetFactoryAbstract {
+
+    public NamedAnnotationOnTypeFacetFactory() {
+        super(FeatureType.OBJECTS_ONLY);
+    }
+
+    @Override
+    public void process(ProcessClassContext processClassContaxt) {
+        final Named annotation = getAnnotation(processClassContaxt.getCls(), Named.class);
+        FacetUtil.addFacet(create(annotation, processClassContaxt.getFacetHolder()));
+    }
+
+    private NamedFacet create(final Named annotation, final FacetHolder holder) {
+        return annotation != null ? new NamedFacetAnnotationOnType(annotation.value(), holder) : null;
+    }
+
+}

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/annotation/NamedFacetAnnotationOnType.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/named/annotation/NamedFacetAnnotation.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/annotation/NamedFacetAnnotationOnType.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/annotation/NamedFacetAnnotationOnType.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/named/annotation/NamedFacetAnnotation.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/named/annotation/NamedFacetAnnotation.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/annotation/NamedFacetAnnotationOnType.java Mon Jan 17 18:22:58 2011
@@ -18,15 +18,15 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.named.annotation;
+package org.apache.isis.core.progmodel.facets.object.named.annotation;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.progmodel.facets.named.NamedFacetImpl;
+import org.apache.isis.core.metamodel.facets.named.NamedFacetAbstract;
 
 
-public class NamedFacetAnnotation extends NamedFacetImpl {
+public class NamedFacetAnnotationOnType extends NamedFacetAbstract {
 
-    public NamedFacetAnnotation(final String value, final FacetHolder holder) {
+    public NamedFacetAnnotationOnType(final String value, final FacetHolder holder) {
         super(value, holder);
     }
 

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/staticmethod/NamedFacetViaSingularNameStaticMethod.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/singular/NamedFacetViaMethod.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/staticmethod/NamedFacetViaSingularNameStaticMethod.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/staticmethod/NamedFacetViaSingularNameStaticMethod.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/singular/NamedFacetViaMethod.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/singular/NamedFacetViaMethod.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/staticmethod/NamedFacetViaSingularNameStaticMethod.java Mon Jan 17 18:22:58 2011
@@ -18,15 +18,15 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.object.ident.singular;
+package org.apache.isis.core.progmodel.facets.object.named.staticmethod;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.naming.named.NamedFacetAbstract;
+import org.apache.isis.core.metamodel.facets.named.NamedFacetAbstract;
 
 
-public class NamedFacetViaMethod extends NamedFacetAbstract {
+public class NamedFacetViaSingularNameStaticMethod extends NamedFacetAbstract {
 
-    public NamedFacetViaMethod(final String value, final FacetHolder holder) {
+    public NamedFacetViaSingularNameStaticMethod(final String value, final FacetHolder holder) {
         super(value, holder);
     }
 

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/staticmethod/NamedFacetViaSingularNameStaticMethodFacetFactory.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/singular/SingularMethodFacetFactory.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/staticmethod/NamedFacetViaSingularNameStaticMethodFacetFactory.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/staticmethod/NamedFacetViaSingularNameStaticMethodFacetFactory.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/singular/SingularMethodFacetFactory.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/singular/SingularMethodFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/named/staticmethod/NamedFacetViaSingularNameStaticMethodFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.object.ident.singular;
+package org.apache.isis.core.progmodel.facets.object.named.staticmethod;
 
 import java.lang.reflect.Method;
 
@@ -29,15 +29,14 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.methodutils.MethodScope;
 import org.apache.isis.core.progmodel.facets.MethodFinderUtils;
 import org.apache.isis.core.progmodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+import org.apache.isis.core.progmodel.facets.MethodPrefixConstants;
 
 
-public class SingularMethodFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
+public class NamedFacetViaSingularNameStaticMethodFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
-    private static final String SINGULAR_NAME = "singularName";
+    private static final String[] PREFIXES = { MethodPrefixConstants.SINGULAR_NAME, };
 
-    private static final String[] PREFIXES = { SINGULAR_NAME, };
-
-    public SingularMethodFacetFactory() {
+    public NamedFacetViaSingularNameStaticMethodFacetFactory() {
         super(FeatureType.OBJECTS_ONLY, PREFIXES);
     }
 
@@ -46,11 +45,11 @@ public class SingularMethodFacetFactory 
         final Class<?> cls = processClassContext.getCls();
         final FacetHolder facetHolder = processClassContext.getFacetHolder();
 
-        final Method method = MethodFinderUtils.findMethod(cls, MethodScope.CLASS, SINGULAR_NAME, String.class, NO_PARAMETERS_TYPES);
+        final Method method = MethodFinderUtils.findMethod(cls, MethodScope.CLASS, MethodPrefixConstants.SINGULAR_NAME, String.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             final String name = (String) InvokeUtils.invokeStatic(method);
             processClassContext.removeMethod(method);
-            FacetUtil.addFacet(new NamedFacetViaMethod(name, facetHolder));
+            FacetUtil.addFacet(new NamedFacetViaSingularNameStaticMethod(name, facetHolder));
         }
     }
 }

Added: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderAnnotationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderAnnotationFacetFactory.java?rev=1060035&view=auto
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderAnnotationFacetFactory.java (added)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderAnnotationFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -0,0 +1,47 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package org.apache.isis.core.progmodel.facets.object.orderactions;
+
+import org.apache.isis.applib.annotation.ActionOrder;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.AnnotationBasedFacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.object.orderactions.ActionOrderFacet;
+
+
+public class ActionOrderAnnotationFacetFactory extends AnnotationBasedFacetFactoryAbstract {
+
+    public ActionOrderAnnotationFacetFactory() {
+        super(FeatureType.OBJECTS_ONLY);
+    }
+
+    @Override
+    public void process(ProcessClassContext processClassContaxt) {
+        final ActionOrder annotation = getAnnotation(processClassContaxt.getCls(), ActionOrder.class);
+        FacetUtil.addFacet(create(annotation, processClassContaxt.getFacetHolder()));
+    }
+
+    private ActionOrderFacet create(final ActionOrder annotation, final FacetHolder facetHolder) {
+        return annotation == null ? null : new ActionOrderFacetAnnotation(annotation.value(), facetHolder);
+    }
+
+}

Propchange: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderAnnotationFacetFactory.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Added: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderFacetAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderFacetAbstract.java?rev=1060035&view=auto
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderFacetAbstract.java (added)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderFacetAbstract.java Mon Jan 17 18:22:58 2011
@@ -0,0 +1,39 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package org.apache.isis.core.progmodel.facets.object.orderactions;
+
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.SingleStringValueFacetAbstract;
+import org.apache.isis.core.metamodel.facets.object.orderactions.ActionOrderFacet;
+
+
+public abstract class ActionOrderFacetAbstract extends SingleStringValueFacetAbstract implements ActionOrderFacet {
+
+    public static Class<? extends Facet> type() {
+        return ActionOrderFacet.class;
+    }
+
+    public ActionOrderFacetAbstract(final String value, final FacetHolder holder) {
+        super(type(), holder, value);
+    }
+
+}

Added: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderFacetAnnotation.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderFacetAnnotation.java?rev=1060035&view=auto
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderFacetAnnotation.java (added)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderFacetAnnotation.java Mon Jan 17 18:22:58 2011
@@ -0,0 +1,33 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package org.apache.isis.core.progmodel.facets.object.orderactions;
+
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+
+
+public class ActionOrderFacetAnnotation extends ActionOrderFacetAbstract {
+
+    public ActionOrderFacetAnnotation(final String value, final FacetHolder holder) {
+        super(value, holder);
+    }
+
+}
+

Propchange: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderactions/ActionOrderFacetAnnotation.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderAnnotationFacetFactory.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ordering/fieldorder/FieldOrderAnnotationFacetFactory.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderAnnotationFacetFactory.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderAnnotationFacetFactory.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ordering/fieldorder/FieldOrderAnnotationFacetFactory.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ordering/fieldorder/FieldOrderAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderAnnotationFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -18,14 +18,14 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.ordering.fieldorder;
+package org.apache.isis.core.progmodel.facets.object.orderfields;
 
 import org.apache.isis.applib.annotation.FieldOrder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.AnnotationBasedFacetFactoryAbstract;
-import org.apache.isis.core.metamodel.layout.ordermethod.FieldOrderFacet;
+import org.apache.isis.core.metamodel.facets.object.orderfields.FieldOrderFacet;
 
 
 public class FieldOrderAnnotationFacetFactory extends AnnotationBasedFacetFactoryAbstract {

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderFacetAbstract.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ordering/fieldorder/FieldOrderFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderFacetAbstract.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderFacetAbstract.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ordering/fieldorder/FieldOrderFacetAbstract.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ordering/fieldorder/FieldOrderFacetAbstract.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderFacetAbstract.java Mon Jan 17 18:22:58 2011
@@ -18,12 +18,12 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.ordering.fieldorder;
+package org.apache.isis.core.progmodel.facets.object.orderfields;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.SingleStringValueFacetAbstract;
-import org.apache.isis.core.metamodel.layout.ordermethod.FieldOrderFacet;
+import org.apache.isis.core.metamodel.facets.object.orderfields.FieldOrderFacet;
 
 
 public abstract class FieldOrderFacetAbstract extends SingleStringValueFacetAbstract implements FieldOrderFacet {

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderFacetAnnotation.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ordering/fieldorder/FieldOrderFacetAnnotation.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderFacetAnnotation.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderFacetAnnotation.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ordering/fieldorder/FieldOrderFacetAnnotation.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ordering/fieldorder/FieldOrderFacetAnnotation.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/orderfields/FieldOrderFacetAnnotation.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.ordering.fieldorder;
+package org.apache.isis.core.progmodel.facets.object.orderfields;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/parseable/ParseableFacetAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/parseable/ParseableFacetAbstract.java?rev=1060035&r1=1060034&r2=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/parseable/ParseableFacetAbstract.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/parseable/ParseableFacetAbstract.java Mon Jan 17 18:22:58 2011
@@ -22,13 +22,13 @@ package org.apache.isis.core.progmodel.f
 
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.lang.ClassUtil;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
 import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
-import org.apache.isis.core.progmodel.util.ClassUtil;
 
 
 public abstract class ParseableFacetAbstract extends FacetAbstract implements ParseableFacet {

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java?rev=1060035&r1=1060034&r2=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -25,7 +25,7 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.AnnotationBasedFacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.ident.plural.PluralFacet;
+import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
 
 
 public class PluralAnnotationFacetFactory extends AnnotationBasedFacetFactoryAbstract {

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/annotation/PluralFacetAnnotation.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/annotation/PluralFacetAnnotation.java?rev=1060035&r1=1060034&r2=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/annotation/PluralFacetAnnotation.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/annotation/PluralFacetAnnotation.java Mon Jan 17 18:22:58 2011
@@ -21,7 +21,7 @@
 package org.apache.isis.core.progmodel.facets.object.plural.annotation;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.ident.plural.PluralFacetAbstract;
+import org.apache.isis.core.metamodel.facets.object.plural.PluralFacetAbstract;
 
 
 public class PluralFacetAnnotation extends PluralFacetAbstract {

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/staticmethod/PluralFacetViaMethod.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/staticmethod/PluralFacetViaMethod.java?rev=1060035&r1=1060034&r2=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/staticmethod/PluralFacetViaMethod.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/plural/staticmethod/PluralFacetViaMethod.java Mon Jan 17 18:22:58 2011
@@ -21,7 +21,7 @@
 package org.apache.isis.core.progmodel.facets.object.plural.staticmethod;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.ident.plural.PluralFacetAbstract;
+import org.apache.isis.core.metamodel.facets.object.plural.PluralFacetAbstract;
 
 
 public class PluralFacetViaMethod extends PluralFacetAbstract {

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/RegExFacet.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/RegExFacet.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/RegExFacet.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/RegExFacet.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/RegExFacet.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/RegExFacet.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/RegExFacet.java Mon Jan 17 18:22:58 2011
@@ -17,11 +17,11 @@
  *  under the License.
  */
 
-package org.apache.isis.core.progmodel.facets.propparam.validate.regex;
+package org.apache.isis.core.progmodel.facets.object.regex;
 
 import org.apache.isis.core.metamodel.facets.MultipleValueFacet;
 import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
-import org.apache.isis.core.progmodel.facets.propparam.validate.mask.MaskFacet;
+import org.apache.isis.core.progmodel.facets.object.mask.MaskFacet;
 
 /**
  * Whether the (string) property or a parameter must correspond to a specific regular expression.

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/RegExFacetAbstract.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/RegExFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/RegExFacetAbstract.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/RegExFacetAbstract.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/RegExFacetAbstract.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/RegExFacetAbstract.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/RegExFacetAbstract.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.propparam.validate.regex;
+package org.apache.isis.core.progmodel.facets.object.regex;
 
 import org.apache.isis.applib.events.ValidityEvent;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/TitleFacetFormattedByRegex.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/TitleFacetFormattedByRegex.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/TitleFacetFormattedByRegex.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/TitleFacetFormattedByRegex.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/TitleFacetFormattedByRegex.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/TitleFacetFormattedByRegex.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/TitleFacetFormattedByRegex.java Mon Jan 17 18:22:58 2011
@@ -18,10 +18,10 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.propparam.validate.regex;
+package org.apache.isis.core.progmodel.facets.object.regex;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.progmodel.facets.object.ident.title.TitleFacetAbstract;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 
 
 public class TitleFacetFormattedByRegex extends TitleFacetAbstract {

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/annotation/RegExFacetAnnotationForType.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/annotation/RegExFacetAnnotation.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/annotation/RegExFacetAnnotationForType.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/annotation/RegExFacetAnnotationForType.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/annotation/RegExFacetAnnotation.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/annotation/RegExFacetAnnotation.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/annotation/RegExFacetAnnotationForType.java Mon Jan 17 18:22:58 2011
@@ -18,19 +18,19 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.propparam.validate.regex.annotation;
+package org.apache.isis.core.progmodel.facets.object.regex.annotation;
 
 import java.util.regex.Pattern;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.progmodel.facets.propparam.validate.regex.RegExFacetAbstract;
+import org.apache.isis.core.progmodel.facets.object.regex.RegExFacetAbstract;
 
 
-public class RegExFacetAnnotation extends RegExFacetAbstract {
+public class RegExFacetAnnotationForType extends RegExFacetAbstract {
 
     private final Pattern pattern;
 
-    public RegExFacetAnnotation(
+    public RegExFacetAnnotationForType(
             final String validation,
             final String format,
             final boolean caseSensitive,

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/annotation/RegExFacetAnnotationForTypeFacetFactory.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/annotation/RegExAnnotationFacetFactory.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/annotation/RegExFacetAnnotationForTypeFacetFactory.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/annotation/RegExFacetAnnotationForTypeFacetFactory.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/annotation/RegExAnnotationFacetFactory.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/validate/regex/annotation/RegExAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/regex/annotation/RegExFacetAnnotationForTypeFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -18,24 +18,20 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.propparam.validate.regex.annotation;
+package org.apache.isis.core.progmodel.facets.object.regex.annotation;
 
-import java.lang.annotation.Annotation;
-
 import org.apache.isis.applib.annotation.RegEx;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.AnnotationBasedFacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.ident.title.TitleFacet;
-import org.apache.isis.core.progmodel.facets.propparam.validate.regex.RegExFacet;
-import org.apache.isis.core.progmodel.facets.propparam.validate.regex.TitleFacetFormattedByRegex;
+import org.apache.isis.core.progmodel.facets.object.regex.RegExFacet;
 
 
-public class RegExAnnotationFacetFactory extends AnnotationBasedFacetFactoryAbstract {
+public class RegExFacetAnnotationForTypeFacetFactory extends AnnotationBasedFacetFactoryAbstract {
 
-    public RegExAnnotationFacetFactory() {
-        super(FeatureType.OBJECTS_PROPERTIES_AND_PARAMETERS);
+    public RegExFacetAnnotationForTypeFacetFactory() {
+        super(FeatureType.OBJECTS_ONLY);
     }
 
     @Override
@@ -44,48 +40,6 @@ public class RegExAnnotationFacetFactory
         FacetUtil.addFacet(createRegexFacet(annotation, processClassContaxt.getFacetHolder()));
     }
 
-    @Override
-    public void process(ProcessMethodContext processMethodContext) {
-        final Class<?> returnType = processMethodContext.getMethod().getReturnType();
-        if (!isString(returnType)) {
-            return;
-        }
-        final RegEx annotation = getAnnotation(processMethodContext.getMethod(), RegEx.class);
-        addRegexFacetAndCorrespondingTitleFacet(processMethodContext.getFacetHolder(), annotation);
-    }
-
-    @Override
-    public void processParams(ProcessParameterContext processParameterContext) {
-        final Class<?>[] parameterTypes = processParameterContext.getMethod().getParameterTypes();
-        if (processParameterContext.getParamNum() >= parameterTypes.length) {
-            // ignore
-            return;
-        }
-        if (!isString(parameterTypes[processParameterContext.getParamNum()])) {
-            return;
-        }
-
-        final Annotation[] parameterAnnotations = getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
-        for (int j = 0; j < parameterAnnotations.length; j++) {
-            if (parameterAnnotations[j] instanceof RegEx) {
-                final RegEx annotation = (RegEx) parameterAnnotations[j];
-                addRegexFacetAndCorrespondingTitleFacet(processParameterContext.getFacetHolder(), annotation);
-                return;
-            }
-        }
-    }
-
-    private void addRegexFacetAndCorrespondingTitleFacet(final FacetHolder holder, final RegEx annotation) {
-        final RegExFacet regexFacet = createRegexFacet(annotation, holder);
-        if (regexFacet == null) {
-            return;
-        }
-        FacetUtil.addFacet(regexFacet);
-
-        final TitleFacet titleFacet = createTitleFacet(regexFacet);
-        FacetUtil.addFacet(titleFacet);
-    }
-
     private RegExFacet createRegexFacet(final RegEx annotation, final FacetHolder holder) {
         if (annotation == null) {
             return null;
@@ -95,11 +49,6 @@ public class RegExAnnotationFacetFactory
         final boolean caseSensitive = annotation.caseSensitive();
         final String formatExpression = annotation.format();
 
-        return new RegExFacetAnnotation(validationExpression, formatExpression, caseSensitive, holder);
-    }
-
-    private TitleFacet createTitleFacet(final RegExFacet regexFacet) {
-        return new TitleFacetFormattedByRegex(regexFacet);
+        return new RegExFacetAnnotationForType(validationExpression, formatExpression, caseSensitive, holder);
     }
-
 }

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetUsingParser.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleFacetUsingParser.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetUsingParser.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetUsingParser.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleFacetUsingParser.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleFacetUsingParser.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetUsingParser.java Mon Jan 17 18:22:58 2011
@@ -18,13 +18,13 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.object.ident.title;
+package org.apache.isis.core.progmodel.facets.object.title;
 
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.ident.title.TitleFacet;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
 import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
 
 

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetViaTitleMethod.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleFacetViaTitleMethod.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetViaTitleMethod.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetViaTitleMethod.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleFacetViaTitleMethod.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleFacetViaTitleMethod.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetViaTitleMethod.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.object.ident.title;
+package org.apache.isis.core.progmodel.facets.object.title;
 
 import java.lang.reflect.Method;
 import java.util.Collections;
@@ -28,6 +28,7 @@ import org.apache.isis.core.metamodel.ad
 import org.apache.isis.core.metamodel.adapter.util.AdapterInvokeUtils;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 
 
 public class TitleFacetViaTitleMethod extends TitleFacetAbstract implements ImperativeFacet {

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetViaToStringMethod.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleFacetViaToStringMethod.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetViaToStringMethod.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetViaToStringMethod.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleFacetViaToStringMethod.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleFacetViaToStringMethod.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleFacetViaToStringMethod.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.object.ident.title;
+package org.apache.isis.core.progmodel.facets.object.title;
 
 import java.lang.reflect.Method;
 import java.util.Collections;
@@ -27,6 +27,7 @@ import java.util.List;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
 
 
 public class TitleFacetViaToStringMethod extends TitleFacetAbstract implements ImperativeFacet {

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleMethodFacetFactory.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleMethodFacetFactory.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleMethodFacetFactory.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleMethodFacetFactory.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleMethodFacetFactory.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/title/TitleMethodFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/title/TitleMethodFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.object.ident.title;
+package org.apache.isis.core.progmodel.facets.object.title;
 
 import java.lang.reflect.Method;
 
@@ -27,9 +27,9 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.methodutils.MethodScope;
-import org.apache.isis.core.progmodel.facets.FallbackFacetFactory;
 import org.apache.isis.core.progmodel.facets.MethodFinderUtils;
 import org.apache.isis.core.progmodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+import org.apache.isis.core.progmodel.fallback.FallbackFacetFactory;
 
 
 public class TitleMethodFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/typicallen/annotation/TypicalLengthAnnotationOnTypeFacetFactory.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/typicallength/annotation/TypicalLengthAnnotationFacetFactory.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/typicallen/annotation/TypicalLengthAnnotationOnTypeFacetFactory.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/typicallen/annotation/TypicalLengthAnnotationOnTypeFacetFactory.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/typicallength/annotation/TypicalLengthAnnotationFacetFactory.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/typicallength/annotation/TypicalLengthAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/typicallen/annotation/TypicalLengthAnnotationOnTypeFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -18,22 +18,20 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.propparam.typicallength.annotation;
+package org.apache.isis.core.progmodel.facets.object.typicallen.annotation;
 
-import java.lang.annotation.Annotation;
-
 import org.apache.isis.applib.annotation.TypicalLength;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.AnnotationBasedFacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.propparam.typicallength.TypicalLengthFacet;
+import org.apache.isis.core.metamodel.facets.typicallength.TypicalLengthFacet;
 
 
-public class TypicalLengthAnnotationFacetFactory extends AnnotationBasedFacetFactoryAbstract {
+public class TypicalLengthAnnotationOnTypeFacetFactory extends AnnotationBasedFacetFactoryAbstract {
 
-    public TypicalLengthAnnotationFacetFactory() {
-        super(FeatureType.OBJECTS_PROPERTIES_AND_PARAMETERS);
+    public TypicalLengthAnnotationOnTypeFacetFactory() {
+        super(FeatureType.OBJECTS_ONLY);
     }
 
     @Override
@@ -42,28 +40,8 @@ public class TypicalLengthAnnotationFace
         FacetUtil.addFacet(create(annotation, processClassContaxt.getFacetHolder()));
     }
 
-    @Override
-    public void process(ProcessMethodContext processMethodContext) {
-        final TypicalLength annotation = getAnnotation(processMethodContext.getMethod(), TypicalLength.class);
-        final TypicalLengthFacet facet = create(annotation, processMethodContext.getFacetHolder());
-
-        FacetUtil.addFacet(facet);
-    }
-
-    @Override
-    public void processParams(ProcessParameterContext processParameterContext) {
-        final Annotation[] parameterAnnotations = getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
-        for (int j = 0; j < parameterAnnotations.length; j++) {
-            if (parameterAnnotations[j] instanceof TypicalLength) {
-                final TypicalLength annotation = (TypicalLength) parameterAnnotations[j];
-                FacetUtil.addFacet(create(annotation, processParameterContext.getFacetHolder()));
-                return;
-            }
-        }
-    }
-
     private TypicalLengthFacet create(final TypicalLength annotation, final FacetHolder holder) {
-        return annotation != null ? new TypicalLengthFacetAnnotation(annotation.value(), holder) : null;
+        return annotation != null ? new TypicalLengthFacetAnnotationOnType(annotation.value(), holder) : null;
     }
 
 }

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/typicallen/annotation/TypicalLengthFacetAnnotationOnType.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/typicallength/annotation/TypicalLengthFacetAnnotation.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/typicallen/annotation/TypicalLengthFacetAnnotationOnType.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/typicallen/annotation/TypicalLengthFacetAnnotationOnType.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/typicallength/annotation/TypicalLengthFacetAnnotation.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/typicallength/annotation/TypicalLengthFacetAnnotation.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/typicallen/annotation/TypicalLengthFacetAnnotationOnType.java Mon Jan 17 18:22:58 2011
@@ -18,17 +18,17 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.propparam.typicallength.annotation;
+package org.apache.isis.core.progmodel.facets.object.typicallen.annotation;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.progmodel.facets.propparam.typicallength.TypicalLengthFacetAbstract;
+import org.apache.isis.core.metamodel.facets.typicallength.TypicalLengthFacetAbstract;
 
 
-public class TypicalLengthFacetAnnotation extends TypicalLengthFacetAbstract {
+public class TypicalLengthFacetAnnotationOnType extends TypicalLengthFacetAbstract {
 
     private final int value;
 
-	public TypicalLengthFacetAnnotation(final int value, final FacetHolder holder) {
+	public TypicalLengthFacetAnnotationOnType(final int value, final FacetHolder holder) {
         super(holder, false);
         this.value = value;
     }

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/method/ValidateObjectFacetViaValidateMethod.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/ValidateObjectFacetViaValidateMethod.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/method/ValidateObjectFacetViaValidateMethod.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/method/ValidateObjectFacetViaValidateMethod.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/ValidateObjectFacetViaValidateMethod.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/ValidateObjectFacetViaValidateMethod.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/method/ValidateObjectFacetViaValidateMethod.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.object.validate;
+package org.apache.isis.core.progmodel.facets.object.validate.method;
 
 import java.lang.reflect.Method;
 import java.util.Collections;
@@ -28,6 +28,7 @@ import org.apache.isis.core.metamodel.ad
 import org.apache.isis.core.metamodel.adapter.util.AdapterInvokeUtils;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.progmodel.facets.object.validate.ValidateObjectFacetAbstract;
 
 
 public class ValidateObjectFacetViaValidateMethod extends ValidateObjectFacetAbstract implements ImperativeFacet {

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/method/ValidateObjectViaValidateMethodFacetFactory.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/ValidateObjectViaValidateMethodFacetFactory.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/method/ValidateObjectViaValidateMethodFacetFactory.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/method/ValidateObjectViaValidateMethodFacetFactory.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/ValidateObjectViaValidateMethodFacetFactory.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/ValidateObjectViaValidateMethodFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validate/method/ValidateObjectViaValidateMethodFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.object.validate;
+package org.apache.isis.core.progmodel.facets.object.validate.method;
 
 import java.lang.reflect.Method;
 

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validperspec/MustSatisfySpecificationOnTypeFacet.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/specification/MustSatisfySpecificationFacet.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validperspec/MustSatisfySpecificationOnTypeFacet.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validperspec/MustSatisfySpecificationOnTypeFacet.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/specification/MustSatisfySpecificationFacet.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/specification/MustSatisfySpecificationFacet.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validperspec/MustSatisfySpecificationOnTypeFacet.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.propparam.specification;
+package org.apache.isis.core.progmodel.facets.object.validperspec;
 
 import java.util.List;
 
@@ -33,15 +33,15 @@ import org.apache.isis.core.metamodel.in
 import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
 import org.apache.isis.core.metamodel.interactions.ValidityContext;
 
-public class MustSatisfySpecificationFacet extends FacetAbstract implements ValidatingInteractionAdvisor {
+public class MustSatisfySpecificationOnTypeFacet extends FacetAbstract implements ValidatingInteractionAdvisor {
 
     public static Class<? extends Facet> type() {
-        return MustSatisfySpecificationFacet.class;
+        return MustSatisfySpecificationOnTypeFacet.class;
     }
 
     private final List<Specification> specifications;
 
-    public MustSatisfySpecificationFacet(final List<Specification> specifications, final FacetHolder holder) {
+    public MustSatisfySpecificationOnTypeFacet(final List<Specification> specifications, final FacetHolder holder) {
         super(type(), holder, false);
         this.specifications = specifications;
     }

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validperspec/MustSatisfySpecificationOnTypeFacetFactory.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/specification/MustSatisfySpecificationFacetFactory.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validperspec/MustSatisfySpecificationOnTypeFacetFactory.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validperspec/MustSatisfySpecificationOnTypeFacetFactory.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/specification/MustSatisfySpecificationFacetFactory.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/specification/MustSatisfySpecificationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validperspec/MustSatisfySpecificationOnTypeFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -18,23 +18,23 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.propparam.specification;
+package org.apache.isis.core.progmodel.facets.object.validperspec;
 
-import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.isis.applib.annotation.MustSatisfy;
 import org.apache.isis.applib.spec.Specification;
+import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.AnnotationBasedFacetFactoryAbstract;
 
-public class MustSatisfySpecificationFacetFactory  extends AnnotationBasedFacetFactoryAbstract {
+public class MustSatisfySpecificationOnTypeFacetFactory  extends AnnotationBasedFacetFactoryAbstract {
 
-    public MustSatisfySpecificationFacetFactory() {
-        super(FeatureType.OBJECTS_PROPERTIES_AND_PARAMETERS);
+    public MustSatisfySpecificationOnTypeFacetFactory() {
+        super(FeatureType.OBJECTS_ONLY);
     }
 
     @Override
@@ -42,34 +42,11 @@ public class MustSatisfySpecificationFac
         FacetUtil.addFacet(create(processClassContaxt.getCls(), processClassContaxt.getFacetHolder()));
     }
 
-    private MustSatisfySpecificationFacet create(Class<?> clazz, FacetHolder holder) {
+    private Facet create(Class<?> clazz, FacetHolder holder) {
         return create(getAnnotation(clazz, MustSatisfy.class), holder);
     }
 
-    @Override
-    public void process(ProcessMethodContext processMethodContext) {
-        FacetUtil.addFacet(create(processMethodContext.getMethod(), processMethodContext.getFacetHolder()));
-    }
-
-    private MustSatisfySpecificationFacet create(Method method, FacetHolder holder) {
-        return create(getAnnotation(method, MustSatisfy.class), holder);
-    }
-
-
-    @Override
-    public void processParams(ProcessParameterContext processParameterContext) {
-        final java.lang.annotation.Annotation[] parameterAnnotations = getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
-
-        for (int j = 0; j < parameterAnnotations.length; j++) {
-            if (parameterAnnotations[j] instanceof MustSatisfy) {
-                final MustSatisfy annotation = (MustSatisfy) parameterAnnotations[j];
-                FacetUtil.addFacet(create(annotation, processParameterContext.getFacetHolder()));
-                return; 
-            }
-        }
-    }
-    
-    private MustSatisfySpecificationFacet create(final MustSatisfy annotation, final FacetHolder holder) {
+    private static Facet create(final MustSatisfy annotation, final FacetHolder holder) {
         if (annotation == null) {
             return null;
         }
@@ -81,10 +58,10 @@ public class MustSatisfySpecificationFac
                 specifications.add(specification);
             }
         }
-        return specifications.size() > 0 ? new MustSatisfySpecificationFacet(specifications, holder) : null;
+        return specifications.size() > 0 ? new MustSatisfySpecificationOnTypeFacet(specifications, holder) : null;
     }
 
-    private Specification newSpecificationElseNull(Class<?> value) {
+    private static Specification newSpecificationElseNull(Class<?> value) {
         if (!(Specification.class.isAssignableFrom(value))) {
             return null;
         }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validprops/ObjectValidPropertiesFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validprops/ObjectValidPropertiesFacet.java?rev=1060035&r1=1060034&r2=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validprops/ObjectValidPropertiesFacet.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/validprops/ObjectValidPropertiesFacet.java Mon Jan 17 18:22:58 2011
@@ -21,7 +21,7 @@
 package org.apache.isis.core.progmodel.facets.object.validprops;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.propparam.validate.mandatory.MandatoryFacet;
+import org.apache.isis.core.metamodel.facets.mandatory.MandatoryFacet;
 import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/EqualByContentFacetViaValueSemantics.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/EqualByContentFacetViaValueSemantics.java?rev=1060035&r1=1060034&r2=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/EqualByContentFacetViaValueSemantics.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/EqualByContentFacetViaValueSemantics.java Mon Jan 17 18:22:58 2011
@@ -21,7 +21,7 @@
 package org.apache.isis.core.progmodel.facets.object.value;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.progmodel.facets.object.ebc.EqualByContentFacetAbstract;
+import org.apache.isis.core.metamodel.facets.ebc.EqualByContentFacetAbstract;
 
 
 public class EqualByContentFacetViaValueSemantics extends EqualByContentFacetAbstract {

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ImmutableFacetViaValueSemantics.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ImmutableFacetViaValueSemantics.java?rev=1060035&r1=1060034&r2=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ImmutableFacetViaValueSemantics.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ImmutableFacetViaValueSemantics.java Mon Jan 17 18:22:58 2011
@@ -22,10 +22,10 @@ package org.apache.isis.core.progmodel.f
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.When;
-import org.apache.isis.core.progmodel.facets.object.immutable.ImmutableFacetImpl;
+import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacetAbstract;
 
 
-public class ImmutableFacetViaValueSemantics extends ImmutableFacetImpl {
+public class ImmutableFacetViaValueSemantics extends ImmutableFacetAbstract {
 
     public ImmutableFacetViaValueSemantics(final FacetHolder holder) {
         super(When.ALWAYS, holder);

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/TypicalLengthFacetUsingParser.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/typicallength/parser/TypicalLengthFacetUsingParser.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/TypicalLengthFacetUsingParser.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/TypicalLengthFacetUsingParser.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/typicallength/parser/TypicalLengthFacetUsingParser.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/propparam/typicallength/parser/TypicalLengthFacetUsingParser.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/TypicalLengthFacetUsingParser.java Mon Jan 17 18:22:58 2011
@@ -18,21 +18,21 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.propparam.typicallength.parser;
+package org.apache.isis.core.progmodel.facets.object.value;
 
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.typicallength.TypicalLengthFacet;
+import org.apache.isis.core.metamodel.facets.typicallength.TypicalLengthFacet;
 import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
 
 
 public class TypicalLengthFacetUsingParser extends FacetAbstract implements TypicalLengthFacet {
 
-    private final Parser parser;
+    private final Parser<?> parser;
 	private final DependencyInjector dependencyInjector;
 	
-    public TypicalLengthFacetUsingParser(final Parser parser, final FacetHolder holder, final DependencyInjector dependencyInjector) {
+    public TypicalLengthFacetUsingParser(final Parser<?> parser, final FacetHolder holder, final DependencyInjector dependencyInjector) {
         super(TypicalLengthFacet.class, holder, false);
         this.parser = parser;
         this.dependencyInjector = dependencyInjector;

Added: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueFacetAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueFacetAbstract.java?rev=1060035&view=auto
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueFacetAbstract.java (added)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueFacetAbstract.java Mon Jan 17 18:22:58 2011
@@ -0,0 +1,191 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package org.apache.isis.core.progmodel.facets.object.value;
+
+import org.apache.isis.applib.adapters.DefaultsProvider;
+import org.apache.isis.applib.adapters.EncoderDecoder;
+import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.applib.adapters.ValueSemanticsProvider;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.lang.ClassUtil;
+import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
+import org.apache.isis.core.metamodel.facets.MultipleValueFacetAbstract;
+import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
+import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
+import org.apache.isis.core.progmodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider;
+import org.apache.isis.core.progmodel.facets.object.encodeable.EncodableFacetUsingEncoderDecoder;
+import org.apache.isis.core.progmodel.facets.object.parseable.ParseableFacetUsingParser;
+import org.apache.isis.core.progmodel.facets.object.title.TitleFacetUsingParser;
+
+
+public abstract class ValueFacetAbstract extends MultipleValueFacetAbstract implements ValueFacet {
+
+    public static Class<? extends Facet> type() {
+        return ValueFacet.class;
+    }
+
+    private static ValueSemanticsProvider<?> newValueSemanticsProviderOrNull(
+            final Class<?> semanticsProviderClass, 
+            final FacetHolder holder,
+    		final IsisConfiguration configuration,
+    		final ValueSemanticsProviderContext context) {
+        if (semanticsProviderClass == null) {
+            return null;
+        }
+        return (ValueSemanticsProvider<?>) ClassUtil.newInstance(
+        		semanticsProviderClass, 
+        		new Class<?>[]{ FacetHolder.class, IsisConfiguration.class, ValueSemanticsProviderContext.class},
+        		new Object[] { holder, configuration, context});
+    }
+
+    // to look after the facets (since MultiTyped)
+    private final FacetHolder facetHolder = new FacetHolderImpl();
+
+    private final ValueSemanticsProvider<?> semanticsProvider;
+
+    private final ValueSemanticsProviderContext context;
+
+    public enum AddFacetsIfInvalidStrategy {
+        DO_ADD(true),
+        DONT_ADD(false);
+        private boolean addFacetsIfInvalid;
+        private AddFacetsIfInvalidStrategy(boolean addFacetsIfInvalid) {
+            this.addFacetsIfInvalid = addFacetsIfInvalid;
+        }
+        public boolean shouldAddFacetsIfInvalid() {
+            return addFacetsIfInvalid;
+        }
+    }
+    
+    public ValueFacetAbstract(
+    		final Class<?> semanticsProviderClass, 
+    		final AddFacetsIfInvalidStrategy addFacetsIfInvalid, 
+    		final FacetHolder holder, 
+    		final IsisConfiguration configuration, 
+            final ValueSemanticsProviderContext context) {
+        this(newValueSemanticsProviderOrNull(semanticsProviderClass, holder, configuration, context), 
+            addFacetsIfInvalid, holder, context);
+    }
+
+    public ValueFacetAbstract(
+            final ValueSemanticsProvider<?> semanticsProvider,
+            final AddFacetsIfInvalidStrategy addFacetsIfInvalid,
+            final FacetHolder holder,
+            final ValueSemanticsProviderContext context) {
+        super(type(), holder);
+
+        this.semanticsProvider = semanticsProvider;
+        this.context = context;
+        
+        // note: we can't use the runtimeContext to inject dependencies into the semanticsProvider,
+        // because there won't be any PersistenceSession when initially building the metamodel.
+        // so, we defer until we use the parser.
+        
+        if (!isValid() && !addFacetsIfInvalid.shouldAddFacetsIfInvalid()) {
+            return;
+        }
+
+        // we now figure add all the facets supported. Note that we do not use FacetUtil.addFacet,
+        // because we need to add them explicitly to our delegate facetholder but have the
+        // facets themselves reference this value's holder.
+
+        facetHolder.addFacet((Facet) this); // add just ValueFacet.class initially.
+
+        // we used to add aggregated here, but this was wrong.  
+        // An immutable value is not aggregated, it is shared.
+
+        // ImmutableFacet, if appropriate
+        final boolean immutable = semanticsProvider != null ? semanticsProvider.isImmutable() : true;
+        if (immutable) {
+            facetHolder.addFacet(new ImmutableFacetViaValueSemantics(holder));
+        }
+
+        // EqualByContentFacet, if appropriate
+        final boolean equalByContent = semanticsProvider != null ? semanticsProvider.isEqualByContent() : true;
+        if (equalByContent) {
+            facetHolder.addFacet(new EqualByContentFacetViaValueSemantics(holder));
+        }
+
+        if (semanticsProvider != null) {
+
+            // install the EncodeableFacet if we've been given an EncoderDecoder
+            final EncoderDecoder<?> encoderDecoder = semanticsProvider.getEncoderDecoder();
+            if (encoderDecoder != null) {
+                facetHolder.addFacet(new EncodableFacetUsingEncoderDecoder(encoderDecoder, holder, getAdapterMap(), getDependencyInjector()));
+            }
+
+            // install the ParseableFacet and other facets if we've been given a Parser
+            final Parser<?> parser = semanticsProvider.getParser();
+            if (parser != null) {
+                facetHolder.addFacet(new ParseableFacetUsingParser(parser, holder, getAuthenticationSessionProvider(), getDependencyInjector(), getAdapterMap()));
+                facetHolder.addFacet(new TitleFacetUsingParser(parser, holder, getDependencyInjector()));
+                facetHolder.addFacet(new TypicalLengthFacetUsingParser(parser, holder, getDependencyInjector()));
+            }
+
+            // install the DefaultedFacet if we've been given a DefaultsProvider
+            final DefaultsProvider<?> defaultsProvider = semanticsProvider.getDefaultsProvider();
+            if (defaultsProvider != null) {
+                facetHolder.addFacet(new DefaultedFacetUsingDefaultsProvider(defaultsProvider, holder, getDependencyInjector()));
+            }
+        }
+    }
+
+
+    public boolean isValid() {
+        return this.semanticsProvider != null;
+    }
+
+    // /////////////////////////////
+    // MultiTypedFacet impl
+    // /////////////////////////////
+    @Override
+    public Class<? extends Facet>[] facetTypes() {
+        return facetHolder.getFacetTypes();
+    }
+
+    @Override
+    public <T extends Facet> T getFacet(Class<T> facetType) {
+        return facetHolder.getFacet(facetType);
+    }
+
+
+    
+    // /////////////////////////////////////////
+    // Dependencies (from constructor)
+    // /////////////////////////////////////////
+
+    public AdapterMap getAdapterMap() {
+        return context.getAdapterMap();
+    }
+    
+    public DependencyInjector getDependencyInjector() {
+        return context.getDependencyInjector();
+    }
+
+    public AuthenticationSessionProvider getAuthenticationSessionProvider() {
+        return context.getAuthenticationSessionProvider();
+    }
+
+}

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueSemanticsProviderAndFacetAbstract.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/ValueSemanticsProviderAndFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueSemanticsProviderAndFacetAbstract.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueSemanticsProviderAndFacetAbstract.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/ValueSemanticsProviderAndFacetAbstract.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/ValueSemanticsProviderAndFacetAbstract.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueSemanticsProviderAndFacetAbstract.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.value;
+package org.apache.isis.core.progmodel.facets.object.value;
 
 import java.text.DecimalFormat;
 import java.text.Format;
@@ -45,7 +45,6 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLookup;
-import org.apache.isis.core.progmodel.facets.object.value.ValueSemanticsProviderContext;
 
 
 public abstract class ValueSemanticsProviderAndFacetAbstract<T> extends FacetAbstract implements ValueSemanticsProvider<T>, EncoderDecoder<T>,

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueSemanticsProviderUtil.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueSemanticsProviderUtil.java?rev=1060035&r1=1060034&r2=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueSemanticsProviderUtil.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueSemanticsProviderUtil.java Mon Jan 17 18:22:58 2011
@@ -34,7 +34,7 @@ public final class ValueSemanticsProvide
     public static final String SEMANTICS_PROVIDER_NAME_KEY_PREFIX = "isis.core.progmodel.value.";
     public static final String SEMANTICS_PROVIDER_NAME_KEY_SUFFIX = ".semanticsProviderName";
 
-    static String semanticsProviderNameFromConfiguration(final Class<?> type, final IsisConfiguration configuration) {
+    public static String semanticsProviderNameFromConfiguration(final Class<?> type, final IsisConfiguration configuration) {
         final String key = SEMANTICS_PROVIDER_NAME_KEY_PREFIX + type.getCanonicalName() + SEMANTICS_PROVIDER_NAME_KEY_SUFFIX;
         final String semanticsProviderName = configuration.getString(key);
         return !StringUtils.isNullOrEmpty(semanticsProviderName) ? semanticsProviderName : null;

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueUsingValueSemanticsProviderFacetFactory.java (from r1059849, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/ValueUsingValueSemanticsProviderFacetFactory.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueUsingValueSemanticsProviderFacetFactory.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueUsingValueSemanticsProviderFacetFactory.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/ValueUsingValueSemanticsProviderFacetFactory.java&r1=1059849&r2=1060035&rev=1060035&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/ValueUsingValueSemanticsProviderFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueUsingValueSemanticsProviderFacetFactory.java Mon Jan 17 18:22:58 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.value;
+package org.apache.isis.core.progmodel.facets.object.value;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
@@ -32,8 +32,6 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
 import org.apache.isis.core.metamodel.runtimecontext.DependencyInjectorAware;
-import org.apache.isis.core.progmodel.facets.object.value.ValueFacetUsingSemanticsProvider;
-import org.apache.isis.core.progmodel.facets.object.value.ValueSemanticsProviderContext;
 
 
 public abstract class ValueUsingValueSemanticsProviderFacetFactory<T> extends FacetFactoryAbstract implements