From e82812788b69f14664ca1241d1cec5277acd51cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 3 Aug 2010 12:10:23 +0200 Subject: [PATCH] ItEr60S04ValidacionEProbasFuncionaisItEr59S04: [Bug #557] Add field predefinedTypeInternalName. This will allow to keep track of the original predefined criterion type inspite of changing the name of the criterion type. --- .../PredefinedCriterionTypesProvider.java | 2 +- .../resources/entities/CriterionType.java | 21 ++++++++++++++++++- .../entities/PredefinedCriterionTypes.java | 2 +- .../resources/entities/Resources.hbm.xml | 1 + 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/bootstrap/PredefinedCriterionTypesProvider.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/bootstrap/PredefinedCriterionTypesProvider.java index 2e04d2662..043ccf99d 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/bootstrap/PredefinedCriterionTypesProvider.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/bootstrap/PredefinedCriterionTypesProvider.java @@ -46,7 +46,7 @@ public class PredefinedCriterionTypesProvider implements ICriterionTypeProvider public Map> getRequiredCriterions() { Map> result = new HashMap>(); for (PredefinedCriterionTypes type : PredefinedCriterionTypes.values()) { - result.put(CriterionType.asCriterionType(type), type.getPredefined()); + result.put(CriterionType.fromPredefined(type), type.getPredefined()); } return result; } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java index 346801122..07918d4fa 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java @@ -129,6 +129,14 @@ public class CriterionType extends IntegrationEntity implements private String name; + /** + * The original name of the criterion type. It only exists for + * CriterionTypes created from {@link PredefinedCriterionTypes}. Important: + * This value must not be editable and should only be set + * at creation time + */ + private String predefinedTypeInternalName; + private String description; private Boolean allowHierarchy = true; @@ -167,6 +175,13 @@ public class CriterionType extends IntegrationEntity implements this.resource = resource; } + public static CriterionType fromPredefined( + PredefinedCriterionTypes predefinedType) { + CriterionType result = asCriterionType(predefinedType); + result.predefinedTypeInternalName = predefinedType.getName(); + return result; + } + public static CriterionType asCriterionType(ICriterionType criterionType) { return create(criterionType.getName(),criterionType.getDescription(), criterionType.allowHierarchy(), criterionType @@ -191,6 +206,10 @@ public class CriterionType extends IntegrationEntity implements return name; } + public String getPredefinedTypeInternalName() { + return predefinedTypeInternalName; + } + public void setName(String name) { this.name = name; } @@ -239,7 +258,7 @@ public class CriterionType extends IntegrationEntity implements PredefinedCriterionTypes predefinedCriterionType, String name) { CriterionType criterionType = CriterionType - .asCriterionType(predefinedCriterionType); + .fromPredefined(predefinedCriterionType); return Criterion.withNameAndType(name, criterionType); } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/PredefinedCriterionTypes.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/PredefinedCriterionTypes.java index 21d956a33..1ca8df1b4 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/PredefinedCriterionTypes.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/PredefinedCriterionTypes.java @@ -119,7 +119,7 @@ public enum PredefinedCriterionTypes implements ICriterionType { @Override public Criterion createCriterion(String name) { - return Criterion.create(name, CriterionType.asCriterionType(this)); + return Criterion.create(name, CriterionType.fromPredefined(this)); } @Override diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml index 314b42a68..6fa8c10ac 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml @@ -163,6 +163,7 @@ +