/* * $RCSfile: UpdateAdapter.java,v $ * * Copyright 1990-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * 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 version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */ package com.sun.perseus.model; import java.io.InputStream; /** * A simple <code>UpdateListener</code> implementation which can * check whether or not the document loading succeeded. * * @version $Id: UpdateAdapter.java,v 1.5 2006/04/21 06:39:49 st125089 Exp $ */ public class UpdateAdapter implements UpdateListener { /** * Set to true if the load complete method is called * Set to false when loadStarting is called. */ protected boolean loadComplete = false; /** * Set to true if the loadingFailed method is called. * Set to false when loadStarting is called */ protected boolean loadingFailed = false; /** * Set to true if the loadStarting method is called */ protected boolean loadStarting = false; /** * The last recorded loadingFailed exception */ protected Exception loadingFailedException = null; /** * Invoked when a node's rendering is about to be modified * * @param node the node which is about to be modified */ public void modifyingNodeRendering(ModelNode node) { } /** * @return true if the loading has failed. */ public boolean hasLoadingFailed() { return loadingFailed; } /** * Invoked when a node has been inserted into the tree * * @param node the newly inserted node */ public void nodeInserted(final ModelNode node) { } /** * Invoked when a node is about to be modified * * @param node the node which is about to be modified */ public void modifyingNode(final ModelNode node) { } /** * Invoked when a node was just modified * * @param node the node which was modified */ public void modifiedNode(final ModelNode node) { } /** * Invoked when the node has finished loading. * * @param node the <code>node</code> for which loading * is complete. */ public void loadComplete(final ModelNode node) { if (node instanceof DocumentNode) { loadComplete = true; } } /** * Invoked when a document error happened before finishing loading. * * @param documentNode the <code>DocumentNode</code> for which loading * has failed. * @param error the exception which describes the reason why loading * failed. */ public void loadingFailed(final DocumentNode documentNode, final Exception error) { loadingFailed = true; loadingFailedException = error; } /** * Invoked when the document starts loading * * @param documentNode the <code>DocumentNode</code> for which loading * is starting * @param is the <code>InputStream</code> from which SVG content * is loaded. */ public void loadStarting(final DocumentNode documentNode, final InputStream is) { loadStarting = true; loadingFailed = false; loadComplete = false; } /** * Invoked when the input node has started loading * * @param node the <code>ModelNode</code> for which loading * has started. */ public void loadBegun(final ModelNode node) { } /** * Invoked when a string has been appended, during a load * phase. This is only used when parsing a document and is * used in support of progressive download, like the other * loadXXX methods. * * @param node the <code>ModelNode</code> on which text has been * inserted. */ public void textInserted(final ModelNode node) { } /** * @return true if a document loading started and then failed */ public boolean loadSuccess() { System.err.println(">>>>>>>>>>>> loadStarting : " + loadStarting); System.err.println(">>>>>>>>>>>> loadComplete : " + loadComplete); System.err.println(">>>>>>>>>>>> loadingFailed: " + loadingFailed); return loadStarting && loadComplete && !loadingFailed; } /** * @return the last loadingFailed exception */ public Exception getLoadingFailedException() { return loadingFailedException; } }