FileDocCategorySizeDatePackage
LoadProperties.javaAPI DocApache Ant 1.707442Wed Dec 13 06:16:22 GMT 2006org.apache.tools.ant.taskdefs

LoadProperties

public class LoadProperties extends org.apache.tools.ant.Task
Load a file's contents as Ant properties.
since
Ant 1.5
ant.task
category="utility"

Fields Summary
private org.apache.tools.ant.types.Resource
src
Source resource.
private final Vector
filterChains
Holds filterchains
private String
encoding
Encoding to use for input; defaults to the platform's default encoding.
Constructors Summary
Methods Summary
public voidaddConfigured(org.apache.tools.ant.types.ResourceCollection a)
Set the source resource.

param
a the resource to load as a single element Resource collection.
since
Ant 1.7

        if (src != null) {
            throw new BuildException("only a single source is supported");
        }
        if (a.size() != 1) {
            throw new BuildException("only single argument resource collections"
                                     + " are supported");
        }
        src = (Resource) a.iterator().next();
    
public final voidaddFilterChain(org.apache.tools.ant.types.FilterChain filter)
Adds a FilterChain.

param
filter the filter to add

        filterChains.addElement(filter);
    
private voidassertSrcIsJavaResource()

        if (src == null) {
            src = new JavaResource();
            src.setProject(getProject());
        } else if (!(src instanceof JavaResource)) {
            throw new BuildException("expected a java resource as source");
        }
    
public org.apache.tools.ant.types.PathcreateClasspath()
Add a classpath to use when looking up a resource.

return
The classpath to be configured

        assertSrcIsJavaResource();
        return ((JavaResource) src).createClasspath();
    
public final voidexecute()
load Ant properties from the source file or resource

exception
BuildException if something goes wrong with the build

        //validation
        if (src == null) {
            throw new BuildException("A source resource is required.");
        }
        if (!src.isExists()) {
            if (src instanceof JavaResource) {
                // dreaded backwards compatibility
                log("Unable to find resource " + src, Project.MSG_WARN);
                return;
            }
            throw new BuildException("Source resource does not exist: " + src);
        }

        BufferedInputStream bis = null;
        Reader instream = null;
        ByteArrayInputStream tis = null;

        try {
            bis = new BufferedInputStream(src.getInputStream());
            if (encoding == null) {
                instream = new InputStreamReader(bis);
            } else {
                instream = new InputStreamReader(bis, encoding);
            }

            ChainReaderHelper crh = new ChainReaderHelper();
            crh.setPrimaryReader(instream);
            crh.setFilterChains(filterChains);
            crh.setProject(getProject());
            instream = crh.getAssembledReader();

            String text = crh.readFully(instream);

            if (text != null) {
                if (!text.endsWith("\n")) {
                    text = text + "\n";
                }

                if (encoding == null) {
                    tis = new ByteArrayInputStream(text.getBytes());
                } else {
                    tis = new ByteArrayInputStream(text.getBytes(encoding));
                }
                final Properties props = new Properties();
                props.load(tis);

                Property propertyTask = new Property();
                propertyTask.bindToOwner(this);
                propertyTask.addProperties(props);
            }

        } catch (final IOException ioe) {
            final String message = "Unable to load file: " + ioe.toString();
            throw new BuildException(message, ioe, getLocation());
        } finally {
            FileUtils.close(bis);
            FileUtils.close(tis);
        }
    
public org.apache.tools.ant.types.PathgetClasspath()
get the classpath used by this LoadProperties.

return
The classpath

        assertSrcIsJavaResource();
        return ((JavaResource) src).getClasspath();
    
public voidsetClasspath(org.apache.tools.ant.types.Path classpath)
Set the classpath to use when looking up a resource.

param
classpath to add to any existing classpath

        assertSrcIsJavaResource();
        ((JavaResource) src).setClasspath(classpath);
    
public voidsetClasspathRef(org.apache.tools.ant.types.Reference r)
Set the classpath to use when looking up a resource, given as reference to a <path> defined elsewhere

param
r The reference value

        assertSrcIsJavaResource();
        ((JavaResource) src).setClasspathRef(r);
    
public final voidsetEncoding(java.lang.String encoding)
Encoding to use for input, defaults to the platform's default encoding.

For a list of possible values see http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html .

param
encoding The new Encoding value

        this.encoding = encoding;
    
public voidsetResource(java.lang.String resource)
Set the resource name of a property file to load.

param
resource resource on classpath

        assertSrcIsJavaResource();
        ((JavaResource) src).setName(resource);
    
public final voidsetSrcFile(java.io.File srcFile)
Set the file to load.

param
srcFile The new SrcFile value


                    
          
        addConfigured(new FileResource(srcFile));