Class SimpleDateFormatFilter

  • All Implemented Interfaces:
    Serializable, Cloneable, DataFilter, DataSource, DataTarget, RawDataSource

    public class SimpleDateFormatFilter
    extends DateFormatFilter
    A filter that creates string from dates. This filter will format java.util. Date objects using a java.text.SimpleDateFormat to create the string representation for the date obtained from the datasource.

    If the object read from the datasource is no date, the NullValue defined by setNullValue(Object) is returned.

    This implementation uses a SimpleDateFormat and grants more control over the parsing results.

    Author:
    Thomas Morgner
    See Also:
    SimpleDateFormat, Serialized Form
    • Constructor Detail

      • SimpleDateFormatFilter

        public SimpleDateFormatFilter()
        DefaultConstructor.
    • Method Detail

      • getSimpleDateFormat

        public SimpleDateFormat getSimpleDateFormat()
        Returns the SimpleDateFormat object used in this filter.
        Returns:
        The date format object.
      • setSimpleDateFormat

        public void setSimpleDateFormat​(SimpleDateFormat format)
        Sets the date format for the filter.
        Parameters:
        format - The format.
        Throws:
        NullPointerException - if the format given is null
      • getFormatString

        public String getFormatString()
        Returns the formatString for this SimpleDateFormat. For a more detailed explaination of SimpleDateFormat formatstrings see java.text.SimpleDateFormat.
        Returns:
        the format string for the used DateFormat.
        See Also:
        SimpleDateFormat
      • setFormatString

        public void setFormatString​(String format)
        defines the formatString for this SimpleDateFormat.
        Parameters:
        format - the formatString
        Throws:
        IllegalArgumentException - if the string is invalid
      • getLocalizedFormatString

        public String getLocalizedFormatString()
        Returns a localized formatString for this SimpleDateFormat. For a more detailed explaination of SimpleDateFormat formatstrings see java.text.SimpleDateFormat.
        Returns:
        the localized format string.
        See Also:
        SimpleDateFormat
      • setLocalizedFormatString

        public void setLocalizedFormatString​(String format)
        defines the localized formatString for this SimpleDateFormat.
        Parameters:
        format - the formatString
        Throws:
        IllegalArgumentException - if the string is invalid
      • isKeepState

        public boolean isKeepState()
        Defines, whether the filter should keep its state, if a locale change is detected. This will effectivly disable the locale update.
        Returns:
        true, if the locale should not update the DateSymbols, false otherwise.
      • setKeepState

        public void setKeepState​(boolean keepState)
        Defines, whether the filter should keep its state, if a locale change is detected. This will effectivly disable the locale update.
        Parameters:
        keepState - set to true, if the locale should not update the DateSymbols, false otherwise.
      • getValue

        public Object getValue​(ExpressionRuntime runtime,
                               ReportElement element)
        Returns the formatted string. The value is read using the data source given and formated using the formatter of this object. The formating is guaranteed to completly form the object to an string or to return the defined NullValue.

        If format, datasource or object are null, the NullValue is returned.

        Specified by:
        getValue in interface DataSource
        Overrides:
        getValue in class DateFormatFilter
        Parameters:
        runtime - the expression runtime that is used to evaluate formulas and expressions when computing the value of this filter.
        element -
        Returns:
        The formatted value.
      • getFormatString

        public FormatSpecification getFormatString​(ExpressionRuntime runtime,
                                                   ReportElement element,
                                                   FormatSpecification formatSpecification)
        Description copied from interface: RawDataSource
        Returns information about the formatstring that was used to transform a raw-value into a formatted text. Not all elements will make use of a format-string. These elements will return .classic.core.filter.FormatSpecification#TYPE_UNDEFINED in that case.
        Specified by:
        getFormatString in interface RawDataSource
        Overrides:
        getFormatString in class DateFormatFilter
        Parameters:
        runtime - the Expression runtime used to possibly compute the raw-value.
        element - the element to which this datasource is added.
        formatSpecification - the format specification (can be null). @return a filled format specififcation. If the formatSpecification parameter was not null, this given instance is reused.