Class ConversionTool

  • Direct Known Subclasses:
    ValueParser

    @DefaultKey("convert")
    @SkipSetters
    public class ConversionTool
    extends LocaleConfig

    Utility class for easy conversion of String values to richer types.

     Template example(s):
       $convert.toNumber('12.6')   ->  12.6
       $convert.toInt('12.6')      ->  12
       $convert.toNumbers('12.6,42')  ->  [12.6, 42]
    
     Toolbox configuration:
     <tools>
       <toolbox scope="application">
         <tool class="org.apache.velocity.tools.generic.ConversionTool"
                  dateFormat="yyyy-MM-dd"/>
       </toolbox>
     </tools>
     

    This comes in very handy when parsing anything.

    Since:
    VelocityTools 2.0
    Version:
    $Revision$ $Date: 2007-02-26 11:24:39 -0800 (Mon, 26 Feb 2007) $
    Author:
    Nathan Bubna
    • Constructor Detail

      • ConversionTool

        public ConversionTool()
    • Method Detail

      • configure

        protected void configure​(ValueParser values)
        Does the actual configuration. This is protected, so subclasses may share the same ValueParser and call configure at any time, while preventing templates from doing so when configure(Map) is locked.
        Overrides:
        configure in class LocaleConfig
      • setStringsDelimiter

        protected final void setStringsDelimiter​(String stringsDelimiter)
        Sets the delimiter used for separating values in a single String value. The default string delimiter is a comma.
        See Also:
        parseStringList(java.lang.String)
      • getStringsDelimiter

        public final String getStringsDelimiter()
      • setStringsTrim

        protected final void setStringsTrim​(boolean stringsTrim)
        Sets whether strings should be trimmed when separated from a delimited string value. The default is true.
        See Also:
        parseStringList(java.lang.String)
      • getStringsTrim

        public final boolean getStringsTrim()
      • setNumberFormat

        protected final void setNumberFormat​(String format)
      • getNumberFormat

        public final String getNumberFormat()
      • setDateFormat

        protected final void setDateFormat​(String format)
      • getDateFormat

        public final String getDateFormat()
      • toString

        public String toString​(Object value)
        Converts objects to String in a more Tools-ish way than String.valueOf(Object), especially with nulls, Arrays and Collections. Null returns null, Arrays and Collections return the toString(Object) of their first value, or null if they have no values.
        Parameters:
        value - the object to be turned into a String
        Returns:
        the string value of the object or null if the value is null or it is an array or collection whose first value is null
      • toBoolean

        public Boolean toBoolean​(Object value)
        Parameters:
        value - the object to be converted
        Returns:
        a Boolean object for the specified value or null if the value is null or the conversion failed
      • toInteger

        public Integer toInteger​(Object value)
        Parameters:
        value - the object to be converted
        Returns:
        a Integer for the specified value or null if the value is null or the conversion failed
      • toDouble

        public Double toDouble​(Object value)
        Parameters:
        value - the object to be converted
        Returns:
        a Double for the specified value or null if the value is null or the conversion failed
      • toNumber

        public Number toNumber​(Object value)
        Parameters:
        value - the object to be converted
        Returns:
        a Number for the specified value or null if the value is null or the conversion failed
      • toLocale

        public Locale toLocale​(Object value)
        Parameters:
        value - the object to be converted
        Returns:
        a Locale for the specified value or null if the value is null or the conversion failed
      • toDate

        public Date toDate​(Object value)
        Converts an object to an instance of Date, when necessary using the configured date parsing format, the configured default Locale, and the system's default TimeZone to parse the string value of the specified object.
        Parameters:
        value - the date to convert
        Returns:
        the object as a Date or null if no conversion is possible
      • toStrings

        public String[] toStrings​(Object value)
        Parameters:
        value - the value to be converted
        Returns:
        an array of String objects containing all of the values derived from the specified array, Collection, or delimited String
      • toBooleans

        public Boolean[] toBooleans​(Object value)
        Parameters:
        value - the value to be converted
        Returns:
        an array of Boolean objects derived from the specified value, or null.
      • toBooleans

        public Boolean[] toBooleans​(Collection values)
        Parameters:
        values - the collection of values to be converted
        Returns:
        an array of Boolean objects derived from the specified values, or null.
      • toNumbers

        public Number[] toNumbers​(Object value)
        Parameters:
        value - the value to be converted
        Returns:
        an array of Number objects derived from the specified value, or null.
      • toNumbers

        public Number[] toNumbers​(Collection values)
        Parameters:
        values - the collection of values to be converted
        Returns:
        an array of Number objects derived from the specified values, or null.
      • toInts

        public int[] toInts​(Object value)
        Parameters:
        value - the value to be converted
        Returns:
        an array of int values derived from the specified value, or null.
      • toIntegers

        public int[] toIntegers​(Object value)
        Parameters:
        value - the value to be converted
        Returns:
        an array of int values derived from the specified value, or null.
      • toDoubles

        public double[] toDoubles​(Object value)
        Parameters:
        value - the value to be converted
        Returns:
        an array of double values derived from the specified value, or null.
      • toLocales

        public Locale[] toLocales​(Object value)
        Parameters:
        value - the value to be converted
        Returns:
        an array of Locale objects derived from the specified value, or null.
      • toLocales

        public Locale[] toLocales​(Collection values)
        Parameters:
        values - the collection of values to be converted
        Returns:
        an array of Locale objects derived from the specified values, or null.
      • toDates

        public Date[] toDates​(Object value)
        Parameters:
        value - the value to be converted
        Returns:
        an array of Date objects derived from the specified value, or null.
      • toDates

        public Date[] toDates​(Collection values)
        Parameters:
        values - the collection of values to be converted
        Returns:
        an array of Date objects derived from the specified values, or null.
      • toCalendars

        public Calendar[] toCalendars​(Object value)
        Parameters:
        value - the value to be converted
        Returns:
        an array of Calendar objects derived from the specified value, or null.
      • toCalendars

        public Calendar[] toCalendars​(Collection values)
        Parameters:
        values - the collection of values to be converted
        Returns:
        an array of Calendar objects derived from the specified values, or null.
      • parseBoolean

        protected Boolean parseBoolean​(String value)
        Converts a parameter value into a Boolean Sub-classes can override to allow for customized boolean parsing. (e.g. to handle "Yes/No" or "T/F")
        Parameters:
        value - the string to be parsed
        Returns:
        the value as a Boolean
      • parseStringList

        protected String[] parseStringList​(String value)
        Converts a single String value into an array of Strings by splitting it on the tool's set stringsDelimiter. The default stringsDelimiter is a comma, and by default, all strings parsed out are trimmed before returning.
      • parseLocale

        protected Locale parseLocale​(String value)
        Converts a String value into a Locale.
      • parseNumber

        public Number parseNumber​(String value)
        Converts an object to an instance of Number using the format returned by getNumberFormat() and the default Locale if the object is not already an instance of Number.
        Parameters:
        value - the string to parse
        Returns:
        the string as a Number or null if no conversion is possible
      • parseDate

        public Date parseDate​(String value)
        Converts a string to an instance of Date, using the configured date parsing format, the configured default Locale, and the system's default TimeZone to parse it.
        Parameters:
        value - the date to convert
        Returns:
        the object as a Date or null if no conversion is possible