/** * Returns the current number format ({@link #getNumberFormat()}) as {@link TemplateNumberFormat}. * * <p> * Performance notes: The result is stored for reuse, so calling this method frequently is usually not a problem. * However, at least as of this writing (2.3.24), changing the current locale {@link #setLocale(Locale)} or changing * the current number format ({@link #setNumberFormat(String)}) will drop the stored value, so it will have to be * recalculated. * * @since 2.3.24 */ public TemplateNumberFormat getTemplateNumberFormat() throws TemplateValueFormatException { TemplateNumberFormat format = cachedTemplateNumberFormat; if (format == null) { format = getTemplateNumberFormat(getNumberFormat(), false); cachedTemplateNumberFormat = format; } return format; }
NumberFormatter(Number number, Environment env) { this.number = number; this.env = env; defaultFormat = env.getNumberFormatObject(env.getNumberFormat()); }
/** * Convenience wrapper around {@link #getTemplateNumberFormat()} to be called during expression evaluation. */ TemplateNumberFormat getTemplateNumberFormat(Expression exp, boolean useTempModelExc) throws TemplateException { TemplateNumberFormat format; try { format = getTemplateNumberFormat(); } catch (TemplateValueFormatException e) { _ErrorDescriptionBuilder desc = new _ErrorDescriptionBuilder( "Failed to get number format object for the current number format string, ", new _DelayedJQuote(getNumberFormat()), ": ", e.getMessage()) .blame(exp); throw useTempModelExc ? new _TemplateModelException(e, this, desc) : new _MiscTemplateException(e, this, desc); } return format; }
String formatNumber(Number number) { if(numberFormat == null) { numberFormat = getNumberFormatObject(getNumberFormat()); } return numberFormat.format(number); }
/** * Returns the current number format ({@link #getNumberFormat()}) as {@link TemplateNumberFormat}. * * <p> * Performance notes: The result is stored for reuse, so calling this method frequently is usually not a problem. * However, at least as of this writing (2.3.24), changing the current locale {@link #setLocale(Locale)} or changing * the current number format ({@link #setNumberFormat(String)}) will drop the stored value, so it will have to be * recalculated. * * @since 2.3.24 */ public TemplateNumberFormat getTemplateNumberFormat() throws TemplateValueFormatException { TemplateNumberFormat format = cachedTemplateNumberFormat; if (format == null) { format = getTemplateNumberFormat(getNumberFormat(), false); cachedTemplateNumberFormat = format; } return format; }
/** * Returns the current number format ({@link #getNumberFormat()}) as {@link TemplateNumberFormat}. * * <p> * Performance notes: The result is stored for reuse, so calling this method frequently is usually not a problem. * However, at least as of this writing (2.3.24), changing the current locale {@link #setLocale(Locale)} or changing * the current number format ({@link #setNumberFormat(String)}) will drop the stored value, so it will have to be * recalculated. * * @since 2.3.24 */ public TemplateNumberFormat getTemplateNumberFormat() throws TemplateValueFormatException { TemplateNumberFormat format = cachedTemplateNumberFormat; if (format == null) { format = getTemplateNumberFormat(getNumberFormat(), false); cachedTemplateNumberFormat = format; } return format; }
/** * Convenience wrapper around {@link #getTemplateNumberFormat()} to be called during expression evaluation. */ TemplateNumberFormat getTemplateNumberFormat(Expression exp, boolean useTempModelExc) throws TemplateException { TemplateNumberFormat format; try { format = getTemplateNumberFormat(); } catch (TemplateValueFormatException e) { _ErrorDescriptionBuilder desc = new _ErrorDescriptionBuilder( "Failed to get number format object for the current number format string, ", new _DelayedJQuote(getNumberFormat()), ": ", e.getMessage()) .blame(exp); throw useTempModelExc ? new _TemplateModelException(e, this, desc) : new _MiscTemplateException(e, this, desc); } return format; }
/** * Convenience wrapper around {@link #getTemplateNumberFormat()} to be called during expression evaluation. */ TemplateNumberFormat getTemplateNumberFormat(Expression exp, boolean useTempModelExc) throws TemplateException { TemplateNumberFormat format; try { format = getTemplateNumberFormat(); } catch (TemplateValueFormatException e) { _ErrorDescriptionBuilder desc = new _ErrorDescriptionBuilder( "Failed to get number format object for the current number format string, ", new _DelayedJQuote(getNumberFormat()), ": ", e.getMessage()) .blame(exp); throw useTempModelExc ? new _TemplateModelException(e, this, desc) : new _MiscTemplateException(e, this, desc); } return format; }