/******************************************************************************* * Copyright (c) 2015 Tasktop Technologies and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * David Green - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.wikitext.util; import static com.google.common.base.Preconditions.checkNotNull; import java.util.Collections; import java.util.Iterator; import javax.xml.namespace.NamespaceContext; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; import com.google.common.collect.ImmutableSet; class XmlStreamWriterAdapter implements XMLStreamWriter { private final XmlStreamWriter delegate; public XmlStreamWriterAdapter(XmlStreamWriter delegate) { this.delegate = checkNotNull(delegate, "Must provide a delegate"); //$NON-NLS-1$ } @Override public void close() { delegate.close(); } @Override public void flush() { delegate.flush(); } @Override public String getPrefix(String uri) { return delegate.getPrefix(uri); } @Override public void setDefaultNamespace(String uri) { delegate.setDefaultNamespace(uri); } @Override public void setPrefix(String prefix, String uri) { delegate.setPrefix(prefix, uri); } @Override public void writeAttribute(String localName, String value) { delegate.writeAttribute(localName, value); } @Override public void writeAttribute(String namespaceURI, String localName, String value) { delegate.writeAttribute(namespaceURI, localName, value); } @Override public void writeAttribute(String prefix, String namespaceURI, String localName, String value) { delegate.writeAttribute(prefix, namespaceURI, localName, value); } @Override public void writeCData(String data) { delegate.writeCData(data); } @Override public void writeCharacters(String text) { delegate.writeCharacters(text); } @Override public void writeCharacters(char[] text, int start, int len) { delegate.writeCharacters(text, start, len); } @Override public void writeComment(String data) { delegate.writeComment(data); } @Override public void writeDTD(String dtd) { delegate.writeDTD(dtd); } @Override public void writeDefaultNamespace(String namespaceURI) { delegate.writeDefaultNamespace(namespaceURI); } @Override public void writeEmptyElement(String localName) { delegate.writeEmptyElement(localName); } @Override public void writeEmptyElement(String namespaceURI, String localName) { delegate.writeEmptyElement(namespaceURI, localName); } @Override public void writeEmptyElement(String prefix, String localName, String namespaceURI) { delegate.writeEmptyElement(prefix, localName, namespaceURI); } @Override public void writeEndDocument() { delegate.writeEndDocument(); } @Override public void writeEndElement() { delegate.writeEndElement(); } @Override public void writeEntityRef(String name) { delegate.writeEntityRef(name); } @Override public void writeNamespace(String prefix, String namespaceURI) { delegate.writeNamespace(prefix, namespaceURI); } @Override public void writeProcessingInstruction(String target) { delegate.writeProcessingInstruction(target); } @Override public void writeProcessingInstruction(String target, String data) { delegate.writeProcessingInstruction(target, data); } @Override public void writeStartDocument() { delegate.writeStartDocument(); } @Override public void writeStartDocument(String version) { delegate.writeStartDocument(version); } @Override public void writeStartDocument(String encoding, String version) { delegate.writeStartDocument(encoding, version); } @Override public void writeStartElement(String localName) { delegate.writeStartElement(localName); } @Override public void writeStartElement(String namespaceURI, String localName) { delegate.writeStartElement(namespaceURI, localName); } @Override public void writeStartElement(String prefix, String localName, String namespaceURI) { delegate.writeStartElement(prefix, localName, namespaceURI); } @Override public NamespaceContext getNamespaceContext() { return new NamespaceContext() { @Override public Iterator<String> getPrefixes(String namespaceUri) { String prefix = getPrefix(namespaceUri); if (prefix == null) { return ImmutableSet.<String> of().iterator(); } return Collections.singletonList(prefix).iterator(); } @Override public String getPrefix(String namespaceUri) { return delegate.getPrefix(namespaceUri); } @Override public String getNamespaceURI(String prefix) { return delegate.getNamespaceURI(prefix); } }; } @Override public Object getProperty(String name) throws IllegalArgumentException { checkNotNull(name); throw new IllegalArgumentException(name); } @Override public void setNamespaceContext(NamespaceContext context) throws XMLStreamException { checkNotNull(context); // silently ignore } }