com.jgoodies.common.format
Class AbstractWrappedDateFormat

java.lang.Object
  extended by java.text.Format
      extended by java.text.DateFormat
          extended by com.jgoodies.common.format.AbstractWrappedDateFormat
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
EmptyDateFormat

public abstract class AbstractWrappedDateFormat
extends java.text.DateFormat

Reduces the effort required to write custom DateFormat implementations that retain the ability to iterate through Dates with the arrow keys in formatted text fields (using an appropriate DateFormatter). This class wraps a given DateFormat and delegates most of its behavior to the delegate, except for the abstract methods format(Date, StringBuffer, FieldPosition) and parse(String, ParsePosition) that can be overridden by a subclass. For example the subclass EmptyDateFormat wraps a DateFormat but it parses the empty String and returns null where the predefined Java DateFormats throw an exception.

Version:
$Revision: 1.7 $
Author:
Karsten Lentzsch
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.text.DateFormat
java.text.DateFormat.Field
 
Field Summary
protected  java.text.DateFormat delegate
          Refers to the wrapped Format that is used to forward #format and #parseObject.
 
Fields inherited from class java.text.DateFormat
AM_PM_FIELD, calendar, DATE_FIELD, DAY_OF_WEEK_FIELD, DAY_OF_WEEK_IN_MONTH_FIELD, DAY_OF_YEAR_FIELD, DEFAULT, ERA_FIELD, FULL, HOUR_OF_DAY0_FIELD, HOUR_OF_DAY1_FIELD, HOUR0_FIELD, HOUR1_FIELD, LONG, MEDIUM, MILLISECOND_FIELD, MINUTE_FIELD, MONTH_FIELD, numberFormat, SECOND_FIELD, SHORT, TIMEZONE_FIELD, WEEK_OF_MONTH_FIELD, WEEK_OF_YEAR_FIELD, YEAR_FIELD
 
Constructor Summary
AbstractWrappedDateFormat(java.text.DateFormat delegate)
          Constructs an AbstractWrappedDateFormat that wraps the given mandatory format.
 
Method Summary
abstract  java.lang.StringBuffer format(java.util.Date date, java.lang.StringBuffer toAppendTo, java.text.FieldPosition pos)
           
 java.text.AttributedCharacterIterator formatToCharacterIterator(java.lang.Object obj)
           
 java.util.Calendar getCalendar()
           
 java.text.NumberFormat getNumberFormat()
           
 java.util.TimeZone getTimeZone()
           
 boolean isLenient()
           
abstract  java.util.Date parse(java.lang.String source, java.text.ParsePosition pos)
           
 void setCalendar(java.util.Calendar newCalendar)
           
 void setLenient(boolean lenient)
           
 void setNumberFormat(java.text.NumberFormat newNumberFormat)
           
 void setTimeZone(java.util.TimeZone zone)
           
 
Methods inherited from class java.text.DateFormat
clone, equals, format, format, getAvailableLocales, getDateInstance, getDateInstance, getDateInstance, getDateTimeInstance, getDateTimeInstance, getDateTimeInstance, getInstance, getTimeInstance, getTimeInstance, getTimeInstance, hashCode, parse, parseObject
 
Methods inherited from class java.text.Format
format, parseObject
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

delegate

protected final java.text.DateFormat delegate
Refers to the wrapped Format that is used to forward #format and #parseObject.

Constructor Detail

AbstractWrappedDateFormat

public AbstractWrappedDateFormat(java.text.DateFormat delegate)
Constructs an AbstractWrappedDateFormat that wraps the given mandatory format.

Parameters:
delegate - the format that handles the standard cases
Throws:
java.lang.NullPointerException - if delegate is null
Method Detail

format

public abstract java.lang.StringBuffer format(java.util.Date date,
                                              java.lang.StringBuffer toAppendTo,
                                              java.text.FieldPosition pos)
Specified by:
format in class java.text.DateFormat

parse

public abstract java.util.Date parse(java.lang.String source,
                                     java.text.ParsePosition pos)
Specified by:
parse in class java.text.DateFormat

getCalendar

public java.util.Calendar getCalendar()
Overrides:
getCalendar in class java.text.DateFormat

setCalendar

public void setCalendar(java.util.Calendar newCalendar)
Overrides:
setCalendar in class java.text.DateFormat

getNumberFormat

public java.text.NumberFormat getNumberFormat()
Overrides:
getNumberFormat in class java.text.DateFormat

setNumberFormat

public void setNumberFormat(java.text.NumberFormat newNumberFormat)
Overrides:
setNumberFormat in class java.text.DateFormat

getTimeZone

public java.util.TimeZone getTimeZone()
Overrides:
getTimeZone in class java.text.DateFormat

setTimeZone

public void setTimeZone(java.util.TimeZone zone)
Overrides:
setTimeZone in class java.text.DateFormat

isLenient

public boolean isLenient()
Overrides:
isLenient in class java.text.DateFormat

setLenient

public void setLenient(boolean lenient)
Overrides:
setLenient in class java.text.DateFormat

formatToCharacterIterator

public java.text.AttributedCharacterIterator formatToCharacterIterator(java.lang.Object obj)
Overrides:
formatToCharacterIterator in class java.text.Format


Copyright © 2009-2012 JGoodies Karsten Lentzsch. All Rights Reserved.