From 24be482a78bf9f08a61d12db7403f0ea11715356 Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Tue, 24 Apr 2012 18:49:03 +0100 Subject: [PATCH] Refactoring the classes ExpenseSheet and ExpenseSheetLine FEA: ItEr76S22ExpenseTrackingSystem --- .../expensesheet/entities/ExpenseSheet.java | 29 ++---- .../entities/ExpenseSheetLine.java | 13 +-- .../src/main/resources/db.changelog-1.2.xml | 11 ++- .../entities/ExpenseSheets.hbm.xml | 96 ++++++++++--------- 4 files changed, 78 insertions(+), 71 deletions(-) diff --git a/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java b/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java index 2cacbb9b2..7eada5f49 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java +++ b/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java @@ -33,7 +33,6 @@ import org.hibernate.validator.Valid; import org.libreplan.business.common.IntegrationEntity; import org.libreplan.business.common.Registry; import org.libreplan.business.common.entities.EntitySequence; -import org.libreplan.business.common.exceptions.ValidationException; import org.libreplan.business.expensesheet.daos.IExpenseSheetDAO; /** @@ -52,13 +51,14 @@ public class ExpenseSheet extends IntegrationEntity { private String description; @Valid - @NotEmpty(message = "the expense sheet must have least a expense sheet line.") - @NotNull(message = "the expense sheet must have least a expense sheet line.") private SortedSet expenseSheetLines = new TreeSet( new ExpenseSheetLineComparator()); private Integer lastExpenseSheetLineSequenceCode = 0; + /** + * Constructor for Hibernate. Do not use! + */ protected ExpenseSheet() { } @@ -69,15 +69,11 @@ public class ExpenseSheet extends IntegrationEntity { } public static ExpenseSheet create() { - ExpenseSheet expenseSheet = new ExpenseSheet(); - expenseSheet.setNewObject(true); - return expenseSheet; + return create(new ExpenseSheet()); } public static ExpenseSheet create(Date firstExpense, Date lastExpense, BigDecimal total) { - ExpenseSheet expenseSheet = new ExpenseSheet(firstExpense, lastExpense, total); - expenseSheet.setNewObject(true); - return expenseSheet; + return create(new ExpenseSheet(firstExpense, lastExpense, total)); } @Override @@ -105,16 +101,14 @@ public class ExpenseSheet extends IntegrationEntity { this.total = total; } - @Min(message = "length less than 0", value = 0) + @Min(message = "total must be greater or equal than 0", value = 0) @NotNull(message = "total not specified") public BigDecimal getTotal() { return total; } - public void setExpenseSheetLines(SortedSet expenseSheetLines) { - this.expenseSheetLines = expenseSheetLines; - } - + @NotEmpty(message = "the expense sheet must have least a expense sheet line.") + @NotNull(message = "the expense sheet must have least a expense sheet line.") public SortedSet getExpenseSheetLines() { return Collections.unmodifiableSortedSet(expenseSheetLines); } @@ -141,11 +135,6 @@ public class ExpenseSheet extends IntegrationEntity { return getFirstRepeatedCode(this.expenseSheetLines) == null; } - @AssertTrue(message = "The expense sheet line collection cannot be empty or null.") - public boolean checkConstraintNotEmptyExpenseSheetLines() { - return ((getExpenseSheetLines() != null) && (!getExpenseSheetLines().isEmpty())); - } - public void generateExpenseSheetLineCodes(int numberOfDigits) { for (ExpenseSheetLine line : this.getExpenseSheetLines()) { if ((line.getCode() == null) || (line.getCode().isEmpty()) @@ -183,7 +172,7 @@ public class ExpenseSheet extends IntegrationEntity { } } - public void updateTotal() throws ValidationException { + public void updateTotal() { this.setTotal(new BigDecimal(0)); for (ExpenseSheetLine line : this.expenseSheetLines) { if (line.getValue() != null) { diff --git a/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheetLine.java b/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheetLine.java index 1d84b3b89..bacbd7e24 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheetLine.java +++ b/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheetLine.java @@ -49,11 +49,14 @@ public class ExpenseSheetLine extends IntegrationEntity { private ExpenseSheet expenseSheet; + /** + * Constructor for Hibernate. Do not use! + */ protected ExpenseSheetLine() { } - protected ExpenseSheetLine(BigDecimal value, String concept, Date date, + private ExpenseSheetLine(BigDecimal value, String concept, Date date, OrderElement orderElement) { this.orderElement = orderElement; this.concept = concept; @@ -63,9 +66,7 @@ public class ExpenseSheetLine extends IntegrationEntity { public static ExpenseSheetLine create(BigDecimal value, String concept, Date date, OrderElement orderElement) { - ExpenseSheetLine expenseSheetLine = new ExpenseSheetLine(value, concept, date, orderElement); - expenseSheetLine.setNewObject(true); - return create(expenseSheetLine); + return create(new ExpenseSheetLine(value, concept, date, orderElement)); } public void setValue(BigDecimal value) { @@ -88,8 +89,8 @@ public class ExpenseSheetLine extends IntegrationEntity { return true; } - @Min(message = "length less than 0", value = 0) - @NotNull(message = "total not specified") + @Min(message = "value must be greater or equal than 0", value = 0) + @NotNull(message = "value not specified") public BigDecimal getValue() { return value; } diff --git a/libreplan-business/src/main/resources/db.changelog-1.2.xml b/libreplan-business/src/main/resources/db.changelog-1.2.xml index 19602fb36..ba00658ea 100644 --- a/libreplan-business/src/main/resources/db.changelog-1.2.xml +++ b/libreplan-business/src/main/resources/db.changelog-1.2.xml @@ -202,9 +202,18 @@ + + + - + Add new column to generate the code for expense sheet in configuration table diff --git a/libreplan-business/src/main/resources/org/libreplan/business/expensesheets/entities/ExpenseSheets.hbm.xml b/libreplan-business/src/main/resources/org/libreplan/business/expensesheets/entities/ExpenseSheets.hbm.xml index 9d41db9a3..d5b73b879 100644 --- a/libreplan-business/src/main/resources/org/libreplan/business/expensesheets/entities/ExpenseSheets.hbm.xml +++ b/libreplan-business/src/main/resources/org/libreplan/business/expensesheets/entities/ExpenseSheets.hbm.xml @@ -1,63 +1,71 @@ - + - - - - - - 100 - - - - + + + + + + 100 + + + + - - - + + + - + - + - + - + - - - - - - 100 - - - + + + + + + 100 + + + - + - + - + - + - + - + - + - - - - - + + + + + - + - + \ No newline at end of file