public DelegateFactory(FormatProvider formatProvider) {
this.formatProvider = formatProvider;
// register default delegates
DEFAULT_MAP.put(new TypeFieldHandler(StringProperty.class), new StringPropertyDelegate());
DEFAULT_MAP.put(new TypeFieldHandler(BooleanProperty.class), new BooleanPropertyDelegate());
DEFAULT_MAP.put(new EnumHandler(), new EnumPropertyDelegate());
DEFAULT_MAP.put(new TypeFieldHandler(IntegerProperty.class), new IntegerPropertyDelegate(formatProvider));
DEFAULT_MAP.put(new TypeFieldHandler(LongProperty.class), new LongPropertyDelegate(formatProvider));
DEFAULT_MAP.put(new TypeFieldHandler(DoubleProperty.class), new DoublePropertyDelegate(formatProvider));
}