X-Git-Url: https://satomichan.jp/gitweb/?p=nucalgen;a=blobdiff_plain;f=nucalgen%2Fsrc%2Fmain%2Fjava%2Fjp%2Fsatomichan%2Fnucalgen%2FNutritionColumnHolder.java;fp=nucalgen%2Fsrc%2Fmain%2Fjava%2Fjp%2Fsatomichan%2Fnucalgen%2FNutritionColumnHolder.java;h=8067ef4b5a8e18639c68bfa4da9c75f935440b61;hp=e20d7994094b4e5e54e7412824aa2531ff996b1c;hb=bcdb2cb3b4097c8bf9d661e888e0ea56b258a730;hpb=288847d89d13ec0b30a06370505c148b08ed3d55 diff --git a/nucalgen/src/main/java/jp/satomichan/nucalgen/NutritionColumnHolder.java b/nucalgen/src/main/java/jp/satomichan/nucalgen/NutritionColumnHolder.java index e20d799..8067ef4 100644 --- a/nucalgen/src/main/java/jp/satomichan/nucalgen/NutritionColumnHolder.java +++ b/nucalgen/src/main/java/jp/satomichan/nucalgen/NutritionColumnHolder.java @@ -1,8 +1,10 @@ package jp.satomichan.nucalgen; import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; public class NutritionColumnHolder { @@ -17,26 +19,32 @@ public class NutritionColumnHolder { this.nutritionColumnList.add(aNutritionColumn); } - NutritionColumnHolder(XMLConfiguration aConfig){ + NutritionColumnHolder(String columnsXmlFileName){ + XMLConfiguration aConfig = new XMLConfiguration(); + aConfig.setDelimiterParsingDisabled(true); + + try { + aConfig.load(columnsXmlFileName); + } catch (ConfigurationException e) { + // TODO 自動生成された catch ブロック + e.printStackTrace(); + } + this.nutritionColumnList = new ArrayList(); - List names = aConfig.getList("cols.column.name"); - List dispNames = aConfig.getList("cols.column.disp_name"); - List aliases = aConfig.getList("cols.column.alias"); - List formats = aConfig.getList("cols.column.format"); - List units = aConfig.getList("cols.column.unit"); - List useRawValue = aConfig.getList("cols.column.use_raw_value"); - List useSum = aConfig.getList("cols.column.use_sum"); + for (int index = 0; index < getRepetition(aConfig,"cols.column.no"); index++) { + final String colIndex = "cols.column(" + index + ")."; - for (Object aName : names) { NutritionColumn nc = new NutritionColumn(); - nc.setName((String) aName); - nc.setDispName((String) dispNames.get(names.indexOf(aName))); - nc.setAlias((String) aliases.get(names.indexOf(aName))); - nc.setFormat((String) formats.get(names.indexOf(aName))); - nc.setUnit((String) units.get(names.indexOf(aName))); - nc.setUseRawValue(((String)useRawValue.get(names.indexOf(aName))).equalsIgnoreCase("true")); - nc.setUseSum(((String)useSum.get(names.indexOf(aName))).equalsIgnoreCase("true")); + nc.setName(aConfig.getString(colIndex + "name", "")); + nc.setTable(aConfig.getString(colIndex + "table", "")); + nc.setDispName(aConfig.getString(colIndex + "disp_name", "")); + nc.setAlias(aConfig.getString(colIndex + "alias", "")); + nc.setFormula(aConfig.getString(colIndex + "formula", "")); + nc.setFormat(aConfig.getString(colIndex + "format", "")); + nc.setUnit(aConfig.getString(colIndex + "unit")); + nc.setUseRawValue(aConfig.getString(colIndex + "use_raw_value", "").equalsIgnoreCase("true")); + nc.setUseSum(aConfig.getString(colIndex + "use_sum", "").equalsIgnoreCase("true")); this.addNutritionColumn(nc); } @@ -55,4 +63,41 @@ public class NutritionColumnHolder { + public int indexOf(String alias) { + for(int i = 0; i <= this.nutritionColumnList.size(); i++) { + if(this.nutritionColumnList.get(i).getAlias().equals(alias)) { + return i; + } + } + + return -1; + } + + + public List getNutritionAliasList(){ + List retAliasList = new ArrayList(); + + for(NutritionColumn aColumn : this.getNutritionColumnList()) { + if(aColumn.getAlias().length() > 0) { + retAliasList.add(aColumn.getAlias()); + } + } + + return retAliasList; + } + + + private static int getRepetition( + final XMLConfiguration config, + final String path) { + Object obj = config.getProperty(path); + + if (obj == null) { + return 0; + } else if (obj instanceof Collection) { + return ((Collection) obj).size(); + } + + return 1; + } } \ No newline at end of file