/******************************************************************************* * Copyright (c) 2001, 2005 IBM Corporation 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: * IBM Corporation - initial API and implementation * Jens Lukowski/Innoopract - initial renaming/restructuring * *******************************************************************************/ package org.eclipse.wst.xml.core.internal.document; import org.w3c.dom.Attr; import org.w3c.dom.Element; import org.w3c.dom.Node; /** * * XMLModelNotifier manages the notification process. Clients should not use * extend or reference. * * ISSUE: should be internalized. */ public interface XMLModelNotifier { /** * attrReplaced method * * @param element * org.w3c.dom.Element * @param newAttr * org.w3c.dom.Attr * @param oldAttr * org.w3c.dom.Attr */ void attrReplaced(Element element, Attr newAttr, Attr oldAttr); /** * Signal that changing is starting. * */ void beginChanging(); /** * Signal that changing is starting with a brand new model. * */ void beginChanging(boolean newModel); /** * Cancel pending notifications. This is called in the context of * "reinitialization" so is assumed ALL notifications can be safely * canceled, assuming that once factories and adapters are re-initialized * they will be re-notified as text is set in model, if still appropriate. */ void cancelPending(); /** * childReplaced method * * @param parentNode * org.w3c.dom.Node * @param newChild * org.w3c.dom.Node * @param oldChild * org.w3c.dom.Node */ void childReplaced(Node parentNode, Node newChild, Node oldChild); /** * Editable state changed for node. * */ void editableChanged(Node node); /** * Signal changing is finished. * */ void endChanging(); /** * Signal end tag changed. * * @param element * */ void endTagChanged(Element element); /** * Used to reflect state of model. * * @return true if model had changed. * */ boolean hasChanged(); /** * Used to reflect state of parsing process. * * @return true if model is currently changing. */ boolean isChanging(); /** * signal property changed * * @param node */ void propertyChanged(Node node); /** * signal start tag changed * * @param element */ void startTagChanged(Element element); /** * signal structured changed. * * @param node */ void structureChanged(Node node); /** * valueChanged method * * @param node * org.w3c.dom.Node */ void valueChanged(Node node); }