Patch to add some more overloads to OCLExpressions --------------------------------------------------
Key: OCL-18 URL: http://jira.andromda.org/browse/OCL-18 Project: OCL Translation Type: Improvement Components: AndroMDA Validation Versions: 3.1M1 Reporter: Justin Haddad Assigned to: Chad Brandon Priority: Minor Below is a patch that adds a few overloads of less/greater/etc. methods. These result from some initial testing that I did with adding OCL constraints on entities and having the constraints be generated by the HibernateEntity.vsl template. These resolved some compilation errors, as well as runtime ClassCastException (e.g. Long being passed into Integer.compareTo). -------------------------------------------------------- diff -ru --- .../andromda-src-3.1-M1/translation-libraries/ocl/andromda-validation/src/java/org/andromda/translation/ocl/validation/OCLExpressions.java 2005-08-12 13:05:47.000000000 -0400 +++ .../andromda-src-3.1-patched/translation-libraries/ocl/andromda-validation/src/java/org/andromda/translation/ocl/validation/OCLExpressions.java 2005-11-28 11:52:35.000000000 -0500 @@ -135,6 +135,37 @@ return (first == null) ? (second == null) : (first.compareTo(second) < 0); } + public static boolean less(Object first, Object second) + { + boolean less = first != null && Comparable.class.isAssignableFrom(first.getClass()); + if(less) { + less = ((Comparable)first).compareTo(second) < 0; + } + return less; + } + + public static boolean less(Object first, long second) + { + boolean less = first != null && Comparable.class.isAssignableFrom(first.getClass()); + if (less) + { + Comparable comparable = (Comparable)first; + less = comparable.compareTo(new Long(second)) < 0; + } + return less; + } + + public static boolean less(Object first, int second) + { + boolean less = first != null && Comparable.class.isAssignableFrom(first.getClass()); + if (less) + { + Comparable comparable = (Comparable)first; + less = comparable.compareTo(new Integer(second)) < 0; + } + return less; + } + public static boolean less(int first, int second) { return first < second; @@ -175,6 +206,15 @@ return (first == null) ? (second == null) : (first.compareTo(second) <= 0); } + public static boolean lessOrEqual(Object first, Object second) + { + boolean less = first != null && Comparable.class.isAssignableFrom(first.getClass()); + if(less) { + less = ((Comparable)first).compareTo(second) <= 0; + } + return less; + } + public static boolean lessOrEqual(int first, int second) { return first <= second; @@ -215,6 +255,26 @@ return (first == null) ? (second == null) : (first.compareTo(second) > 0); } + public static boolean greater(Object first, Object second) + { + boolean greater = first != null && Comparable.class.isAssignableFrom(first.getClass()); + if(greater) { + greater = ((Comparable)first).compareTo(second) > 0; + } + return greater; + } + + public static boolean greater(Object first, int second) + { + boolean greater = first != null && Comparable.class.isAssignableFrom(first.getClass()); + if (greater) + { + Comparable comparable = (Comparable)first; + greater = comparable.compareTo(new Integer(second)) > 0; + } + return greater; + } + public static boolean greater(Object first, long second) { boolean greater = first != null && Comparable.class.isAssignableFrom(first.getClass()); @@ -266,11 +326,31 @@ return (first == null) ? (second == null) : (first.compareTo(second) >= 0); } + public static boolean greaterOrEqual(Object first, Object second) + { + boolean greater = first != null && Comparable.class.isAssignableFrom(first.getClass()); + if(greater) { + greater = ((Comparable)first).compareTo(second) >= 0; + } + return greater; + } + public static boolean greaterOrEqual(int first, int second) { return first >= second; } + public static boolean greaterOrEqual(Object first, long second) + { + boolean greater = first != null && Comparable.class.isAssignableFrom(first.getClass()); + if (greater) + { + Comparable comparable = (Comparable)first; + greater = comparable.compareTo(new Long(second)) >= 0; + } + return greater; + } + public static boolean greaterOrEqual(short first, short second) { return first >= second; ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click