/*
* Freeplane - mind map editor
* Copyright (C) 2008 Dimitry Polivaev
*
* This file author is Dimitry Polivaev
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.freeplane.core.io;
import java.io.IOException;
import java.util.Enumeration;
import org.freeplane.core.extension.IExtension;
import org.freeplane.n3.nanoxml.XMLElement;
/**
* @author Dimitry Polivaev
* 17.01.2009
*/
public class UnknownElementWriter implements IExtensionAttributeWriter, IExtensionElementWriter {
public void writeAttributes(final ITreeWriter writer, final Object userObject, final IExtension extension) {
final UnknownElements elements = (UnknownElements) extension;
final XMLElement unknownElements = elements.getUnknownElements();
if (unknownElements != null) {
final Enumeration<String> unknownAttributes = unknownElements.enumerateAttributeNames();
while (unknownAttributes.hasMoreElements()) {
final String name = unknownAttributes.nextElement();
final String value = unknownElements.getAttribute(name, null);
writer.addAttribute(name, value);
}
}
}
public void writeContent(final ITreeWriter writer, final Object element, final IExtension extension)
throws IOException {
final UnknownElements elements = (UnknownElements) extension;
final XMLElement unknownElements = elements.getUnknownElements();
if (unknownElements != null) {
final Enumeration<XMLElement> unknownChildren = unknownElements.enumerateChildren();
while (unknownChildren.hasMoreElements()) {
writer.addElement(null, unknownChildren.nextElement());
}
}
}
}