jodd.datetime.format
Class AbstractFormatter

java.lang.Object
  extended by jodd.datetime.format.AbstractFormatter
All Implemented Interfaces:
JdtFormatter
Direct Known Subclasses:
Iso8601JdtFormatter

public abstract class AbstractFormatter
extends java.lang.Object
implements JdtFormatter

Abstract formatter for easier JdtFormatter implementations.

For setting date and time, default formatter parses input String against specified format. It extracts parts of input string upon patterns and then each part is converted to a number for a date/time information. It doesn't ignore any non-number character. If conversion fails, null is returned.

Getting date time is also user friendly. Specified format may not only contains patterns but also any text. To remove errors in decoding when text may be recognize as one of patterns, format text may be quoted with the special escape sign. Double quote in the text will be decoded as a single quote, of course.

It is not necessary to have parsers for all patterns.


Field Summary
protected  char escapeChar
          Escape character.
protected  char[][] patterns
          Available patterns list.
 
Constructor Summary
AbstractFormatter()
           
 
Method Summary
 java.lang.String convert(JDateTime jdt, java.lang.String format)
          Converts date time to a string using specified format.
protected abstract  java.lang.String convertPattern(int patternIndex, JDateTime jdt)
          Creates a date-time string for founded pattern.
protected  int findPattern(char[] format, int i)
          Finds the longest pattern in provided format starting from specified position.
 DateTimeStamp parse(java.lang.String value, java.lang.String format)
          Parses string given in specified format and extracts time information.
protected abstract  void parseValue(int patternIndex, java.lang.String value, DateTimeStamp destination)
          Parses value for matched pattern.
protected  void preparePatterns(java.lang.String[] spat)
          Converts String array of patterns to char arrays.
protected  java.lang.String print2(int value)
          Prints values 00 - 99.
protected  java.lang.String print3(int value)
          Prints values 00 - 999.
protected  java.lang.String printPad4(int value)
          Prints 4 digits and optional minus sign.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

patterns

protected char[][] patterns
Available patterns list. Used by findPattern(char[], int) when parsing date time format. Each formatter will have its own set of patterns, in strictly defined order.


escapeChar

protected char escapeChar
Escape character.

Constructor Detail

AbstractFormatter

public AbstractFormatter()
Method Detail

preparePatterns

protected void preparePatterns(java.lang.String[] spat)
Converts String array of patterns to char arrays.


findPattern

protected int findPattern(char[] format,
                          int i)
Finds the longest pattern in provided format starting from specified position. All available patterns are stored in patterns.

Parameters:
format - date time format to examine
i - starting index
Returns:
0-based index of founded pattern, or -1 if pattern not found

convertPattern

protected abstract java.lang.String convertPattern(int patternIndex,
                                                   JDateTime jdt)
Creates a date-time string for founded pattern. Founded patterns is identified by its patterns index.

Parameters:
patternIndex - index of founded pattern
jdt - date time information

convert

public java.lang.String convert(JDateTime jdt,
                                java.lang.String format)
Converts date time to a string using specified format.

Specified by:
convert in interface JdtFormatter
Parameters:
jdt - JDateTime to read from
format - format
Returns:
formatted string with date time information
See Also:
JdtFormatter.convert(JDateTime, String)

parseValue

protected abstract void parseValue(int patternIndex,
                                   java.lang.String value,
                                   DateTimeStamp destination)
Parses value for matched pattern. Founded patterns is identified by its patterns index. Note that value may represent both integer and decimals. May throw NumberFormatException.

Parameters:
patternIndex - index of founded pattern
value - value to parse, no spaces or tabs
destination - destination to modify

parse

public DateTimeStamp parse(java.lang.String value,
                           java.lang.String format)
Parses string given in specified format and extracts time information. It returns a new instance of DateTimeStamp or null if error occurs.

Specified by:
parse in interface JdtFormatter
Parameters:
value - string containing date time values
format - format
Returns:
DateTimeStamp instance with populated data
See Also:
JdtFormatter.parse(String, String)

print2

protected java.lang.String print2(int value)
Prints values 00 - 99.


print3

protected java.lang.String print3(int value)
Prints values 00 - 999.


printPad4

protected java.lang.String printPad4(int value)
Prints 4 digits and optional minus sign.



Copyright © 2003-2012 Jodd Team