/* * 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.dax; import java.io.Writer; import java.io.IOException; /** * <code>Leaf</code> is an abstract base class for leaf nodes in the * instance tree. * * @author Jens-S. Vöckler * @author Yong Zhao * @version $Revision$ * * @see PseudoText * @see Filename */ public abstract class Leaf extends DAX implements Cloneable { /** * Creates and returns a copy of this object. * @return a new instance. */ public abstract Object clone(); /** * Dumps the state of the filename as PlainFilenameType without the * transiency information. Other leaves will use their regular toXML * method. * * @param indent is a <code>String</code> of spaces used for pretty * printing. The initial amount of spaces should be an empty string. * The parameter is used internally for the recursive traversal. * @param namespace is the XML schema namespace prefix. If neither * empty nor null, each element will be prefixed with this prefix, * and the root element will map the XML namespace. * @param flag if bit#0 is set, also dump the linkage information, * otherwise do not dump linkage information. If bit#1 is set, also * dump optionality for true optional files. Unused in base class. * @return a String which contains the state of the current class * and its siblings using XML. Note that these strings might become large. * * @see #toXML( String, String ) */ public String shortXML( String indent, String namespace, int flag ) { return toXML(indent,namespace); } /** * Dumps the state of the filename as PlainFilenameType without the * transiency information. Other leaves will use their regular toXML * method. * * @param stream is a stream opened and ready for writing. This can also * be a string stream for efficient output. * @param indent is a <code>String</code> of spaces used for pretty * printing. The initial amount of spaces should be an empty string. * The parameter is used internally for the recursive traversal. * @param namespace is the XML schema namespace prefix. If neither * empty nor null, each element will be prefixed with this prefix, * and the root element will map the XML namespace. * @param flag if bit#0 is set, also dump the linkage information, * otherwise do not dump linkage information. If bit#1 is set, also * dump optionality for true optional files. Unused in base class. * @exception IOException if something fishy happens to the stream. * * @see #toXML( Writer, String, String ) */ public void shortXML( Writer stream, String indent, String namespace, int flag ) throws IOException { toXML( stream, indent, namespace ); } }