public String toString(String defaultValue) { if (isNull()) { return defaultValue; } return values[0]; }
public Character toCharacter(Character defaultValue) { if (isNull() || values[0].length() == 0) { return defaultValue; } return values[0].charAt(0); }
public boolean toBoolean(boolean defaultValue) { if (isNull()) { return defaultValue; } switch (values[0]) { case "yes": case "on": return true; default: try { return Integer.parseInt(values[0]) > 0; } catch (NumberFormatException e) { // NaN } return Boolean.parseBoolean(values[0]); } }
public int toInt(int defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } return Integer.parseInt(values[0]); }
public long toLong(long defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } return Long.parseLong(values[0]); }
public Time toSqlTime(Time defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } return Time.valueOf(values[0]); }
public short toShort(short defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } return Short.parseShort(values[0]); }
public java.sql.Date toSqlDate(java.sql.Date defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } return java.sql.Date.valueOf(values[0]); }
public Timestamp toSqlTimestamp(Timestamp defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } return Timestamp.valueOf(values[0]); }
public byte toByte(byte defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } return Byte.parseByte(values[0]); }
public UUID toUUID(UUID defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } return UUID.fromString(values[0]); }
public Date toDate(Date defaultValue, String pattern) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); try { return dateFormat.parse(values[0]); } catch (ParseException e) { throw new PippoRuntimeException(e); } }
public <T extends Enum<?>> T toEnum(Class<T> classOfT, T defaultValue, boolean caseSensitive) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } int ordinal = Integer.MIN_VALUE; try { // attempt to interpret value as an ordinal ordinal = Integer.parseInt(values[0]); } catch (Exception e) { // do nothing } T[] constants = classOfT.getEnumConstants(); for (T constant : constants) { if (constant.ordinal() == ordinal) { return constant; } if (caseSensitive) { if (constant.name().equals(values[0])) { return constant; } } else { if (constant.name().equalsIgnoreCase(values[0])) { return constant; } } } return defaultValue; }
public float toFloat(float defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } try { Number number = getDecimalFormat().parse(values[0]); return number.floatValue(); } catch (ParseException e) { throw new PippoRuntimeException(e, "Failed to parse '{}'", values[0]); } }
public double toDouble(double defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } try { Number number = getDecimalFormat().parse(values[0]); return number.doubleValue(); } catch (ParseException e) { throw new PippoRuntimeException(e, "Failed to parse '{}'", values[0]); } }
public BigDecimal toBigDecimal(BigDecimal defaultValue) { if (isNull() || StringUtils.isNullOrEmpty(values[0])) { return defaultValue; } DecimalFormat formatter = getDecimalFormat(); formatter.setParseBigDecimal(true); try { return (BigDecimal) formatter.parse(values[0]); } catch (ParseException e) { throw new PippoRuntimeException(e, "Failed to parse '{}'", values[0]); } }
@Override public String getRequestParameter(String name) { ParameterValue parameter = getRequest().getParameter(name); return parameter.isNull() ? null : parameter.toString(); }
public List<String> toList(List<String> defaultValue) { if (isNull() || (values.length == 1 && StringUtils.isNullOrEmpty(values[0]))) { return defaultValue; } if (values.length == 1) { String tmp = values[0]; tmp = StringUtils.removeStart(tmp, "["); tmp = StringUtils.removeEnd(tmp, "]"); return StringUtils.getList(tmp, "(,|\\|)"); } return Arrays.asList(values); }