@Override public boolean getBoolean(String sName) throws OmDeveloperException { boolean bValue = false; String placeholder = placeholders.get(sName); if (placeholder == null) { bValue = super.getBoolean(sName); } else { StandardQuestion sq = (StandardQuestion) getQuestion(); if (sq.isPlaceholdersInitialized()) { String placeholderReplaced = sq.applyPlaceholders(placeholder); if (placeholderReplaced.equals("yes")) { bValue = true; } else if (placeholderReplaced.equals("no")) { bValue = false; } else { StringBuffer error = new StringBuffer(); error.append('<'); error.append(getTagName()); error.append(">: property '"); error.append(sName); error.append("' must be either 'yes' or 'no'"); throw new OmFormatException(error.toString()); } } else { StringBuffer error = new StringBuffer(); error.append('<'); error.append(getTagName()); error.append(">: Placeholder "); error.append(placeholder); error.append(" for property '"); error.append(sName); error.append("' can not be replaced because placeholders have not been initialized"); throw new OmFormatException(error.toString()); } // Do specific check if defined if (checks.containsKey(sName)) { checks.get(sName).check(new Boolean(bValue)); } } return bValue; }
@Override public double getDouble(String sName) throws OmDeveloperException { double dValue = 0.0; String placeholder = placeholders.get(sName); if (placeholder == null) { dValue = super.getDouble(sName); } else { StandardQuestion sq = (StandardQuestion) getQuestion(); if (sq.isPlaceholdersInitialized()) { String placeholderReplaced = sq.applyPlaceholders(placeholder); try { dValue = Double.parseDouble(placeholderReplaced); } catch (NumberFormatException e) { StringBuffer error = new StringBuffer(); error.append('<'); error.append(getTagName()); error.append(">: property '"); error.append(sName); error.append("' is not a valid double"); throw new OmFormatException(error.toString()); } } else { StringBuffer error = new StringBuffer(); error.append('<'); error.append(getTagName()); error.append(">: Placeholder "); error.append(placeholder); error.append(" for property '"); error.append(sName); error.append("' can not be replaced because placeholders have not been initialized"); throw new OmFormatException(error.toString()); } // Do specific check if defined if (checks.containsKey(sName)) { checks.get(sName).check(new Double(dValue)); } } return dValue; }
@Override public String getString(String sName) throws OmDeveloperException { String sValue = null; String placeholder = placeholders.get(sName); if (placeholder == null) { sValue = super.getString(sName); } else { StandardQuestion sq = (StandardQuestion) getQuestion(); if (sq.isPlaceholdersInitialized()) { sValue = sq.applyPlaceholders(placeholder); } else { sValue = placeholder; } // Check properties with restrictions if (PROPERTIES_TO_INITIALIZE_PLACEHOLDERS_WITH_RESTRICTIONS.containsKey(sName)) { String restriction = PROPERTIES_TO_INITIALIZE_PLACEHOLDERS_WITH_RESTRICTIONS.get(sName); if (!sValue.matches(restriction)) { StringBuffer error = new StringBuffer(); error.append('<'); error.append(getTagName()); error.append(">: property '"); error.append(sName); error.append("' has an invalid value "); error.append(sValue); throw new OmFormatException(error.toString()); } } // Do specific check if defined if (checks.containsKey(sName)) { checks.get(sName).check(sValue); } } return sValue; }