org.springframework.format.number
Class NumberFormatAnnotationFormatterFactory

java.lang.Object
  extended by org.springframework.format.number.NumberFormatAnnotationFormatterFactory
All Implemented Interfaces:
EmbeddedValueResolverAware, AnnotationFormatterFactory<NumberFormat>

public class NumberFormatAnnotationFormatterFactory
extends java.lang.Object
implements AnnotationFormatterFactory<NumberFormat>, EmbeddedValueResolverAware

Formats fields annotated with the NumberFormat annotation.

Since:
3.0
Author:
Keith Donald
See Also:
NumberFormat

Field Summary
private  StringValueResolver embeddedValueResolver
           
private  java.util.Set<java.lang.Class<?>> fieldTypes
           
 
Constructor Summary
NumberFormatAnnotationFormatterFactory()
           
 
Method Summary
private  Formatter<java.lang.Number> configureFormatterFrom(NumberFormat annotation)
           
 java.util.Set<java.lang.Class<?>> getFieldTypes()
          The types of fields that may be annotated with the <A> annotation.
 Parser<java.lang.Number> getParser(NumberFormat annotation, java.lang.Class<?> fieldType)
          Get the Parser to parse a submitted value for a field of fieldType annotated with annotation.
 Printer<java.lang.Number> getPrinter(NumberFormat annotation, java.lang.Class<?> fieldType)
          Get the Printer to print the value of a field of fieldType annotated with annotation.
protected  java.lang.String resolveEmbeddedValue(java.lang.String value)
           
 void setEmbeddedValueResolver(StringValueResolver resolver)
          Set the StringValueResolver to use for resolving embedded definition values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fieldTypes

private final java.util.Set<java.lang.Class<?>> fieldTypes

embeddedValueResolver

private StringValueResolver embeddedValueResolver
Constructor Detail

NumberFormatAnnotationFormatterFactory

public NumberFormatAnnotationFormatterFactory()
Method Detail

getFieldTypes

public final java.util.Set<java.lang.Class<?>> getFieldTypes()
Description copied from interface: AnnotationFormatterFactory
The types of fields that may be annotated with the <A> annotation.

Specified by:
getFieldTypes in interface AnnotationFormatterFactory<NumberFormat>

setEmbeddedValueResolver

public void setEmbeddedValueResolver(StringValueResolver resolver)
Description copied from interface: EmbeddedValueResolverAware
Set the StringValueResolver to use for resolving embedded definition values.

Specified by:
setEmbeddedValueResolver in interface EmbeddedValueResolverAware

resolveEmbeddedValue

protected java.lang.String resolveEmbeddedValue(java.lang.String value)

getPrinter

public Printer<java.lang.Number> getPrinter(NumberFormat annotation,
                                            java.lang.Class<?> fieldType)
Description copied from interface: AnnotationFormatterFactory
Get the Printer to print the value of a field of fieldType annotated with annotation. If the type <T> the printer accepts is not assignable to fieldType, a coersion from fieldType to <T> will be attempted before the Printer is invoked.

Specified by:
getPrinter in interface AnnotationFormatterFactory<NumberFormat>
Parameters:
annotation - the annotation instance
fieldType - the type of field that was annotated
Returns:
the printer

getParser

public Parser<java.lang.Number> getParser(NumberFormat annotation,
                                          java.lang.Class<?> fieldType)
Description copied from interface: AnnotationFormatterFactory
Get the Parser to parse a submitted value for a field of fieldType annotated with annotation. If the object the parser returns is not assignable to fieldType, a coersion to fieldType will be attempted before the field is set.

Specified by:
getParser in interface AnnotationFormatterFactory<NumberFormat>
Parameters:
annotation - the annotation instance
fieldType - the type of field that was annotated
Returns:
the parser

configureFormatterFrom

private Formatter<java.lang.Number> configureFormatterFrom(NumberFormat annotation)