public abstract class AbstractClasspathResource extends Resource
Modifier and Type | Class and Description |
---|---|
static class |
AbstractClasspathResource.ClassLoaderWithFlag |
MAGIC, UNKNOWN_DATETIME, UNKNOWN_SIZE
description, location, project
Constructor and Description |
---|
AbstractClasspathResource() |
Modifier and Type | Method and Description |
---|---|
Path |
createClasspath()
Add a classpath to use when looking up a resource.
|
protected void |
dieOnCircularReference(java.util.Stack<java.lang.Object> stk,
Project p)
Check to see whether any DataType we hold references to is
included in the Stack (which holds all DataType instances that
directly or indirectly reference this instance, including this
instance itself).
|
protected AbstractClasspathResource.ClassLoaderWithFlag |
getClassLoader()
combines the various ways that could specify a ClassLoader and
potentially creates one that needs to be cleaned up when it is
no longer needed so that classes can get garbage collected.
|
Path |
getClasspath()
get the classpath used by this
LoadProperties . |
java.io.InputStream |
getInputStream()
Return an InputStream for reading the contents of this Resource.
|
Reference |
getLoader()
Get the loader.
|
boolean |
isExists()
Learn whether this resource exists.
|
protected abstract java.io.InputStream |
openInputStream(java.lang.ClassLoader cl)
open the input stream from a specific classloader
|
void |
setClasspath(Path classpath)
Set the classpath to use when looking up a resource.
|
void |
setClasspathRef(Reference r)
Set the classpath to use when looking up a resource,
given as reference to a <path> defined elsewhere
|
void |
setLoaderRef(Reference r)
Use the reference to locate the loader.
|
void |
setParentFirst(boolean b)
Whether to consult the parent classloader first.
|
void |
setRefid(Reference r)
Overrides the super version.
|
as, clone, compareTo, equals, getLastModified, getMagicNumber, getName, getOutputStream, getSize, hashCode, isDirectory, isFilesystemOnly, iterator, setDirectory, setExists, setLastModified, setName, setSize, size, toLongString, toString
checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes
getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject
public void setClasspath(Path classpath)
classpath
- to add to any existing classpathpublic Path createClasspath()
public void setClasspathRef(Reference r)
r
- The reference valuepublic Path getClasspath()
LoadProperties
.public Reference getLoader()
public void setLoaderRef(Reference r)
This allow multiple taskdef/typedef to use the same class loader, so they can be used together. It eliminate the need to put them in the CLASSPATH.
r
- the reference to locate the loader.public void setParentFirst(boolean b)
Only relevant if a classpath has been specified.
b
- booleanpublic void setRefid(Reference r)
public boolean isExists()
public java.io.InputStream getInputStream() throws java.io.IOException
getInputStream
in class Resource
java.io.IOException
- if an error occurs.protected AbstractClasspathResource.ClassLoaderWithFlag getClassLoader()
protected abstract java.io.InputStream openInputStream(java.lang.ClassLoader cl) throws java.io.IOException
cl
- the classloader to use. Will be null if the system classloader is usedjava.io.IOException
- if an error occurs.protected void dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)
DataType
If one is included, throw a BuildException created by circularReference
.
This implementation is appropriate only for a DataType that cannot hold other DataTypes as children.
The general contract of this method is that it shouldn't do
anything if DataType.checked
is true and
set it to true on exit.
dieOnCircularReference
in class DataType
stk
- the stack of references to check.p
- the project to use to dereference the references.