@Override
public void marshal(Object source, HierarchicalStreamWriter writer,
MarshallingContext context) {
HeaderParameter headerParameter = (HeaderParameter) source;
writer.addAttribute("name", headerParameter.getName());
writer.addAttribute("type", headerParameter.getType());
writer.addAttribute("defaultValue", headerParameter.getDefaultValue());
writer.addAttribute("description", headerParameter.getDescription());
writer.addAttribute("label", headerParameter.getLabel());
writer.addAttribute("unit", headerParameter.getUnit());
writer.addAttribute("interval", headerParameter.getInterval());
writer.addAttribute("valueSet", StringUtils.arrayToString(headerParameter.getValueSet(), ","));
writer.addAttribute("condition", headerParameter.getCondition());
writer.addAttribute("pattern", headerParameter.getPattern());
writer.addAttribute("format", headerParameter.getFormat());
writer.addAttribute("notNull", String.valueOf(headerParameter.isNotNull()));
writer.addAttribute("notEmpty", String.valueOf(headerParameter.isNotEmpty()));
}