org.codehaus.groovy.tools
Class LoaderConfiguration

java.lang.Object
  extended by org.codehaus.groovy.tools.LoaderConfiguration

public class LoaderConfiguration
extends Object

Class used to configure a RootLoader from a stream or by using it's methods.

The stream can be for example a FileInputStream from a file with the following format:

 # comment
 main is classname
 load path
 load file
 load pathWith${property}
 load pathWith!{required.property}
 load path/*.jar
 load path/**/*.jar
 

Defining the main class is required unless setRequireMain(boolean) is called with false, before reading the configuration. You can use the wildcard "*" to filter the path, but only for files, not directories. To match directories use "**". The ${propertyname} is replaced by the value of the system's property name. You can use user.home here for example. If the property does not exist, an empty string will be used. If the path or file after the load command does not exist, the path will be ignored.

Version:
$Revision: 17790 $
Author:
Jochen Theodorou
See Also:
RootLoader

Constructor Summary
LoaderConfiguration()
          creates a new loader configuration
 
Method Summary
 void addClassPath(String path)
          Adds a classpath to this configuration.
 void addFile(File file)
          Adds a file to the classpath if it exists.
 void addFile(String filename)
          Adds a file to the classpath if it exists.
 void configure(InputStream is)
          configures this loader with a stream
 URL[] getClassPathUrls()
          The classpath as URL[] from this configuration.
 String getMainClass()
          Returns the name of the main class for this configuration.
 void setMainClass(String classname)
          Sets the main class.
 void setRequireMain(boolean requireMain)
          Determines if a main class is required when calling.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LoaderConfiguration

public LoaderConfiguration()
creates a new loader configuration

Method Detail

configure

public void configure(InputStream is)
               throws IOException
configures this loader with a stream

Parameters:
is - stream used to read the configuration
Throws:
IOException - if reading or parsing the contents of the stream fails

addFile

public void addFile(File file)
Adds a file to the classpath if it exists.

Parameters:
file - the file to add

addFile

public void addFile(String filename)
Adds a file to the classpath if it exists.

Parameters:
filename - the name of the file to add

addClassPath

public void addClassPath(String path)
Adds a classpath to this configuration. It expects a string with multiple paths, seperated by the system dependent path separator

Parameters:
path - the path as a path separator delimited string
See Also:
File.pathSeparator

getClassPathUrls

public URL[] getClassPathUrls()
The classpath as URL[] from this configuration. This can be used to construct a class loader.

Returns:
the classpath
See Also:
URLClassLoader

getMainClass

public String getMainClass()
Returns the name of the main class for this configuration.

Returns:
the name of the main class or null if not defined

setMainClass

public void setMainClass(String classname)
Sets the main class. If there is already a main class it is overwritten. Calling @see #configure(InputStream) after calling this method does not require a main class definition inside the stream.

Parameters:
classname - the name to become the main class

setRequireMain

public void setRequireMain(boolean requireMain)
Determines if a main class is required when calling.

Parameters:
requireMain - set to false if no main class is required
See Also:
configure(InputStream)

Copyright © 2003-2010 The Codehaus. All rights reserved.