/* * This file or a portion of this file is licensed under the terms of * the Globus Toolkit Public License, found in file ../GTPL, or at * http://www.globus.org/toolkit/download/license.html. This notice must * appear in redistributions of this file, with or without modification. * * Redistributions of this Software, with or without modification, must * reproduce the GTPL in: (1) the Software, or (2) the Documentation or * some other similar material which is provided with the Software (if * any). * * Copyright 1999-2004 University of Chicago and The University of * Southern California. All rights reserved. */ package org.griphyn.vdl.dbschema; import org.griphyn.vdl.parser.*; import org.griphyn.vdl.util.Logging; import org.griphyn.vdl.classes.*; /** * This class adds a given Definition from the parser's callback into * the fresh in-memory storage. It is a streamlined version of the more * versatile {@link MemoryStorage} handler. End-users should not use * this class. * * @author Jens-S. Vöckler * @author Yong Zhao * @version $Revision$ */ class MyCallbackHandler implements FinalizerHandler { /** * This is a reference to the already established in-memory storage. */ private Definition m_memory; /** * The c'tor initializes the references to a single Definition. */ public MyCallbackHandler() { this.m_memory = null; } /** * Returns the value stored by the XML reader's callback function. * * @return a single Definition that was read, or <code>null</code>. */ public Definition getDefinition() { return this.m_memory; } /** * This method adds the given Definition to whatever storage is * implemented underneath. * * @param d is the Definition that is ready to be stored. * @return true, if new version was stored and database modified */ public boolean store( VDL d ) { if ( d instanceof Definition ) { this.m_memory = (Definition) d; Logging.instance().log( "chunk", 0, "found " + m_memory.shortID() ); return true; } else { Logging.instance().log( "chunk", 0, "not a definition: " + d.toString() ); return false; } } }