Creating content fragment models programatically fails to set array
I want to create a content fragment instance, but setting an array of field paths is not working.
the code is creating the fragment and all other fields are being set correctly, but when I try and set a multi field fragment reference it isn't setting the value.
An example I followed had this code:
private void setField(ContentFragment newFragment, String field, Object value) throws ContentFragmentException {
ContentElement element = newFragment.getElement(field);
String contentType = element.getContentType();
if (value instanceof String) {
element.setContent((String) value, contentType);
} else if (value instanceof String[]) {
String[] values = (String[]) value;
element.setContent(String.join(",", values), contentType);
}
}
However all that gets set is the first element of the array with a string concatenation.
I tried changing it to
private void setField(ContentFragment newFragment, String field, Object value) throws ContentFragmentException {
ContentElement element = newFragment.getElement(field);
String contentType = element.getContentType();
if (value instanceof String) {
element.setContent((String) value, contentType);
} else if (value instanceof String[]) {
FragmentData data = element.getValue();
if (data != null) {
data.setValue(value);
}
}
}
But this failed to set a value.
I have checked the fragmentData with:
System.out.println(data.getContentType()+":"+data.getDataType().isMultiValue());
and it outputs text/plain:true

