From 6d80c72ab9fdba702d60e8d76d4f5a7c06f8c133 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 16 Feb 2011 07:22:12 +0100 Subject: [PATCH] Added constraint to detect issue before saving wrong data. FEA: ItEr70S04BugFixing --- .../business/orders/entities/OrderLineGroup.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java index 6d3ece7e6..730475ec8 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java @@ -36,6 +36,7 @@ import java.util.SortedSet; import java.util.TreeSet; import org.apache.commons.lang.StringUtils; +import org.hibernate.validator.AssertTrue; import org.hibernate.validator.Valid; import org.joda.time.LocalDate; import org.navalplanner.business.advance.bootstrap.PredefinedAdvancedTypes; @@ -1048,4 +1049,17 @@ public class OrderLineGroup extends OrderElement implements return result; } + @AssertTrue(message = "indirect advance assignments should have different types") + public boolean checkConstraintIndirectAdvanceAssignmentsWithDifferentType() { + Set types = new HashSet(); + for (IndirectAdvanceAssignment each : indirectAdvanceAssignments) { + String type = each.getAdvanceType().getUnitName(); + if (types.contains(type)) { + return false; + } + types.add(type); + } + return true; + } + }