java/sql-dk/src/main/java/info/globalcode/sql/dk/formatting/XmlFormatter.java
branchv_0
changeset 248 7f81cfa150d0
parent 246 277c18b48762
child 250 aae5009bd0af
equal deleted inserted replaced
247:3380ae5275be 248:7f81cfa150d0
    83 	private static final Logger log = Logger.getLogger(XmlFormatter.class.getName());
    83 	private static final Logger log = Logger.getLogger(XmlFormatter.class.getName());
    84 	private final boolean labeledColumns;
    84 	private final boolean labeledColumns;
    85 
    85 
    86 	private String currentDatabaseName;
    86 	private String currentDatabaseName;
    87 	private int statementCounter;
    87 	private int statementCounter;
    88 	private int resultSetCounter;
    88 	
    89 
    89 
    90 	public XmlFormatter(FormatterContext formatterContext) {
    90 	public XmlFormatter(FormatterContext formatterContext) {
    91 		super(formatterContext);
    91 		super(formatterContext);
    92 		labeledColumns = formatterContext.getProperties().getBoolean(PROPERTY_LABELED_COLUMNS, false);
    92 		labeledColumns = formatterContext.getProperties().getBoolean(PROPERTY_LABELED_COLUMNS, false);
    93 	}
    93 	}
   107 		Map<QName, String> attributes = new LinkedHashMap<>(2);
   107 		Map<QName, String> attributes = new LinkedHashMap<>(2);
   108 		attributes.put(qname("xmlns"), Xmlns.RELPIPE);
   108 		attributes.put(qname("xmlns"), Xmlns.RELPIPE);
   109 		attributes.put(new QName(null, XML_NS_PREFIX_SQLDK, "xmlns"), Xmlns.SQLDK);
   109 		attributes.put(new QName(null, XML_NS_PREFIX_SQLDK, "xmlns"), Xmlns.SQLDK);
   110 		printStartElement(qname("relpipe"), attributes);
   110 		printStartElement(qname("relpipe"), attributes);
   111 		statementCounter = 0;
   111 		statementCounter = 0;
   112 		resultSetCounter = 0;
       
   113 
   112 
   114 	}
   113 	}
   115 
   114 
   116 	@Override
   115 	@Override
   117 	public void writeEndBatch() {
   116 	public void writeEndBatch() {
   181 
   180 
   182 		}
   181 		}
   183 
   182 
   184 	}
   183 	}
   185 
   184 
   186 	private String getCurrentRelationName() {
       
   187 		if (getFormatterContext().getRelationNames() == null || getFormatterContext().getRelationNames().size() < resultSetCounter) {
       
   188 			return "r" + resultSetCounter;
       
   189 		} else {
       
   190 			return getFormatterContext().getRelationNames().get(resultSetCounter - 1);
       
   191 		}
       
   192 	}
       
   193 
       
   194 	@Override
   185 	@Override
   195 	public void writeStartResultSet(ColumnsHeader header) {
   186 	public void writeStartResultSet(ColumnsHeader header) {
   196 		super.writeStartResultSet(header);
   187 		super.writeStartResultSet(header);
   197 		resultSetCounter++;
       
   198 		printStartElement(qname(XML_ELEMENT_RELATION), singleAttribute(qnameDK(XML_ATTRIBUTE_STATEMENT), getCurrentStatementName()));
   188 		printStartElement(qname(XML_ELEMENT_RELATION), singleAttribute(qnameDK(XML_ATTRIBUTE_STATEMENT), getCurrentStatementName()));
   199 		printTextElement(qname(XML_ELEMENT_NAME), null, getCurrentRelationName());
   189 		printTextElement(qname(XML_ELEMENT_NAME), null, getCurrentRelationName());
   200 
   190 
   201 		printStartElement(qname("attributes-metadata"));
   191 		printStartElement(qname("attributes-metadata"));
   202 		for (ColumnDescriptor cd : header.getColumnDescriptors()) {
   192 		for (ColumnDescriptor cd : header.getColumnDescriptors()) {