in core/bootstrap/src/main/java/org/yaml/snakeyaml/introspector/PropertySubstitute.java [88:125]
public void set(Object object, Object value) throws Exception {
if (write != null) {
if (!filler) {
write.invoke(object, value);
} else if (value != null) {
if (value instanceof Collection<?>) {
Collection<?> collection = (Collection<?>) value;
for (Object val : collection) {
write.invoke(object, val);
}
} else if (value instanceof Map<?, ?>) {
Map<?, ?> map = (Map<?, ?>) value;
for (Entry<?, ?> entry : map.entrySet()) {
write.invoke(object, entry.getKey(), entry.getValue());
}
} else if (value.getClass().isArray()) { // TODO: maybe arrays
// need 2 fillers like
// SET(index, value)
// add ADD(value)
int len = Array.getLength(value);
for (int i = 0; i < len; i++) {
write.invoke(object, Array.get(value, i));
}
}
}
} else if (field != null) {
field.set(object, value);
} else if (delegate != null) {
delegate.set(object, value);
} else {
// Thorntail::BEGIN
/*
log.warning("No setter/delegate for '" + getName() + "' on object " + object);
*/
// Thorntail::END
}
// TODO: maybe throw YAMLException here
}