@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())); }
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { HeaderParameter headerParameter = new HeaderParameter(); headerParameter.setName(reader.getAttribute("name")); headerParameter.setType(reader.getAttribute("type")); headerParameter.setDefaultValue(reader.getAttribute("defaultValue")); headerParameter.setDescription(reader.getAttribute("description")); headerParameter.setLabel(reader.getAttribute("label")); headerParameter.setUnit(reader.getAttribute("unit")); headerParameter.setInterval(reader.getAttribute("interval")); final String valueSetString = reader.getAttribute("valueSet"); if(valueSetString != null) { headerParameter.setValueSet(StringUtils.toStringArray(valueSetString, ",")); } headerParameter.setCondition(reader.getAttribute("condition")); headerParameter.setPattern(reader.getAttribute("pattern")); headerParameter.setFormat(reader.getAttribute("format")); headerParameter.setNotNull(Boolean.parseBoolean(reader.getAttribute("notNull"))); headerParameter.setNotEmpty(Boolean.parseBoolean(reader.getAttribute("notEmpty"))); headerParameter.setValue(reader.getValue()); return headerParameter; } }
private static ArrayList<DocElement> createParamDocElementList(List<HeaderParameter> parameterList) { ArrayList<DocElement> docElementList = new ArrayList<>(10); for (HeaderParameter parameter : parameterList) { String paramSyntax = MessageFormat.format(" -P{0}=<{1}>", parameter.getName(), parameter.getType()); final ArrayList<String> descriptionLines = createParamDescriptionLines(parameter); docElementList.add(new DocElement(paramSyntax, descriptionLines.toArray(new String[descriptionLines.size()]))); } sortAlphabetically(docElementList); return docElementList; }
assertNotNull(parameters); assertEquals(4, parameters.size()); assertEquals("ignore", parameters.get(0).getName()); assertEquals("true", parameters.get(0).getDefaultValue()); assertEquals("boolean", parameters.get(0).getType()); assertEquals("regex", parameters.get(1).getName()); assertEquals("a regular expression", parameters.get(1).getDescription()); assertEquals("String", parameters.get(1).getType()); assertEquals("threshold", parameters.get(2).getName()); assertEquals("(0,1]", parameters.get(2).getInterval()); assertEquals("double", parameters.get(2).getType()); assertEquals("ernie", parameters.get(3).getName()); assertEquals(expected.length, parameters.get(3).getValueSet().length); for (int i = 0; i < expected.length; i++) { assertEquals(expected[i], parameters.get(3).getValueSet()[i]); assertEquals("int", parameters.get(3).getType());
private static ArrayList<String> createParamDescriptionLines(HeaderParameter parameter) { final ArrayList<String> descriptionLines = new ArrayList<>(); final String description = parameter.getDescription(); } else { descriptionLines.add(MessageFormat.format("Sets parameter ''{0}'' to <{1}>.", parameter.getName(), parameter.getType())); final String interval = parameter.getInterval(); if (!(interval == null || interval.isEmpty())) { descriptionLines.add(MessageFormat.format("Valid interval is {0}.", interval)); final String pattern = parameter.getPattern(); if (!(pattern == null || pattern.isEmpty())) { descriptionLines.add(MessageFormat.format("Pattern for valid values is ''{0}''.", pattern)); final String format = parameter.getFormat(); if (!(format == null || format.isEmpty())) { descriptionLines.add(MessageFormat.format("Format for valid values is ''{0}''.", format)); final String[] valueSet = parameter.getValueSet(); if (!(valueSet == null || valueSet.length == 0)) { descriptionLines.add(MessageFormat.format("Value must be one of {0}.", toString(valueSet))); final String defaultValue = parameter.getDefaultValue(); if (!(defaultValue == null || defaultValue.isEmpty())) { descriptionLines.add(MessageFormat.format("Default value is ''{0}''.", defaultValue)); final String unit = parameter.getUnit();