Author: simoneg
Date: Fri Dec 11 15:24:44 2009
New Revision: 889648

URL: http://svn.apache.org/viewvc?rev=889648&view=rev
Log:
LABS-500 : disconnected validation from handler commit, to provide two 
different phases

Removed:
    
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/HookValidationToHandler.aj
Modified:
    
labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/TestOnBean.java
    
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/BeanHandler.java
    
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/AddConversionInHandler.aj
    
labs/magma/trunk/foundation-database/src/test/java/org/apache/magma/database/TestDatabaseValidator.java
    
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/AddFormatterInPropertyInfo.aj
    
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/HookFormattingToHandler.aj
    
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/AddValidationInHandler.aj
    
labs/magma/trunk/foundation-validation/src/test/java/org/apache/magma/validation/ValidationMapTest.java

Modified: 
labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/TestOnBean.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/TestOnBean.java?rev=889648&r1=889647&r2=889648&view=diff
==============================================================================
--- 
labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/TestOnBean.java
 (original)
+++ 
labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/TestOnBean.java
 Fri Dec 11 15:24:44 2009
@@ -76,7 +76,7 @@
                
                h.setStringValue("shortRichText", "hi there, this is too long");
                try {
-                       h.commit();
+                       h.validate();
                        fail("Should throw length validation exception");
                } catch (ValidationError e) {
                }

Modified: 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/BeanHandler.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/BeanHandler.java?rev=889648&r1=889647&r2=889648&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/BeanHandler.java
 (original)
+++ 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/beans/BeanHandler.java
 Fri Dec 11 15:24:44 2009
@@ -38,8 +38,8 @@
  * 
  * Having a "transactional" approach gives the opportunity to validate all the 
fields or to 
  * make sure all conversions occurs correctly before writing any value to the 
bean, reducing
- * the possibility of stale data. 
- *
+ * the possibility of stale data.
+ * 
  * @author Simone Gianni <[email protected]>
  */
 public class BeanHandler {
@@ -145,11 +145,22 @@
        }
        
        /**
+        * Prepares data for being saved on bean by a later call to {...@link 
#commit()}.
+        * 
+        * This is an essential hook for performing operations on data, like 
convertion
+        * or formatting, before actual data write.
+        */
+       public void prepare() {
+               
+       }
+       
+       /**
         * Saves on the bean (calling setters) all the properties modified 
using {...@link #setValue(String, Object)} (or equivalent
         * methods contributed by other components). This method is the perfect 
hook to perform validations or other preprocessing 
         * of values.
         */
        public void commit() {
+               prepare();
                for (Iterator<String> iterator = changed.iterator(); 
iterator.hasNext();) {
                        String name = iterator.next();
                        PropertyInfo property = data.getProperty(name);

Modified: 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/AddConversionInHandler.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/AddConversionInHandler.aj?rev=889648&r1=889647&r2=889648&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/AddConversionInHandler.aj
 (original)
+++ 
labs/magma/trunk/foundation-beans/src/main/java/org/apache/magma/conversion/AddConversionInHandler.aj
 Fri Dec 11 15:24:44 2009
@@ -235,9 +235,9 @@
        }
        
        /**
-        * Hooks the commit of string values before the commit of the handler. 
+        * Hooks the commit of string values before the prepare of the handler. 
         */
-       before(BeanHandler handler) : execution(public void 
BeanHandler.commit()) && this(handler) {
+       before(BeanHandler handler) : execution(public void 
BeanHandler.prepare()) && this(handler) {
                handler.commitStringValues();
        }
        

Modified: 
labs/magma/trunk/foundation-database/src/test/java/org/apache/magma/database/TestDatabaseValidator.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-database/src/test/java/org/apache/magma/database/TestDatabaseValidator.java?rev=889648&r1=889647&r2=889648&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-database/src/test/java/org/apache/magma/database/TestDatabaseValidator.java
 (original)
+++ 
labs/magma/trunk/foundation-database/src/test/java/org/apache/magma/database/TestDatabaseValidator.java
 Fri Dec 11 15:24:44 2009
@@ -35,7 +35,7 @@
                handler.setValue("uselessNumber", null);
                handler.setValue("name", null);
                handler.setValue("surname", null);
-               handler.commit();               
+               handler.validate();             
        }
 
        @Test(expected=ValidationError.class)
@@ -46,7 +46,7 @@
                handler.setValue("uselessNumber", 1);
                handler.setValue("name", null);
                handler.setValue("surname", "ciao");
-               handler.commit();               
+               handler.validate();             
        }
        
        @Test(expected=ValidationError.class)
@@ -57,7 +57,7 @@
                handler.setValue("uselessNumber", 1);
                handler.setValue("name", "ciao");
                handler.setValue("surname", "ciao");
-               handler.commit();               
+               handler.validate();             
        }
        
        @Test
@@ -68,7 +68,7 @@
                handler.setValue("uselessNumber", 1);
                handler.setValue("name", "ciao");
                handler.setValue("surname", "ciao");
-               handler.commit();               
+               handler.validate();             
        }
 
        @Test(expected=ValidationError.class)
@@ -82,7 +82,7 @@
                char[] chars = new char[1000];
                Arrays.fill(chars, 'a');
                handler.setValue("description", new String(chars));
-               handler.commit();               
+               handler.validate();             
        }
        
        @Test(expected=ValidationError.class)
@@ -93,7 +93,7 @@
                handler.setValue("uselessNumber", 1);
                handler.setValue("name", 
"ciao01234567890123456789012345678901234567890123456789");
                handler.setValue("surname", "ciao");
-               handler.commit();               
+               handler.validate();             
        }
        
        @Test(expected=ValidationError.class)
@@ -104,7 +104,7 @@
                handler.setValue("uselessNumber", 1);
                handler.setValue("name", "ciao");
                handler.setValue("surname", 
"ciao01234567890123456789012345678901234567890123456789");
-               handler.commit();               
+               handler.validate();             
        }
        
        @Test
@@ -118,7 +118,7 @@
                char[] chars = new char[1000];
                Arrays.fill(chars, 'a');
                handler.setValue("longdata", new String(chars));
-               handler.commit();               
+               handler.validate();             
        }
        
        

Modified: 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/AddFormatterInPropertyInfo.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/AddFormatterInPropertyInfo.aj?rev=889648&r1=889647&r2=889648&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/AddFormatterInPropertyInfo.aj
 (original)
+++ 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/AddFormatterInPropertyInfo.aj
 Fri Dec 11 15:24:44 2009
@@ -59,7 +59,7 @@
                } else {
                        formatter = Formatters.getFormatterFor(info.getType());
                }
-               // Don't use the bypas formatter on properties, 
+               // Don't use the bypass formatter on properties, 
                // cause probably they have a correctly initialized converter 
already
                if (formatter instanceof BypassFormatter) formatter = null;
                if (formatter != null) {

Modified: 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/HookFormattingToHandler.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/HookFormattingToHandler.aj?rev=889648&r1=889647&r2=889648&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/HookFormattingToHandler.aj
 (original)
+++ 
labs/magma/trunk/foundation-i18n/src/main/java/org/apache/magma/i18n/HookFormattingToHandler.aj
 Fri Dec 11 15:24:44 2009
@@ -38,10 +38,10 @@
        }
        
        /**
-        * Synchronizes the commit.
-        * @param handler The handler on which commit was called.
+        * Synchronizes the prepare.
+        * @param handler The handler on which prepare was called.
         */
-       before(BeanHandler handler) : execution(public void 
BeanHandler.commit()) && this(handler) {
+       before(BeanHandler handler) : execution(public void 
BeanHandler.prepare()) && this(handler) {
                handler.commitFormattedStringValues();
        }
        

Modified: 
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/AddValidationInHandler.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/AddValidationInHandler.aj?rev=889648&r1=889647&r2=889648&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/AddValidationInHandler.aj
 (original)
+++ 
labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/AddValidationInHandler.aj
 Fri Dec 11 15:24:44 2009
@@ -55,6 +55,7 @@
        }
 
        public void BeanHandler.validate() {
+               prepare();
                Set<String> names = data.getPropertyNames();
                ValidationError err = null;
                for (String name : names) {

Modified: 
labs/magma/trunk/foundation-validation/src/test/java/org/apache/magma/validation/ValidationMapTest.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-validation/src/test/java/org/apache/magma/validation/ValidationMapTest.java?rev=889648&r1=889647&r2=889648&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-validation/src/test/java/org/apache/magma/validation/ValidationMapTest.java
 (original)
+++ 
labs/magma/trunk/foundation-validation/src/test/java/org/apache/magma/validation/ValidationMapTest.java
 Fri Dec 11 15:24:44 2009
@@ -46,6 +46,7 @@
                BeanHandler handler = bean.handler();
                handler.setValue("integerField", 5);
                handler.setValue("stringField", "ciao");
+               handler.validate();
                handler.commit();
                
                assertEquals("ciao", bean.getStringField());
@@ -58,6 +59,7 @@
                BeanHandler handler = bean.handler();
                handler.setValue("integerField", 0);
                handler.setValue("stringField", "a");
+               handler.validate();
                handler.commit();               
        }
        
@@ -68,8 +70,9 @@
                        BeanHandler handler = bean.handler();
                        handler.setValue("integerField", 0);
                        handler.setValue("stringField", "a");
+                       handler.validate();
                        handler.commit();
-                       fail("exception ot thrown");
+                       fail("exception not thrown");
                } catch (ValidationError e) {
                        assertEquals(2, e.getMessages().size());
                }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to