diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java index c6f90f1e1..3a3500893 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java @@ -23,7 +23,13 @@ public class DefaultTaskContext extends DefaultContext implements TaskContext { - private File m_baseDirectory; + /** + * Constructor for Context with no parent contexts. + */ + public DefaultTaskContext( final Map contextData ) + { + this( contextData ); + } /** * Constructor for Context with no parent contexts. @@ -32,17 +38,13 @@ public class DefaultTaskContext { this( null ); } + /** * Constructor. */ public DefaultTaskContext( final TaskContext parent ) { super( parent ); - - if( null != parent ) - { - m_baseDirectory = (File)parent.getBaseDirectory(); - } } /** @@ -52,10 +54,7 @@ public class DefaultTaskContext */ public JavaVersion getJavaVersion() { - try - { - return (JavaVersion)get( JAVA_VERSION ); - } + try { return (JavaVersion)get( JAVA_VERSION ); } catch( final ContextException ce ) { throw new IllegalStateException( "No JavaVersion in Context" ); @@ -70,10 +69,7 @@ public class DefaultTaskContext */ public String getName() { - try - { - return (String)get( NAME ); - } + try { return (String)get( NAME ); } catch( final ContextException ce ) { throw new IllegalStateException( "No Name in Context" ); @@ -87,7 +83,11 @@ public class DefaultTaskContext */ public File getBaseDirectory() { - return m_baseDirectory; + try { return (File)get( BASE_DIRECTORY ); } + catch( final ContextException ce ) + { + throw new IllegalStateException( "No Base Directory in Context" ); + } } /** @@ -102,27 +102,7 @@ public class DefaultTaskContext */ public File resolveFile( final String filename ) { - final File result = FileUtil.resolveFile( m_baseDirectory, filename ); - if( null != result ) return result; - else return null; - } - - /** - * Resolve property. - * This evaluates all property substitutions based on current context. - * - * @param property the property to resolve - * @return the resolved property - */ - public Object resolveValue( final String property ) - throws TaskException - { - try { return PropertyUtil.resolveProperty( property, this, false ); } - catch( final PropertyException pe ) - { - throw new TaskException( "Error resolving " + property + " due to " + pe.getMessage(), - pe ); - } + return FileUtil.resolveFile( getBaseDirectory(), filename ); } /** @@ -157,7 +137,7 @@ public class DefaultTaskContext * * @param property the property */ - public void setProperty( final String name, final Object value, final ScopeEnum scope ) + public void setProperty( final String name, final Object value, final ScopeEnum scope ) throws TaskException { checkPropertyValid( name, value ); @@ -168,11 +148,11 @@ public class DefaultTaskContext if( null == getParent() ) { throw new TaskException( "Can't set a property with parent scope when context " + - " has no parent" ); + " has no parent" ); } else { - ((DefaultTaskContext)getParent()).put( name, value ); + ((TaskContext)getParent()).setProperty( name, value ); } } else if( TOP_LEVEL == scope ) @@ -184,37 +164,12 @@ public class DefaultTaskContext context = (DefaultTaskContext)context.getParent(); } - context.putValue( name, value ); + context.put( name, value ); } else { - throw new TaskException( "Can't set a property with an unknown " + - "property context! (" + scope + ")" ); - } - } - - /** - * put a value in context. - * This put method is overidden so new baseDirectory can be saved - * in member variable. - * - * @param key the key - * @param value the value - */ - public void putValue( final Object key, final Object value ) - throws TaskException - { - if( key.equals( BASE_DIRECTORY ) ) - { - try { m_baseDirectory = (File)value; } - catch( final ClassCastException cce ) - { - throw new TaskException( "Can not set baseDirectory to a non-file value.", - cce ); - } + throw new IllegalStateException( "Unknown property scope! (" + scope + ")" ); } - - put( key, value ); } /** @@ -241,7 +196,7 @@ public class DefaultTaskContext } else if( JAVA_VERSION.equals( name ) && !( value instanceof JavaVersion ) ) { - throw new TaskException( "property " + JAVA_VERSION + + throw new TaskException( "Property " + JAVA_VERSION + " must have a value of type " + JavaVersion.class.getName() ); } diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java index 487a49d59..11ddcb385 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java @@ -68,16 +68,6 @@ public interface TaskContext File resolveFile( String filename ) throws TaskException; - /** - * Resolve property. - * This evaluates all property substitutions based on current context. - * - * @param property the property to resolve - * @return the resolved property - */ - Object resolveValue( String property ) - throws TaskException; - /** * Retrieve property for name. *