{
return new DirectEncoder(propertyName, index);
}
else if (field.getAnnotation(Embedded.class) != null)
{
return new EmbeddedEncoder(propertyName, clazz, os);
}
else
{
Parent parent = field.getAnnotation(Parent.class);
if (parent != null && parent.value() != Parent.FilterPolicy.RetainKey)