{
return new CharEncoder(propertyName, index);
}
else if (directFieldTypes.contains(clazz))
{
return new DirectEncoder(propertyName, index);
}
else if (field.getAnnotation(Embedded.class) != null)
{
return new EmbeddedEncoder(propertyName, clazz, os);
}