From ac1b654e1edb03b372de58cbcc88242bc896cbd0 Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Tue, 15 Dec 2009 22:02:41 +0100 Subject: [PATCH] ItEr38S05ValidacionEProbasFuncionaisItEr37S06: [Bug #117]It fixes the following error : Batch update exception when trying to save a WorkReportType. --- .../WorkReportLabelTypeAssigment.java | 10 +++---- .../workreports/entities/WorkReportType.java | 26 ++++++++++--------- .../valueobjects/DescriptionField.java | 12 ++++----- .../workreports/entities/WorkReports.hbm.xml | 6 ++--- .../entities/WorkReportTypeTest.java | 20 +++++++------- .../web/workreports/WorkReportModel.java | 8 +++--- .../web/workreports/WorkReportTypeModel.java | 18 ++++++++----- 7 files changed, 53 insertions(+), 47 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLabelTypeAssigment.java b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLabelTypeAssigment.java index 0034c0546..98e276ec1 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLabelTypeAssigment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLabelTypeAssigment.java @@ -94,14 +94,14 @@ public class WorkReportLabelTypeAssigment extends BaseEntity implements /* Methos for the index */ - private Integer index; + private Integer positionNumber; - public Integer getIndex() { - return index; + public Integer getPositionNumber() { + return positionNumber; } - public void setIndex(Integer index) { - this.index = index; + public void setPositionNumber(Integer positionNumber) { + this.positionNumber = positionNumber; } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportType.java b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportType.java index 1355f6a8a..0f4b855ea 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportType.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportType.java @@ -311,7 +311,7 @@ public class WorkReportType extends BaseEntity { int position) { if (isValidIndexToAdd(position, getLineFieldsAndLabels())) { updateIndexFromPosition(getLineFieldsAndLabels(), position, 1); - descriptionField.setIndex(position); + descriptionField.setPositionNumber(position); getLineFields().add(descriptionField); } } @@ -320,7 +320,7 @@ public class WorkReportType extends BaseEntity { int position) { if (isValidIndexToAdd(position, getHeadingFieldsAndLabels())) { updateIndexFromPosition(getHeadingFieldsAndLabels(), position, 1); - descriptionField.setIndex(position); + descriptionField.setPositionNumber(position); getHeadingFields().add(descriptionField); } } @@ -331,7 +331,7 @@ public class WorkReportType extends BaseEntity { if (isValidIndexToAdd(position, getHeadingFieldsAndLabels())) { updateIndexFromPosition(getHeadingFieldsAndLabels(), position, 1); workReportLabelTypeAssigment.setLabelsSharedByLines(true); - workReportLabelTypeAssigment.setIndex(position); + workReportLabelTypeAssigment.setPositionNumber(position); getWorkReportLabelTypeAssigments() .add(workReportLabelTypeAssigment); } @@ -343,7 +343,9 @@ public class WorkReportType extends BaseEntity { if (isValidIndexToAdd(position, getLineFieldsAndLabels())) { updateIndexFromPosition(getLineFieldsAndLabels(), position, 1); workReportLabelTypeAssigment.setLabelsSharedByLines(false); - workReportLabelTypeAssigment.setIndex(position); + workReportLabelTypeAssigment.setPositionNumber( + + position); getWorkReportLabelTypeAssigments() .add(workReportLabelTypeAssigment); } @@ -409,11 +411,11 @@ public class WorkReportType extends BaseEntity { if (getHeadingFields().contains(descriptionField)) { getHeadingFields().remove(descriptionField); updateIndexFromPosition(getHeadingFieldsAndLabels(), - descriptionField.getIndex(), -1); + descriptionField.getPositionNumber(), -1); } else { getLineFields().remove(descriptionField); updateIndexFromPosition(getLineFieldsAndLabels(), descriptionField - .getIndex(), -1); + .getPositionNumber(), -1); } } @@ -422,18 +424,18 @@ public class WorkReportType extends BaseEntity { getWorkReportLabelTypeAssigments().remove(workReportLabelTypeAssigment); if (workReportLabelTypeAssigment.getLabelsSharedByLines()) { updateIndexFromPosition(getHeadingFieldsAndLabels(), - workReportLabelTypeAssigment.getIndex(), -1); + workReportLabelTypeAssigment.getPositionNumber(), -1); } else { updateIndexFromPosition(getLineFieldsAndLabels(), - workReportLabelTypeAssigment.getIndex(), -1); + workReportLabelTypeAssigment.getPositionNumber(), -1); } } private void setIndex(Object object, Integer index) { if (object instanceof DescriptionField) { - ((DescriptionField) object).setIndex(index); + ((DescriptionField) object).setPositionNumber(index); } else { - ((WorkReportLabelTypeAssigment) object).setIndex(index); + ((WorkReportLabelTypeAssigment) object).setPositionNumber(index); } } @@ -520,9 +522,9 @@ public class WorkReportType extends BaseEntity { private Integer getIndex(Object object) { if (object instanceof DescriptionField) { - return ((DescriptionField) object).getIndex(); + return ((DescriptionField) object).getPositionNumber(); } else { - return ((WorkReportLabelTypeAssigment) object).getIndex(); + return ((WorkReportLabelTypeAssigment) object).getPositionNumber(); } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/valueobjects/DescriptionField.java b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/valueobjects/DescriptionField.java index 91da68d43..4e85e106d 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/valueobjects/DescriptionField.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/valueobjects/DescriptionField.java @@ -45,7 +45,7 @@ public class DescriptionField implements INewObject { return descriptionField; } - private DescriptionField() { + public DescriptionField() { } private DescriptionField(String fieldName, Integer lenght) { @@ -88,14 +88,14 @@ public class DescriptionField implements INewObject { /* Methos for the index */ - private Integer index; + private Integer positionNumber; - public Integer getIndex() { - return index; + public Integer getPositionNumber() { + return positionNumber; } - public void setIndex(Integer index) { - this.index = index; + public void setPositionNumber(Integer positionNumber) { + this.positionNumber = positionNumber; } } diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/workreports/entities/WorkReports.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/workreports/entities/WorkReports.hbm.xml index 0c415c4a8..17dbfa5dd 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/workreports/entities/WorkReports.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/workreports/entities/WorkReports.hbm.xml @@ -33,7 +33,7 @@ - + @@ -42,7 +42,7 @@ - + @@ -132,7 +132,7 @@ - + diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/entities/WorkReportTypeTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/entities/WorkReportTypeTest.java index ef7676296..d15839134 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/entities/WorkReportTypeTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/entities/WorkReportTypeTest.java @@ -300,10 +300,10 @@ public class WorkReportTypeTest extends AbstractWorkReportTest { WorkReportLabelTypeAssigment labelAssigment_3 = createValidWorkReportLabelTypeAssigment(); workReportType.addLabelAssigmentToEndLine(labelAssigment_3); - // Set repeat indes labels - labelAssigment_1.setIndex(3); - labelAssigment_2.setIndex(0); - labelAssigment_3.setIndex(2); + // Set not consecutives index labels + labelAssigment_1.setPositionNumber(3); + labelAssigment_2.setPositionNumber(0); + labelAssigment_3.setPositionNumber(2); try { workReportTypeDAO.save(workReportType); @@ -326,9 +326,9 @@ public class WorkReportTypeTest extends AbstractWorkReportTest { workReportType.addLabelAssigmentToEndLine(labelAssigment_3); // Set repeat indes labels - labelAssigment_1.setIndex(1); - labelAssigment_2.setIndex(2); - labelAssigment_3.setIndex(3); + labelAssigment_1.setPositionNumber(1); + labelAssigment_2.setPositionNumber(2); + labelAssigment_3.setPositionNumber(3); try { workReportTypeDAO.save(workReportType); @@ -351,9 +351,9 @@ public class WorkReportTypeTest extends AbstractWorkReportTest { workReportType.addLabelAssigmentToEndLine(labelAssigment_3); // Set repeat indes labels - labelAssigment_1.setIndex(1); - labelAssigment_2.setIndex(0); - labelAssigment_3.setIndex(1); + labelAssigment_1.setPositionNumber(1); + labelAssigment_2.setPositionNumber(0); + labelAssigment_3.setPositionNumber(1); try { workReportTypeDAO.save(workReportType); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java index c9f5360d4..1bdffe295 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java @@ -396,7 +396,7 @@ public class WorkReportModel implements IWorkReportModel { for (WorkReportLabelTypeAssigment labelTypeAssigment : getWorkReportType() .getWorkReportLabelTypeAssigments()) { if(labelTypeAssigment.getLabelType().equals(label.getType())){ - return labelTypeAssigment.getIndex(); + return labelTypeAssigment.getPositionNumber(); } } return null; @@ -425,16 +425,16 @@ public class WorkReportModel implements IWorkReportModel { if (object instanceof DescriptionValue) { DescriptionField descriptionField = getDescriptionFieldByName(((DescriptionValue) object) .getFieldName()); - return descriptionField.getIndex(); + return descriptionField.getPositionNumber(); } if (object instanceof Label) { return getAssignedLabelIndex((Label) object); } if (object instanceof DescriptionField) { - return ((DescriptionField) object).getIndex(); + return ((DescriptionField) object).getPositionNumber(); } if (object instanceof WorkReportLabelTypeAssigment) { - return ((WorkReportLabelTypeAssigment) object).getIndex(); + return ((WorkReportLabelTypeAssigment) object).getPositionNumber(); } return null; } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java index 047f9e0ae..df05ad4aa 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java @@ -459,31 +459,35 @@ public class WorkReportTypeModel implements IWorkReportTypeModel { private int getIndex(Object object) { if (object instanceof DescriptionField) { - return ((DescriptionField) object).getIndex(); + return ((DescriptionField) object).getPositionNumber(); } else { - return ((WorkReportLabelTypeAssigment) object).getIndex(); + return ((WorkReportLabelTypeAssigment) object).getPositionNumber(); } } public void upFieldOrLabel(Object objectToUp, boolean intoHeading) { if (objectToUp instanceof DescriptionField) { - int newPosition = ((DescriptionField) objectToUp).getIndex() - 1; + int newPosition = ((DescriptionField) objectToUp) + .getPositionNumber() - 1; moveDescriptionField((DescriptionField) objectToUp, intoHeading, newPosition); } else { - int newPosition = ((WorkReportLabelTypeAssigment) objectToUp).getIndex()-1; + int newPosition = ((WorkReportLabelTypeAssigment) objectToUp) + .getPositionNumber() - 1; moveWorkReportLabelTypeAssigment( - (WorkReportLabelTypeAssigment) objectToUp, intoHeading, newPosition); + (WorkReportLabelTypeAssigment) objectToUp, intoHeading, + newPosition); } } public void downFieldOrLabel(Object objectToDown, boolean intoHeading) { if (objectToDown instanceof DescriptionField) { - int newPosition = ((DescriptionField) objectToDown).getIndex() + 1; + int newPosition = ((DescriptionField) objectToDown) + .getPositionNumber() + 1; moveDescriptionField((DescriptionField) objectToDown, intoHeading, newPosition); } else { int newPosition = ((WorkReportLabelTypeAssigment) objectToDown) - .getIndex() + 1; + .getPositionNumber() + 1; moveWorkReportLabelTypeAssigment( (WorkReportLabelTypeAssigment) objectToDown, intoHeading, newPosition);