List of usage examples for java.text DateFormat parseObject
public Object parseObject(String source) throws ParseException
From source file:nl.nn.adapterframework.parameters.Parameter.java
/** * determines the raw value //from w w w.j a va2 s .c o m * @param alreadyResolvedParameters * @return the raw value as object * @throws IbisException */ public Object getValue(ParameterValueList alreadyResolvedParameters, ParameterResolutionContext prc) throws ParameterException { Object result = null; log.debug("Calculating value for Parameter [" + getName() + "]"); if (!configured) { throw new ParameterException("Parameter [" + getName() + "] not configured"); } TransformerPool pool = getTransformerPool(); if (pool != null) { try { Object transformResult = null; Source source = null; if (StringUtils.isNotEmpty(getValue())) { source = XmlUtils.stringToSourceForSingleUse(getValue(), prc.isNamespaceAware()); } else if (StringUtils.isNotEmpty(getSessionKey())) { String sourceString; Object sourceObject = prc.getSession().get(getSessionKey()); if (TYPE_LIST.equals(getType()) && sourceObject instanceof List) { List<String> items = (List<String>) sourceObject; XmlBuilder itemsXml = new XmlBuilder("items"); for (Iterator<String> it = items.iterator(); it.hasNext();) { String item = it.next(); XmlBuilder itemXml = new XmlBuilder("item"); itemXml.setValue(item); itemsXml.addSubElement(itemXml); } sourceString = itemsXml.toXML(); } else if (TYPE_MAP.equals(getType()) && sourceObject instanceof Map) { Map<String, String> items = (Map<String, String>) sourceObject; XmlBuilder itemsXml = new XmlBuilder("items"); for (Iterator<String> it = items.keySet().iterator(); it.hasNext();) { String item = it.next(); XmlBuilder itemXml = new XmlBuilder("item"); itemXml.addAttribute("name", item); itemXml.setValue(items.get(item)); itemsXml.addSubElement(itemXml); } sourceString = itemsXml.toXML(); } else { sourceString = (String) sourceObject; } if (StringUtils.isNotEmpty(sourceString)) { log.debug("Parameter [" + getName() + "] using sessionvariable [" + getSessionKey() + "] as source for transformation"); source = XmlUtils.stringToSourceForSingleUse(sourceString, prc.isNamespaceAware()); } else { log.debug("Parameter [" + getName() + "] sessionvariable [" + getSessionKey() + "] empty, no transformation will be performed"); } } else if (StringUtils.isNotEmpty(getPattern())) { String sourceString = format(alreadyResolvedParameters, prc); if (StringUtils.isNotEmpty(sourceString)) { log.debug("Parameter [" + getName() + "] using pattern [" + getPattern() + "] as source for transformation"); source = XmlUtils.stringToSourceForSingleUse(sourceString, prc.isNamespaceAware()); } else { log.debug("Parameter [" + getName() + "] pattern [" + getPattern() + "] empty, no transformation will be performed"); } } else { source = prc.getInputSource(); } if (source != null) { if (transformerPoolRemoveNamespaces != null) { String rnResult = transformerPoolRemoveNamespaces.transform(source, null); source = XmlUtils.stringToSource(rnResult); } transformResult = transform(source, prc); } if (!(transformResult instanceof String) || StringUtils.isNotEmpty((String) transformResult)) { result = transformResult; } } catch (Exception e) { throw new ParameterException( "Parameter [" + getName() + "] exception on transformation to get parametervalue", e); } } else { if (StringUtils.isNotEmpty(getSessionKey())) { result = prc.getSession().get(getSessionKey()); } else if (StringUtils.isNotEmpty(getPattern())) { result = format(alreadyResolvedParameters, prc); } else if (StringUtils.isNotEmpty(getValue())) { result = getValue(); } else { result = prc.getInput(); } } if (result != null) { if (log.isDebugEnabled()) { log.debug("Parameter [" + getName() + "] resolved to [" + (isHidden() ? hide(result.toString()) : result) + "]"); } } else { // if value is null then return specified default value StringTokenizer stringTokenizer = new StringTokenizer(getDefaultValueMethods(), ","); while (result == null && stringTokenizer.hasMoreElements()) { String token = stringTokenizer.nextToken(); if ("defaultValue".equals(token)) { result = getDefaultValue(); } else if ("sessionKey".equals(token)) { result = prc.getSession().get(getSessionKey()); } else if ("pattern".equals(token)) { result = format(alreadyResolvedParameters, prc); } else if ("value".equals(token)) { result = getValue(); } else if ("input".equals(token)) { result = prc.getInput(); } } log.debug("Parameter [" + getName() + "] resolved to defaultvalue [" + (isHidden() ? hide(result.toString()) : result) + "]"); } if (result != null && result instanceof String) { if (getMinLength() >= 0 && !TYPE_NUMBER.equals(getType())) { if (result.toString().length() < getMinLength()) { log.debug("Padding parameter [" + getName() + "] because length [" + result.toString().length() + "] deceeds minLength [" + getMinLength() + "]"); result = StringUtils.rightPad(result.toString(), getMinLength()); } } if (getMaxLength() >= 0) { if (result.toString().length() > getMaxLength()) { log.debug("Trimming parameter [" + getName() + "] because length [" + result.toString().length() + "] exceeds maxLength [" + getMaxLength() + "]"); result = result.toString().substring(0, getMaxLength()); } } if (TYPE_NODE.equals(getType())) { try { result = XmlUtils.buildNode((String) result, prc.isNamespaceAware()); if (log.isDebugEnabled()) log.debug("final result [" + result.getClass().getName() + "][" + result + "]"); } catch (DomBuilderException e) { throw new ParameterException( "Parameter [" + getName() + "] could not parse result [" + result + "] to XML nodeset", e); } } if (TYPE_DOMDOC.equals(getType())) { try { result = XmlUtils.buildDomDocument((String) result, prc.isNamespaceAware(), prc.isXslt2()); if (log.isDebugEnabled()) log.debug("final result [" + result.getClass().getName() + "][" + result + "]"); } catch (DomBuilderException e) { throw new ParameterException( "Parameter [" + getName() + "] could not parse result [" + result + "] to XML document", e); } } if (TYPE_DATE.equals(getType()) || TYPE_DATETIME.equals(getType()) || TYPE_TIMESTAMP.equals(getType()) || TYPE_TIME.equals(getType())) { log.debug("Parameter [" + getName() + "] converting result [" + result + "] to date using formatString [" + getFormatString() + "]"); DateFormat df = new SimpleDateFormat(getFormatString()); try { result = df.parseObject((String) result); } catch (ParseException e) { throw new ParameterException("Parameter [" + getName() + "] could not parse result [" + result + "] to Date using formatString [" + getFormatString() + "]", e); } } if (TYPE_XMLDATETIME.equals(getType())) { log.debug("Parameter [" + getName() + "] converting result [" + result + "] from xml dateTime to date"); result = DateUtils.parseXmlDateTime((String) result); } if (TYPE_NUMBER.equals(getType())) { log.debug("Parameter [" + getName() + "] converting result [" + result + "] to number decimalSeparator [" + decimalFormatSymbols.getDecimalSeparator() + "] groupingSeparator [" + decimalFormatSymbols.getGroupingSeparator() + "]"); DecimalFormat df = new DecimalFormat(); df.setDecimalFormatSymbols(decimalFormatSymbols); try { Number n = df.parse((String) result); result = n; } catch (ParseException e) { throw new ParameterException( "Parameter [" + getName() + "] could not parse result [" + result + "] to number decimalSeparator [" + decimalFormatSymbols.getDecimalSeparator() + "] groupingSeparator [" + decimalFormatSymbols.getGroupingSeparator() + "]", e); } if (getMinLength() >= 0 && result.toString().length() < getMinLength()) { log.debug("Adding leading zeros to parameter [" + getName() + "]"); result = StringUtils.leftPad(result.toString(), getMinLength(), '0'); } } if (TYPE_INTEGER.equals(getType())) { log.debug("Parameter [" + getName() + "] converting result [" + result + "] to integer"); try { Integer i = Integer.parseInt((String) result); result = i; } catch (NumberFormatException e) { throw new ParameterException( "Parameter [" + getName() + "] could not parse result [" + result + "] to integer", e); } } } if (result != null) { if (getMinInclusive() != null || getMaxInclusive() != null) { if (getMinInclusive() != null) { if (((Number) result).floatValue() < minInclusive.floatValue()) { log.debug("Replacing parameter [" + getName() + "] because value [" + result + "] exceeds minInclusive [" + getMinInclusive() + "]"); result = minInclusive; } } if (getMaxInclusive() != null) { if (((Number) result).floatValue() > maxInclusive.floatValue()) { log.debug("Replacing parameter [" + getName() + "] because value [" + result + "] exceeds maxInclusive [" + getMaxInclusive() + "]"); result = maxInclusive; } } } } return result; }
From source file:org.apache.empire.struts2.jsp.controls.TextInputControl.java
protected Object parseDate(String s, DateFormat df) { // Try to convert try {/*from w w w.j a v a 2 s . c om*/ // Parse Date df.setLenient(true); return df.parseObject(s); } catch (Exception e) { return error(FieldErrors.InputNoDateFormat, null, s); } }