From e1efe3d7be188d1aa0f9ec305282853b30e4ec72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 4 Aug 2009 13:48:04 +0200 Subject: [PATCH] ItEr20S07CUIntroducionAvanceUnidadeTraballoItEr19S12: Retrieving default types from enum. --- .../DefaultAdvanceTypesBootstrapListener.java | 25 +++----------- .../bootstrap/PredefinedAdvancedTypes.java | 33 +++++++++++++++++++ 2 files changed, 37 insertions(+), 21 deletions(-) create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/bootstrap/PredefinedAdvancedTypes.java diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/bootstrap/DefaultAdvanceTypesBootstrapListener.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/bootstrap/DefaultAdvanceTypesBootstrapListener.java index 5de4dccb4..092c9a7b2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/bootstrap/DefaultAdvanceTypesBootstrapListener.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/bootstrap/DefaultAdvanceTypesBootstrapListener.java @@ -1,10 +1,7 @@ package org.navalplanner.web.bootstrap; -import java.math.BigDecimal; - import org.navalplanner.business.IDataBootstrap; import org.navalplanner.business.advance.daos.IAdvanceTypeDAO; -import org.navalplanner.business.advance.entities.AdvanceType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @@ -20,24 +17,10 @@ public class DefaultAdvanceTypesBootstrapListener implements IDataBootstrap { @Transactional @Override public void loadRequiredData() { - - if (!advanceTypeDAO.existsNameAdvanceType("porcentaxe")) { - BigDecimal defaultMaxValue = new BigDecimal(100).setScale(2, - BigDecimal.ROUND_HALF_UP); - BigDecimal precision = new BigDecimal(0.01).setScale(4, - BigDecimal.ROUND_HALF_UP); - AdvanceType advanceTypePorcentaxe = new AdvanceType("porcentaxe", - defaultMaxValue, false, precision, true); - advanceTypeDAO.save(advanceTypePorcentaxe); - } - if (!advanceTypeDAO.existsNameAdvanceType("unidades")) { - BigDecimal defaultMaxValue = new BigDecimal(Integer.MAX_VALUE) - .setScale(2, BigDecimal.ROUND_HALF_UP); - BigDecimal precision = new BigDecimal(1).setScale(4, - BigDecimal.ROUND_HALF_UP); - AdvanceType advanceTypeUnidades = new AdvanceType("unidades", - defaultMaxValue, false, precision, true); - advanceTypeDAO.save(advanceTypeUnidades); + for (PredefinedAdvancedTypes predefinedType : PredefinedAdvancedTypes.values()) { + if (!advanceTypeDAO.existsNameAdvanceType(predefinedType.getTypeName())) { + advanceTypeDAO.save(predefinedType.createType()); + } } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/bootstrap/PredefinedAdvancedTypes.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/bootstrap/PredefinedAdvancedTypes.java new file mode 100644 index 000000000..5290d47b3 --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/bootstrap/PredefinedAdvancedTypes.java @@ -0,0 +1,33 @@ +package org.navalplanner.web.bootstrap; + +import java.math.BigDecimal; + +import org.navalplanner.business.advance.entities.AdvanceType; + +public enum PredefinedAdvancedTypes { + PERCENTAGE("porcentaxe", new BigDecimal(100), new BigDecimal(0.01)), UNITS( + "unidades", new BigDecimal(Integer.MAX_VALUE), new BigDecimal(1)); + + private PredefinedAdvancedTypes(String name, BigDecimal defaultMaxValue, + BigDecimal precision) { + this.name = name; + this.defaultMaxValue = defaultMaxValue.setScale(4, + BigDecimal.ROUND_HALF_UP); + this.precision = precision.setScale(4, BigDecimal.ROUND_HALF_UP); + } + + private final String name; + + private final BigDecimal defaultMaxValue; + + private final BigDecimal precision; + + public AdvanceType createType() { + return new AdvanceType(name, defaultMaxValue, false, precision, true); + } + + public String getTypeName() { + return name; + } + +}