# HG changeset patch # User František Kučera # Date 1388863467 -3600 # Node ID 347a7dd94a3fd61469b6c85cfafabcf7204aefd1 # Parent 8548e21177f9a065ae075f91bd9bfcc67f0607ea XML formatter: optional label attribute in column elements diff -r 8548e21177f9 -r 347a7dd94a3f java/sql-dk/src/info/globalcode/sql/dk/formatting/XmlFormatter.java --- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/XmlFormatter.java Sat Jan 04 20:08:56 2014 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/XmlFormatter.java Sat Jan 04 20:24:27 2014 +0100 @@ -35,9 +35,12 @@ public class XmlFormatter extends AbstractXmlFormatter { public static final String NAME = "xml"; // bash-completion:formatter + public static final String PROPERTY_LABELED_COLUMNS = "labeledColumns"; + private final boolean labeledColumns; public XmlFormatter(FormatterContext formatterContext) { super(formatterContext); + labeledColumns = formatterContext.getProperties().getBoolean(PROPERTY_LABELED_COLUMNS, false); } @Override @@ -126,7 +129,14 @@ @Override public void writeColumnValue(Object value) { super.writeColumnValue(value); - printTextElement(qname("column"), null, toString(value)); + + Map attributes = null; + if (labeledColumns) { + attributes = new LinkedHashMap<>(1); + attributes.put(qname("label"), getCurrentColumnsHeader().getColumnDescriptors().get(getCurrentColumnsCount() - 1).getLabel()); + } + + printTextElement(qname("column"), attributes, toString(value)); } @Override