/*
* 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.directive;
import java.io.*;
import java.util.MissingResourceException;
import edu.isi.pegasus.common.util.Currently;
import org.griphyn.vdl.classes.*;
import org.griphyn.vdl.parser.*;
import org.griphyn.vdl.classes.Definitions;
import org.griphyn.vdl.util.Logging;
import org.xml.sax.InputSource;
/**
* This class uses the <code>VDLxParser</code> to parse VDL XML
* specification and output VDL textual specification.
*
* @author Jens-S. Vöckler
* @author Yong Zhao
* @version $Revision$
*
* @see org.griphyn.vdl.parser.VDLxParser
* @see org.griphyn.vdl.parser.DefinitionHandler
*/
public class VDLxConvert extends Directive implements DefinitionHandler
{
private Writer m_writer;
/**
* Constructor
*/
public VDLxConvert()
throws IOException, MissingResourceException
{
super();
}
/**
* Reads VDLx specification and outputs vdlt specification
* @param reader the source vdlx reader
* @param writer the target vdlt writer
*/
public void VDLx2VDLt(Reader reader, Writer writer)
{
m_writer = writer;
org.griphyn.vdl.parser.VDLxParser parser =
new org.griphyn.vdl.parser.VDLxParser(m_props.getVDLSchemaLocation());
parser.parse( new InputSource(reader), this );
}
/**
* This method implements the interface defined in DefinitionHandler
* to output the vdlt specification.
*
* @param d is the Definition that is ready to be stored.
* @return always true, if the write was successful.
*/
public boolean store( Definition d )
{
boolean result = true;
try {
if ( m_verbose )
m_logger.log( "directive", 3, d.shortID() );
d.toString( m_writer );
} catch ( IOException ioe ) {
m_logger.log( "default", 0, "IO Error: " + ioe.getMessage() );
result = false;
}
return result;
}
}