You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2010/01/24 20:40:01 UTC
svn commit: r902629 -
/labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java
Author: simoneg
Date: Sun Jan 24 19:40:00 2010
New Revision: 902629
URL: http://svn.apache.org/viewvc?rev=902629&view=rev
Log:
Support setting the primary key
Modified:
labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java
Modified: labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java?rev=902629&r1=902628&r2=902629&view=diff
==============================================================================
--- labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java (original)
+++ labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java Sun Jan 24 19:40:00 2010
@@ -90,16 +90,39 @@
try {
idval = idgetter.invoke(value);
} catch (Exception e) {
- throw new MagmaException("Error accessing the field {0}.{1}, which is key for the class {2}", idfield.getDeclaringClass().getName(), idfield.getName(), myclass.getName());
+ throw new MagmaException("Error accessing the method {0}.{1}, which is key for the class {2}", idgetter.getDeclaringClass(), idgetter.getName(), myclass.getName());
}
} else if (idfield != null) {
try {
idval = idfield.get(value);
} catch (Exception e) {
- throw new MagmaException("Error accessing the field {0}.{1}, which is key for the class {2}", idfield.getDeclaringClass().getName(), idfield.getName(), myclass.getName());
+ throw new MagmaException("Error accessing the field {0}.{1}, which is key for the class {2}", idfield.getDeclaringClass(), idfield.getName(), myclass.getName());
}
}
return idval;
}
+ public void setPrimaryKey(DatabasePersisted bean, Object value) {
+ if (idfield != null) {
+ try {
+ idval = idfield.set(bean, value);
+ return;
+ } catch (Exception e) {
+ throw new MagmaException("Error setting the field {0}.{1}, which is key for the class {2}", idfield.getDeclaringClass().getName(), idfield.getName(), myclass.getName());
+ }
+ }
+ if (idgetter != null) {
+ String name = idgetter.getName();
+ if (name.startsWith("get")) name = name.substring(3);
+ name = "set" + name;
+ try {
+ Method method = this.myclass.getMethod(name, value.getClass());
+ method.invoke(bean, value);
+ return;
+ } catch (Exception e) {
+ throw new MagmaException("Error callong method {0}.{1}, which is key setter for the class {2}", idgetter.getDeclaringClass(), name, myclass.getName());
+ }
+ }
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org