/* (non-Javadoc) * @see org.eclipse.ohf.utilities.xml.IXMLWriter#start() */ @Override public void start() throws IOException { condition(!started, "attempt to start after starting"); levels.clear(); attributes = null; try { if (xmlHeader) { write("<?xml version=\"1.0\" encoding=\"" + getXMLCharsetName(charset) + "\"?>"); if (prettyBase || prettyHeader) write(lineType == LINE_UNIX ? "\n" : "\r\n"); } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block throw new IOException(e.getMessage()); } started = true; }
private void addAttribute(String name, String value, boolean noLines) throws IOException { if (!XMLUtil.isNMToken(name)) throw new IOException("XML name " + name + " is not valid for value '" + value + "'"); newLevelIfRequired(); value = XMLUtil.escapeXML(value, charset, noLines); if (attributes == null) attributes = new String[][] {{name, value}}; else { String[][] newattr = new String[attributes.length + 1][]; for (int i = 0; i < attributes.length; i++) { condition( !attributes[i][0].equals(name), "attempt to define attribute with name " + name + " more than once for value '" + value + "'"); newattr[i] = attributes[i]; } attributes = newattr; attributes[attributes.length - 1] = new String[] {name, value}; } }
private void checkInElement() throws IOException { condition(levels.size() > 0, "not in an element"); }
private void checkStarted() throws IOException { condition(started, "not started"); }