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 @@ +