/* * 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 org.freeplane.core.extension.IExtension; public class WriteManager { final private ListHashTable<String, IAttributeWriter> attributeWriters = new ListHashTable<String, IAttributeWriter>(); final private ListHashTable<String, IElementWriter> elementWriters = new ListHashTable<String, IElementWriter>(); final private ListHashTable<Class<? extends IExtension>, IExtensionAttributeWriter> extensionAttributeWriters = new ListHashTable<Class<? extends IExtension>, IExtensionAttributeWriter>();; final private ListHashTable<Class<? extends IExtension>, IExtensionElementWriter> extensionElementWriters = new ListHashTable<Class<? extends IExtension>, IExtensionElementWriter>(); /* * (non-Javadoc) * @see freeplane.persistence.Writer#addAttributeSaver(java.lang.String, * freeplane.persistence.AttributeSaver) */ /* * (non-Javadoc) * @see * freeplane.persistence.ISaverManager#addAttributeSaver(java.lang.String, * freeplane.persistence.AttributeSaver) */ public void addAttributeWriter(final String parentTag, final IAttributeWriter aw) { attributeWriters.add(parentTag, aw); } public void addElementWriter(final String parentTag, final IElementWriter nw) { elementWriters.add(parentTag, nw); } public void addExtensionAttributeWriter(final Class<? extends IExtension> clazz, final IExtensionAttributeWriter aw) { extensionAttributeWriters.add(clazz, aw); } public void addExtensionElementWriter(final Class<? extends IExtension> clazz, final IExtensionElementWriter nw) { extensionElementWriters.add(clazz, nw); } public ListHashTable<String, IAttributeWriter> getAttributeWriters() { return attributeWriters; } public ListHashTable<String, IElementWriter> getElementWriters() { return elementWriters; } public ListHashTable<Class<? extends IExtension>, IExtensionAttributeWriter> getExtensionAttributeWriters() { return extensionAttributeWriters; } public ListHashTable<Class<? extends IExtension>, IExtensionElementWriter> getExtensionElementWriters() { return extensionElementWriters; } public void removeAttributeWriter(final String parentTag, final IAttributeWriter aw) { final boolean removed = attributeWriters.remove(parentTag, aw); assert removed; } public void removeElementWriter(final String parentTag, final IElementWriter nw) { final boolean removed = elementWriters.remove(parentTag, nw); assert removed; } public void removeExtensionAttributeWriter(final Class<? extends IExtension> clazz, final IExtensionAttributeWriter aw) { final boolean removed = extensionAttributeWriters.remove(clazz, aw); assert removed; } public void removeExtensionNodeWriter(final Class<? extends IExtension> clazz, final IExtensionElementWriter nw) { final boolean removed = extensionElementWriters.remove(clazz, nw); assert removed; } }