summaryrefslogtreecommitdiff
path: root/src/main/java/com/amazon/carbonado/OptimisticLockException.java
diff options
context:
space:
mode:
authorBrian S. O'Neill <bronee@gmail.com>2007-04-29 17:47:50 +0000
committerBrian S. O'Neill <bronee@gmail.com>2007-04-29 17:47:50 +0000
commit97af4be638e371a2f693bde2798fc233a143f3f9 (patch)
tree533f5d02f91eaf1db500ed4480be23b1712d214d /src/main/java/com/amazon/carbonado/OptimisticLockException.java
parent1f04eea48231dbc29ed39c100a9d4a7c7f8a8b37 (diff)
Merged in support for derived properties.
Diffstat (limited to 'src/main/java/com/amazon/carbonado/OptimisticLockException.java')
-rw-r--r--src/main/java/com/amazon/carbonado/OptimisticLockException.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/main/java/com/amazon/carbonado/OptimisticLockException.java b/src/main/java/com/amazon/carbonado/OptimisticLockException.java
index ccd894c..03004c2 100644
--- a/src/main/java/com/amazon/carbonado/OptimisticLockException.java
+++ b/src/main/java/com/amazon/carbonado/OptimisticLockException.java
@@ -89,6 +89,18 @@ public class OptimisticLockException extends PersistException {
}
/**
+ * Construct exception for when new version was expected to have increased.
+ *
+ * @param savedVersion actual persistent version number of storable
+ * @param s Storable which was acted upon
+ * @param newVersion new version which was provided
+ */
+ public OptimisticLockException(Object savedVersion, Storable s, Object newVersion) {
+ super(makeMessage(savedVersion, s, newVersion));
+ mStorable = s;
+ }
+
+ /**
* Returns the Storable which was acted upon, or null if not available.
*/
public Storable getStorable() {
@@ -114,4 +126,24 @@ public class OptimisticLockException extends PersistException {
return message;
}
+
+ private static String makeMessage(Object savedVersion, Storable s, Object newVersion) {
+ String message;
+ if (savedVersion == null && newVersion == null) {
+ message = "New version is not larger than existing version";
+ } else {
+ message = "New version of " + newVersion +
+ " is not larger than existing version of " + savedVersion;
+ }
+
+ if (s != null) {
+ if (message == null) {
+ message = s.toStringKeyOnly();
+ } else {
+ message = message + ": " + s.toStringKeyOnly();
+ }
+ }
+
+ return message;
+ }
}