com.exln.stylus.io
Class StylusFileHelpers

java.lang.Object
  extended bycom.ddtek.xmlconverter.utilities.FileHelpers
      extended bycom.exln.stylus.io.StylusFileHelpers

Deprecated. Replaced by FileHelpers.

public class StylusFileHelpers
extends com.ddtek.xmlconverter.utilities.FileHelpers

A collection of static helpers for use with the Stylus Studio custom file system interfaces StylusFile and StylusFileSystem and the class StylusFileFactory.

These items are useful for custom file system implementers as well as Java application developers using the custom file systems.


Method Summary
static void copyFromFile(StylusFile outputStylusFile, String fileName)
          Deprecated.  
static void copyFromStream(StylusFile outputStylusFile, InputStream inStream)
          Deprecated.  
static void copyToFile(StylusFile inputStylusFile, String fileName)
          Deprecated.  
static void copyToStream(StylusFile inputStylusFile, OutputStream outStream)
          Deprecated.  
static boolean doINFO()
          Deprecated.  
static boolean doTRACE()
          Deprecated.  
static Logger getLogger()
          Deprecated.  
 
Methods inherited from class com.ddtek.xmlconverter.utilities.FileHelpers
createIOException, createXMLReader, doCopy, fullRead, getBinDir, getCanonical, getResolvedPathname, getResolvedURI, getRootDir, getStaticResolver, isLocalFile, resolve, stripFile
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

copyToFile

public static void copyToFile(StylusFile inputStylusFile,
                              String fileName)
                       throws IOException
Deprecated.  

Perform the copyToFile function of the StylusFile interface. This method implements StylusFile.copyToFile, using the StylusFile.getInputStream method.
All implementors of StylusFile subclasses are encouraged to use this method as follows:
	public class myclass implements StylusFile {
	...
	public void copyToFile(String outputName) throws IOException {
		StylusFileHelpers.copyToFile(this, outputName);
	}
	...
 

Parameters:
inputStylusFile - The StylusFile object whose data should be copied to a file.
fileName - The name of the output file which will be created.
Throws:
IOException

copyToStream

public static void copyToStream(StylusFile inputStylusFile,
                                OutputStream outStream)
                         throws IOException
Deprecated.  

Copy data from a StylusFile object to a Stream object. This method uses the StylusFile.getInputStream method to get an InputStream, then copies all the data from that InputStream to the parameter OutputStream.

This method can be used to copy data from one StylusFile object to another as follows:

	...
	StylusFileHelpers.copyToStream(stylusFileIn, stylusFileOut.getOutputStream());
	...
 

Parameters:
inputStylusFile - The StylusFile object whose data should be copied.
outStream - The output stream to which the data will be copied.
Throws:
IOException

copyFromFile

public static void copyFromFile(StylusFile outputStylusFile,
                                String fileName)
                         throws IOException
Deprecated.  

Perform the copyFromFile function of the StylusFile interface. This method implements StylusFile.copyFromFile, using the StylusFile.getOutputStream method.
All implementors of StylusFile subclasses are encouraged to use this method as follows:
	public class myclass implements StylusFile {
	...
	public void copyFromFile(String inputName) throws IOException {
		StylusFileHelpers.copyFromFile(this, inputName);
	}
	...
 

Parameters:
outputStylusFile - The StylusFile object to which data should be copied.
fileName - The name of the input file which will be copied.
Throws:
IOException

copyFromStream

public static void copyFromStream(StylusFile outputStylusFile,
                                  InputStream inStream)
                           throws IOException
Deprecated.  

Copy data from an InputStream object to a StylusFile object. This method uses the StylusFile.getOutputStream method to get an OutputStream, then copies all the data from the parameter inputStream to that OutputStream.

This method can be used to copy data from one StylusFile object to another as follows:

	...
	StylusFileHelpers.copyFromStream(stylusFileOut, stylusFileIn.getInputStream());
	...
 

Parameters:
outputStylusFile - The StylusFile object to which data should be copied.
inStream - The input stream from which the data will be copied.
Throws:
IOException

getLogger

public static Logger getLogger()
Deprecated.  

Get the StylusFileHelpers.Logger object.

Logging Facilities within Stylus Studio Custom File Systems
This section describes Stylus Studio's support for the Java logging mechanism in its custom file systems.
Any custom file system can write log messages using the Logger returned by this method. When a custom file system is used inside Stylus Studio, the log messages are displayed in the Stylus Studio Output Window. When a custom file system is used in a standalone Java program (using StylusFileFactory), the log messages are be written to stdout with System.out.println(). The command line utilities StylusXslt, StylusXql, StylusDiff, and XmlValidator do not support logging. Any calls to write messages using this logger will be ignored.

There is at most one instance of this class, created by the first call to getLogger(). Once you have the Logger object, you can use it to write log messages, or change the filtering Level for all subsequent messages.

Each message to be logged has a Level associated with it. Two levels are of particular interest:

For details on writing log messages, see Logger and Level.

The Logger has a filtering level associated with it. Any message whose level is lower than the current filtering level is ignored. The filtering level is set in two ways:

  1. System properties can be used to set the initial filtering level when the Logger is constructed.
    • TRACE sets the initial filtering level to Level.FINE (fine and info messages appear)
    • NOINFO sets the initial filtering level to Level.OFF (no message appear)
    If neither is present, the initial filtering level is Level.INFO (only info messages appear)
  2. A Java class can change the filtering level at any time by calling the Logger.setLevel(java.util.logging.Level) method. The new level remains in effect until setLevel is called again by any class.

This is typical code inside a custom file system which writes a tracing message:

	...
  private static boolean doTRACE = StylusFileHelpers.doTRACE();
	private static void TRACE(String msg) {
		StylusFileHelpers.getLogger().fine(msg);
	}
	...
	void mymethod() {
		if (doTRACE) TRACE("mymethod called");
	...
	}
 

This code could be used in a Java application to suppress all logging messages:

	StylusFileHelpers.getLogger().setLevel(java.util.logging.Level.OFF);
 
although it might be preferable to start the JVM with the parameter -DNOINFO.


doTRACE

public static boolean doTRACE()
Deprecated.  

Return whether the TRACE method will generate any output. If TRACE is defined as recommended for getLogger(), then the simplest way to write a tracing message is with:
 TRACE("my message");
 
Since tracing is usually off, this generates unnecessary overhead, especially if the parameter to TRACE() is expensive to evaluate. This technique should, therefore, be modified to improve performance. The recommended technique is:
	static boolean doTRACE = StylusFileHelpers.doTRACE();
  ...
  void mymethod() {
		if (doTRACE) TRACE("mymethod called");
	...
	}
  ...
 

Returns:
A boolean value indicating whether TRACE output will actually be written to the log file.

doINFO

public static boolean doINFO()
Deprecated.  

Return whether the INFO method will generate any output. If INFO is defined as:
	static void INFO(String s)  { StylusFileHelpers.getLogger().info(s); }
then the simplest way to write a tracing message is with:
 INFO("my message");
 

If INFO is usually turned off, then this technique should be modified to improve performance. The recommended technique is:

	static boolean doINFO = StylusFileHelpers.doINFO();
  ...
  void mymethod() {
		if (doINFO) INFO("mymethod called");
	...
	}
  ...

Returns:
A boolean value indicating whether INFO output will actually be written to the log file.