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]