Author: simoneg
Date: Fri Oct 16 12:57:19 2009
New Revision: 825870

URL: http://svn.apache.org/viewvc?rev=825870&view=rev
Log:
LABS-490: Set nullable=true and unique=false by default on @GeneratedValue 
properties

Added:
    
labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/AvoidRequiredOnGeneratedColumns.aj
Modified:
    
labs/magma/trunk/foundation-database/src/test/java/org/apache/magma/database/ValidableBean.java

Added: 
labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/AvoidRequiredOnGeneratedColumns.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/AvoidRequiredOnGeneratedColumns.aj?rev=825870&view=auto
==============================================================================
--- 
labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/AvoidRequiredOnGeneratedColumns.aj
 (added)
+++ 
labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/AvoidRequiredOnGeneratedColumns.aj
 Fri Oct 16 12:57:19 2009
@@ -0,0 +1,33 @@
+package org.apache.magma.database;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+
+import javax.persistence.GeneratedValue;
+
+import org.apache.magma.beans.PropertyInfo;
+
+import org.apache.magma.validation.AddValidatorInPropertyInfo;
+import org.apache.magma.validation.CompoundValidator;
+import org.apache.magma.validation.Validator;
+
+public aspect AvoidRequiredOnGeneratedColumns {
+
+       declare precedence : AvoidRequiredOnGeneratedColumns, 
AddValidatorInPropertyInfo;
+       
+       after(PropertyInfo info, PropertyDescriptor desc) : 
+               execution(* PropertyInfo.init(PropertyDescriptor, Class)) && 
target(info) && args(desc,..) {
+               
+               Method readMethod = desc.getReadMethod();
+               if (readMethod == null) return;
+               if (readMethod.isAnnotationPresent(GeneratedValue.class)) {
+                       CompoundValidator cv = info.getValidator();
+                       if (cv == null) return;
+                       DatabaseValidator validator = (DatabaseValidator) 
cv.getValidator(DatabaseValidator.class);
+                       if (validator == null) return;
+                       validator.setNullable(true);
+                       validator.setUnique(false);
+               }
+       }
+       
+}

Modified: 
labs/magma/trunk/foundation-database/src/test/java/org/apache/magma/database/ValidableBean.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-database/src/test/java/org/apache/magma/database/ValidableBean.java?rev=825870&r1=825869&r2=825870&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-database/src/test/java/org/apache/magma/database/ValidableBean.java
 (original)
+++ 
labs/magma/trunk/foundation-database/src/test/java/org/apache/magma/database/ValidableBean.java
 Fri Oct 16 12:57:19 2009
@@ -18,6 +18,7 @@
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 
 import org.apache.magma.beans.MagmaBean;
@@ -34,6 +35,7 @@
        private String surname;
        private String description;
        private String longdata;
+       private String generated;
        
        @Id
        public long getId() {
@@ -90,4 +92,15 @@
                this.longdata = longdata;
        }
        
+       @GeneratedValue
+       @Column(nullable=false, unique=true)
+       public String getGenerated() {
+               return generated;
+       }
+       public void setGenerated(String generated) {
+               this.generated = generated;
+       }
+       
+
+       
 }



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

Reply via email to