@Override public boolean filter(Bundle bundle) { StringBuilder sb = new StringBuilder(); boolean appendJoin = false; for (AutoField field : in) { if (appendJoin && (join != null)) { sb.append(join); } appendJoin = true; ValueObject v = field.getValue(bundle); if ((v != null) && v.getObjectType().equals(ValueObject.TYPE.ARRAY)) { ValueArray vArray = v.asArray(); boolean innerAppendJoin = false; for (ValueObject valueObject : vArray) { if (innerAppendJoin && (join != null)) { sb.append(join); } innerAppendJoin = true; sb.append(ValueUtil.asNativeString(valueObject)); } } else { sb.append(ValueUtil.asNativeString(v)); } } out.setValue(bundle, ValueFactory.create(sb.toString())); return true; }