Browse Source

Replace NameEntry class with Pattern class

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270831 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
10a5eaecd4
14 changed files with 118 additions and 312 deletions
  1. +2
    -2
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Expand.java
  2. +5
    -5
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java
  3. +5
    -5
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJExport.java
  4. +3
    -3
      proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/unix/Chmod.java
  5. +12
    -15
      proposal/myrmidon/src/main/org/apache/tools/ant/types/FileSet.java
  6. +0
    -89
      proposal/myrmidon/src/main/org/apache/tools/ant/types/NameEntry.java
  7. +32
    -37
      proposal/myrmidon/src/main/org/apache/tools/ant/types/PatternSet.java
  8. +2
    -2
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Expand.java
  9. +5
    -5
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/MatchingTask.java
  10. +5
    -5
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ide/VAJExport.java
  11. +3
    -3
      proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/unix/Chmod.java
  12. +12
    -15
      proposal/myrmidon/src/todo/org/apache/tools/ant/types/FileSet.java
  13. +0
    -89
      proposal/myrmidon/src/todo/org/apache/tools/ant/types/NameEntry.java
  14. +32
    -37
      proposal/myrmidon/src/todo/org/apache/tools/ant/types/PatternSet.java

+ 2
- 2
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Expand.java View File

@@ -200,7 +200,7 @@ public class Expand extends MatchingTask
for( int v = 0; v < patternsets.size(); v++ ) for( int v = 0; v < patternsets.size(); v++ )
{ {
PatternSet p = (PatternSet)patternsets.get( v ); PatternSet p = (PatternSet)patternsets.get( v );
String[] incls = p.getIncludePatterns( null );
String[] incls = p.getIncludePatterns( getContext() );
if( incls != null ) if( incls != null )
{ {
for( int w = 0; w < incls.length; w++ ) for( int w = 0; w < incls.length; w++ )
@@ -213,7 +213,7 @@ public class Expand extends MatchingTask
} }
} }
} }
String[] excls = p.getExcludePatterns( null );
String[] excls = p.getExcludePatterns( getContext() );
if( excls != null ) if( excls != null )
{ {
for( int w = 0; w < excls.length; w++ ) for( int w = 0; w < excls.length; w++ )


+ 5
- 5
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java View File

@@ -9,10 +9,10 @@ package org.apache.tools.ant.taskdefs;


import java.io.File; import java.io.File;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Pattern;
import org.apache.tools.ant.Task; import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.DirectoryScanner; import org.apache.tools.ant.types.DirectoryScanner;
import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.NameEntry;
import org.apache.tools.ant.types.PatternSet; import org.apache.tools.ant.types.PatternSet;


/** /**
@@ -93,7 +93,7 @@ public abstract class MatchingTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExclude()
public Pattern createExclude()
throws TaskException throws TaskException
{ {
return m_fileset.createExclude(); return m_fileset.createExclude();
@@ -104,7 +104,7 @@ public abstract class MatchingTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExcludesFile()
public Pattern createExcludesFile()
throws TaskException throws TaskException
{ {
return m_fileset.createExcludesFile(); return m_fileset.createExcludesFile();
@@ -115,7 +115,7 @@ public abstract class MatchingTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createInclude()
public Pattern createInclude()
throws TaskException throws TaskException
{ {
return m_fileset.createInclude(); return m_fileset.createInclude();
@@ -126,7 +126,7 @@ public abstract class MatchingTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createIncludesFile()
public Pattern createIncludesFile()
throws TaskException throws TaskException
{ {
return m_fileset.createIncludesFile(); return m_fileset.createIncludesFile();


+ 5
- 5
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJExport.java View File

@@ -9,8 +9,8 @@ package org.apache.tools.ant.taskdefs.optional.ide;


import java.io.File; import java.io.File;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Pattern;
import org.apache.tools.ant.types.PatternSet; import org.apache.tools.ant.types.PatternSet;
import org.apache.tools.ant.types.NameEntry;


/** /**
* Export packages from the Visual Age for Java workspace. The packages are * Export packages from the Visual Age for Java workspace. The packages are
@@ -144,7 +144,7 @@ public class VAJExport extends VAJTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExclude()
public Pattern createExclude()
{ {
return patternSet.createExclude(); return patternSet.createExclude();
} }
@@ -154,7 +154,7 @@ public class VAJExport extends VAJTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createInclude()
public Pattern createInclude()
{ {
return patternSet.createInclude(); return patternSet.createInclude();
} }
@@ -175,8 +175,8 @@ public class VAJExport extends VAJTask


// delegate the export to the VAJUtil object. // delegate the export to the VAJUtil object.
getUtil().exportPackages( destDir, getUtil().exportPackages( destDir,
patternSet.getIncludePatterns( null ),
patternSet.getExcludePatterns( null ),
patternSet.getIncludePatterns( getContext() ),
patternSet.getExcludePatterns( getContext() ),
exportClasses, exportDebugInfo, exportClasses, exportDebugInfo,
exportResources, exportSources, exportResources, exportSources,
useDefaultExcludes, overwrite ); useDefaultExcludes, overwrite );


+ 3
- 3
proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/unix/Chmod.java View File

@@ -11,11 +11,11 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import org.apache.aut.nativelib.Os; import org.apache.aut.nativelib.Os;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Pattern;
import org.apache.tools.ant.taskdefs.exec.Execute; import org.apache.tools.ant.taskdefs.exec.Execute;
import org.apache.tools.ant.taskdefs.exec.ExecuteOn; import org.apache.tools.ant.taskdefs.exec.ExecuteOn;
import org.apache.tools.ant.types.Argument; import org.apache.tools.ant.types.Argument;
import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.NameEntry;
import org.apache.tools.ant.types.PatternSet; import org.apache.tools.ant.types.PatternSet;


/** /**
@@ -119,7 +119,7 @@ public class Chmod
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExclude()
public Pattern createExclude()
throws TaskException throws TaskException
{ {
m_defaultSetDefined = true; m_defaultSetDefined = true;
@@ -131,7 +131,7 @@ public class Chmod
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createInclude()
public Pattern createInclude()
throws TaskException throws TaskException
{ {
m_defaultSetDefined = true; m_defaultSetDefined = true;


+ 12
- 15
proposal/myrmidon/src/main/org/apache/tools/ant/types/FileSet.java View File

@@ -10,6 +10,7 @@ package org.apache.tools.ant.types;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Pattern;
import org.apache.tools.ant.ProjectComponent; import org.apache.tools.ant.ProjectComponent;


/** /**
@@ -34,10 +35,6 @@ public class FileSet
private boolean m_isCaseSensitive = true; private boolean m_isCaseSensitive = true;
private File m_dir; private File m_dir;


public FileSet()
{
}

/** /**
* Sets case sensitivity of the file system * Sets case sensitivity of the file system
*/ */
@@ -76,9 +73,9 @@ public class FileSet
* *
* @param excl The file to fetch the exclude patterns from. * @param excl The file to fetch the exclude patterns from.
*/ */
public void setExcludesfile( final File excl )
public void setExcludesfile( final File excludesfile )
{ {
m_defaultPatterns.setExcludesfile( excl );
m_defaultPatterns.setExcludesfile( excludesfile );
} }


/** /**
@@ -87,7 +84,7 @@ public class FileSet
* *
* @param includes the string containing the include patterns * @param includes the string containing the include patterns
*/ */
public void setIncludes( String includes )
public void setIncludes( final String includes )
{ {
m_defaultPatterns.setIncludes( includes ); m_defaultPatterns.setIncludes( includes );
} }
@@ -97,9 +94,9 @@ public class FileSet
* *
* @param incl The file to fetch the include patterns from. * @param incl The file to fetch the include patterns from.
*/ */
public void setIncludesfile( File incl )
public void setIncludesfile( final File includesfile )
{ {
m_defaultPatterns.setIncludesfile( incl );
m_defaultPatterns.setIncludesfile( includesfile );
} }


public void setupDirectoryScanner( final FileScanner ds ) public void setupDirectoryScanner( final FileScanner ds )
@@ -124,8 +121,8 @@ public class FileSet
m_dir + " with " + m_defaultPatterns; m_dir + " with " + m_defaultPatterns;
getLogger().debug( message ); getLogger().debug( message );


ds.setIncludes( m_defaultPatterns.getIncludePatterns( null ) );
ds.setExcludes( m_defaultPatterns.getExcludePatterns( null ) );
ds.setIncludes( m_defaultPatterns.getIncludePatterns( getContext() ) );
ds.setExcludes( m_defaultPatterns.getExcludePatterns( getContext() ) );
if( m_useDefaultExcludes ) if( m_useDefaultExcludes )
{ {
ds.addDefaultExcludes(); ds.addDefaultExcludes();
@@ -167,7 +164,7 @@ public class FileSet
/** /**
* add a name entry on the exclude list * add a name entry on the exclude list
*/ */
public NameEntry createExclude()
public Pattern createExclude()
{ {
return m_defaultPatterns.createExclude(); return m_defaultPatterns.createExclude();
} }
@@ -175,7 +172,7 @@ public class FileSet
/** /**
* add a name entry on the include files list * add a name entry on the include files list
*/ */
public NameEntry createExcludesFile()
public Pattern createExcludesFile()
{ {
return m_defaultPatterns.createExcludesFile(); return m_defaultPatterns.createExcludesFile();
} }
@@ -183,7 +180,7 @@ public class FileSet
/** /**
* add a name entry on the include list * add a name entry on the include list
*/ */
public NameEntry createInclude()
public Pattern createInclude()
{ {
return m_defaultPatterns.createInclude(); return m_defaultPatterns.createInclude();
} }
@@ -191,7 +188,7 @@ public class FileSet
/** /**
* add a name entry on the include files list * add a name entry on the include files list
*/ */
public NameEntry createIncludesFile()
public Pattern createIncludesFile()
{ {
return m_defaultPatterns.createIncludesFile(); return m_defaultPatterns.createIncludesFile();
} }


+ 0
- 89
proposal/myrmidon/src/main/org/apache/tools/ant/types/NameEntry.java View File

@@ -1,89 +0,0 @@
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.tools.ant.types;

import org.apache.tools.ant.Project;

/**
* inner class to hold a name on list. "If" and "Unless" attributes may be
* used to invalidate the entry based on the existence of a property
* (typically set thru the use of the Available task).
*/
public class NameEntry
{
private String m_if;
private String m_name;
private String m_unless;
private PatternSet m_set;

public NameEntry( final PatternSet set )
{
m_set = set;
}

public void setIf( final String ifCondition )
{
m_if = ifCondition;
}

public void setName( final String name )
{
m_name = name;
}

public void setUnless( final String unlessCondition )
{
m_unless = unlessCondition;
}

public String evalName( Project p )
{
return valid( p ) ? m_name : null;
}

public String toString()
{
StringBuffer buf = new StringBuffer( m_name );
if( ( m_if != null ) || ( m_unless != null ) )
{
buf.append( ":" );
String connector = "";

if( m_if != null )
{
buf.append( "if->" );
buf.append( m_if );
connector = ";";
}
if( m_unless != null )
{
buf.append( connector );
buf.append( "unless->" );
buf.append( m_unless );
}
}

return buf.toString();
}

private boolean valid( Project p )
{
if( m_if != null && p.getProperty( m_if ) == null )
{
return false;
}
else if( m_unless != null && p.getProperty( m_unless ) != null )
{
return false;
}
else
{
return true;
}
}
}

+ 32
- 37
proposal/myrmidon/src/main/org/apache/tools/ant/types/PatternSet.java View File

@@ -14,7 +14,9 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Pattern;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectComponent; import org.apache.tools.ant.ProjectComponent;


@@ -93,36 +95,27 @@ public class PatternSet


/** /**
* Sets the name of the file containing the includes patterns. * Sets the name of the file containing the includes patterns.
*
* @param includesFile The file to fetch the include patterns from.
* @exception TaskException Description of Exception
*/ */
public void setIncludesfile( File includesFile ) public void setIncludesfile( File includesFile )
{ {
createIncludesFile().setName( includesFile.getAbsolutePath() ); createIncludesFile().setName( includesFile.getAbsolutePath() );
} }


/**
* Returns the filtered include patterns.
*/
public String[] getExcludePatterns( Project p )
public String[] getExcludePatterns( final TaskContext context )
throws TaskException throws TaskException
{ {
readFiles( p );
return makeArray( m_excludeList );
readFiles( context );
return makeArray( m_excludeList, context );
} }


/** /**
* Returns the filtered include patterns. * Returns the filtered include patterns.
*
* @param p Description of Parameter
* @return The IncludePatterns value
*/ */
public String[] getIncludePatterns( Project p )
public String[] getIncludePatterns( final TaskContext context )
throws TaskException throws TaskException
{ {
readFiles( p );
return makeArray( m_includeList );
readFiles( context );
return makeArray( m_includeList, context );
} }


/** /**
@@ -131,7 +124,7 @@ public class PatternSet
protected void append( PatternSet other ) protected void append( PatternSet other )
throws TaskException throws TaskException
{ {
String[] incl = other.getIncludePatterns( null );
String[] incl = other.getIncludePatterns( (TaskContext)null );
if( incl != null ) if( incl != null )
{ {
for( int i = 0; i < incl.length; i++ ) for( int i = 0; i < incl.length; i++ )
@@ -140,7 +133,7 @@ public class PatternSet
} }
} }


String[] excl = other.getExcludePatterns( null );
String[] excl = other.getExcludePatterns( (TaskContext)null );
if( excl != null ) if( excl != null )
{ {
for( int i = 0; i < excl.length; i++ ) for( int i = 0; i < excl.length; i++ )
@@ -155,7 +148,7 @@ public class PatternSet
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExclude()
public Pattern createExclude()
{ {
return addPatternToList( m_excludeList ); return addPatternToList( m_excludeList );
} }
@@ -165,7 +158,7 @@ public class PatternSet
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExcludesFile()
public Pattern createExcludesFile()
{ {
return addPatternToList( m_excludesFileList ); return addPatternToList( m_excludesFileList );
} }
@@ -173,7 +166,7 @@ public class PatternSet
/** /**
* add a name entry on the include list * add a name entry on the include list
*/ */
public NameEntry createInclude()
public Pattern createInclude()
{ {
return addPatternToList( m_includeList ); return addPatternToList( m_includeList );
} }
@@ -181,7 +174,7 @@ public class PatternSet
/** /**
* add a name entry on the include files list * add a name entry on the include files list
*/ */
public NameEntry createIncludesFile()
public Pattern createIncludesFile()
{ {
return addPatternToList( m_includesFileList ); return addPatternToList( m_includesFileList );
} }
@@ -204,17 +197,17 @@ public class PatternSet
/** /**
* add a name entry to the given list * add a name entry to the given list
*/ */
private NameEntry addPatternToList( final ArrayList list )
private Pattern addPatternToList( final ArrayList list )
{ {
final NameEntry result = new NameEntry( this );
final Pattern result = new Pattern();
list.add( result ); list.add( result );
return result; return result;
} }


/** /**
* Convert a vector of NameEntry elements into an array of Strings.
* Convert a vector of Pattern elements into an array of Strings.
*/ */
private String[] makeArray( final ArrayList list )
private String[] makeArray( final ArrayList list, final TaskContext context )
{ {
if( list.size() == 0 ) if( list.size() == 0 )
{ {
@@ -224,8 +217,8 @@ public class PatternSet
final ArrayList tmpNames = new ArrayList(); final ArrayList tmpNames = new ArrayList();
for( Iterator e = list.iterator(); e.hasNext(); ) for( Iterator e = list.iterator(); e.hasNext(); )
{ {
final NameEntry ne = (NameEntry)e.next();
final String pattern = ne.evalName( null );
final Pattern ne = (Pattern)e.next();
final String pattern = ne.evaluateName( context );
if( pattern != null && pattern.length() > 0 ) if( pattern != null && pattern.length() > 0 )
{ {
tmpNames.add( pattern ); tmpNames.add( pattern );
@@ -239,7 +232,7 @@ public class PatternSet
/** /**
* Read includesfile ot excludesfile if not already done so. * Read includesfile ot excludesfile if not already done so.
*/ */
private void readFiles( Project p )
private void readFiles( final TaskContext context )
throws TaskException throws TaskException
{ {
if( m_includesFileList.size() > 0 ) if( m_includesFileList.size() > 0 )
@@ -247,17 +240,18 @@ public class PatternSet
Iterator e = m_includesFileList.iterator(); Iterator e = m_includesFileList.iterator();
while( e.hasNext() ) while( e.hasNext() )
{ {
NameEntry ne = (NameEntry)e.next();
String fileName = ne.evalName( p );
Pattern ne = (Pattern)e.next();
String fileName = ne.evaluateName( (TaskContext)null );
if( fileName != null ) if( fileName != null )
{ {
File inclFile = resolveFile( fileName ); File inclFile = resolveFile( fileName );
if( !inclFile.exists() ) {
if( !inclFile.exists() )
{
throw new TaskException( "Includesfile " throw new TaskException( "Includesfile "
+ inclFile.getAbsolutePath() + inclFile.getAbsolutePath()
+ " not found." ); + " not found." );
} }
readPatterns( inclFile, m_includeList, p );
readPatterns( inclFile, m_includeList, null );
} }
} }
m_includesFileList.clear(); m_includesFileList.clear();
@@ -268,17 +262,18 @@ public class PatternSet
Iterator e = m_excludesFileList.iterator(); Iterator e = m_excludesFileList.iterator();
while( e.hasNext() ) while( e.hasNext() )
{ {
NameEntry ne = (NameEntry)e.next();
String fileName = ne.evalName( p );
Pattern ne = (Pattern)e.next();
String fileName = ne.evaluateName( null );
if( fileName != null ) if( fileName != null )
{ {
File exclFile = resolveFile( fileName ); File exclFile = resolveFile( fileName );
if( !exclFile.exists() ) {
if( !exclFile.exists() )
{
throw new TaskException( "Excludesfile " throw new TaskException( "Excludesfile "
+ exclFile.getAbsolutePath() + exclFile.getAbsolutePath()
+ " not found." ); + " not found." );
} }
readPatterns( exclFile, m_excludeList, p );
readPatterns( exclFile, m_excludeList, null );
} }
} }
m_excludesFileList.clear(); m_excludesFileList.clear();
@@ -305,7 +300,7 @@ public class PatternSet
patternReader = patternReader =
new BufferedReader( new FileReader( patternfile ) ); new BufferedReader( new FileReader( patternfile ) );


// Create one NameEntry in the appropriate pattern list for each
// Create one Pattern in the appropriate pattern list for each
// line in the file. // line in the file.
String line = patternReader.readLine(); String line = patternReader.readLine();
while( line != null ) while( line != null )


+ 2
- 2
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Expand.java View File

@@ -200,7 +200,7 @@ public class Expand extends MatchingTask
for( int v = 0; v < patternsets.size(); v++ ) for( int v = 0; v < patternsets.size(); v++ )
{ {
PatternSet p = (PatternSet)patternsets.get( v ); PatternSet p = (PatternSet)patternsets.get( v );
String[] incls = p.getIncludePatterns( null );
String[] incls = p.getIncludePatterns( getContext() );
if( incls != null ) if( incls != null )
{ {
for( int w = 0; w < incls.length; w++ ) for( int w = 0; w < incls.length; w++ )
@@ -213,7 +213,7 @@ public class Expand extends MatchingTask
} }
} }
} }
String[] excls = p.getExcludePatterns( null );
String[] excls = p.getExcludePatterns( getContext() );
if( excls != null ) if( excls != null )
{ {
for( int w = 0; w < excls.length; w++ ) for( int w = 0; w < excls.length; w++ )


+ 5
- 5
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/MatchingTask.java View File

@@ -9,10 +9,10 @@ package org.apache.tools.ant.taskdefs;


import java.io.File; import java.io.File;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Pattern;
import org.apache.tools.ant.Task; import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.DirectoryScanner; import org.apache.tools.ant.types.DirectoryScanner;
import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.NameEntry;
import org.apache.tools.ant.types.PatternSet; import org.apache.tools.ant.types.PatternSet;


/** /**
@@ -93,7 +93,7 @@ public abstract class MatchingTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExclude()
public Pattern createExclude()
throws TaskException throws TaskException
{ {
return m_fileset.createExclude(); return m_fileset.createExclude();
@@ -104,7 +104,7 @@ public abstract class MatchingTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExcludesFile()
public Pattern createExcludesFile()
throws TaskException throws TaskException
{ {
return m_fileset.createExcludesFile(); return m_fileset.createExcludesFile();
@@ -115,7 +115,7 @@ public abstract class MatchingTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createInclude()
public Pattern createInclude()
throws TaskException throws TaskException
{ {
return m_fileset.createInclude(); return m_fileset.createInclude();
@@ -126,7 +126,7 @@ public abstract class MatchingTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createIncludesFile()
public Pattern createIncludesFile()
throws TaskException throws TaskException
{ {
return m_fileset.createIncludesFile(); return m_fileset.createIncludesFile();


+ 5
- 5
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ide/VAJExport.java View File

@@ -9,8 +9,8 @@ package org.apache.tools.ant.taskdefs.optional.ide;


import java.io.File; import java.io.File;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Pattern;
import org.apache.tools.ant.types.PatternSet; import org.apache.tools.ant.types.PatternSet;
import org.apache.tools.ant.types.NameEntry;


/** /**
* Export packages from the Visual Age for Java workspace. The packages are * Export packages from the Visual Age for Java workspace. The packages are
@@ -144,7 +144,7 @@ public class VAJExport extends VAJTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExclude()
public Pattern createExclude()
{ {
return patternSet.createExclude(); return patternSet.createExclude();
} }
@@ -154,7 +154,7 @@ public class VAJExport extends VAJTask
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createInclude()
public Pattern createInclude()
{ {
return patternSet.createInclude(); return patternSet.createInclude();
} }
@@ -175,8 +175,8 @@ public class VAJExport extends VAJTask


// delegate the export to the VAJUtil object. // delegate the export to the VAJUtil object.
getUtil().exportPackages( destDir, getUtil().exportPackages( destDir,
patternSet.getIncludePatterns( null ),
patternSet.getExcludePatterns( null ),
patternSet.getIncludePatterns( getContext() ),
patternSet.getExcludePatterns( getContext() ),
exportClasses, exportDebugInfo, exportClasses, exportDebugInfo,
exportResources, exportSources, exportResources, exportSources,
useDefaultExcludes, overwrite ); useDefaultExcludes, overwrite );


+ 3
- 3
proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/unix/Chmod.java View File

@@ -11,11 +11,11 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import org.apache.aut.nativelib.Os; import org.apache.aut.nativelib.Os;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Pattern;
import org.apache.tools.ant.taskdefs.exec.Execute; import org.apache.tools.ant.taskdefs.exec.Execute;
import org.apache.tools.ant.taskdefs.exec.ExecuteOn; import org.apache.tools.ant.taskdefs.exec.ExecuteOn;
import org.apache.tools.ant.types.Argument; import org.apache.tools.ant.types.Argument;
import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.NameEntry;
import org.apache.tools.ant.types.PatternSet; import org.apache.tools.ant.types.PatternSet;


/** /**
@@ -119,7 +119,7 @@ public class Chmod
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExclude()
public Pattern createExclude()
throws TaskException throws TaskException
{ {
m_defaultSetDefined = true; m_defaultSetDefined = true;
@@ -131,7 +131,7 @@ public class Chmod
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createInclude()
public Pattern createInclude()
throws TaskException throws TaskException
{ {
m_defaultSetDefined = true; m_defaultSetDefined = true;


+ 12
- 15
proposal/myrmidon/src/todo/org/apache/tools/ant/types/FileSet.java View File

@@ -10,6 +10,7 @@ package org.apache.tools.ant.types;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Pattern;
import org.apache.tools.ant.ProjectComponent; import org.apache.tools.ant.ProjectComponent;


/** /**
@@ -34,10 +35,6 @@ public class FileSet
private boolean m_isCaseSensitive = true; private boolean m_isCaseSensitive = true;
private File m_dir; private File m_dir;


public FileSet()
{
}

/** /**
* Sets case sensitivity of the file system * Sets case sensitivity of the file system
*/ */
@@ -76,9 +73,9 @@ public class FileSet
* *
* @param excl The file to fetch the exclude patterns from. * @param excl The file to fetch the exclude patterns from.
*/ */
public void setExcludesfile( final File excl )
public void setExcludesfile( final File excludesfile )
{ {
m_defaultPatterns.setExcludesfile( excl );
m_defaultPatterns.setExcludesfile( excludesfile );
} }


/** /**
@@ -87,7 +84,7 @@ public class FileSet
* *
* @param includes the string containing the include patterns * @param includes the string containing the include patterns
*/ */
public void setIncludes( String includes )
public void setIncludes( final String includes )
{ {
m_defaultPatterns.setIncludes( includes ); m_defaultPatterns.setIncludes( includes );
} }
@@ -97,9 +94,9 @@ public class FileSet
* *
* @param incl The file to fetch the include patterns from. * @param incl The file to fetch the include patterns from.
*/ */
public void setIncludesfile( File incl )
public void setIncludesfile( final File includesfile )
{ {
m_defaultPatterns.setIncludesfile( incl );
m_defaultPatterns.setIncludesfile( includesfile );
} }


public void setupDirectoryScanner( final FileScanner ds ) public void setupDirectoryScanner( final FileScanner ds )
@@ -124,8 +121,8 @@ public class FileSet
m_dir + " with " + m_defaultPatterns; m_dir + " with " + m_defaultPatterns;
getLogger().debug( message ); getLogger().debug( message );


ds.setIncludes( m_defaultPatterns.getIncludePatterns( null ) );
ds.setExcludes( m_defaultPatterns.getExcludePatterns( null ) );
ds.setIncludes( m_defaultPatterns.getIncludePatterns( getContext() ) );
ds.setExcludes( m_defaultPatterns.getExcludePatterns( getContext() ) );
if( m_useDefaultExcludes ) if( m_useDefaultExcludes )
{ {
ds.addDefaultExcludes(); ds.addDefaultExcludes();
@@ -167,7 +164,7 @@ public class FileSet
/** /**
* add a name entry on the exclude list * add a name entry on the exclude list
*/ */
public NameEntry createExclude()
public Pattern createExclude()
{ {
return m_defaultPatterns.createExclude(); return m_defaultPatterns.createExclude();
} }
@@ -175,7 +172,7 @@ public class FileSet
/** /**
* add a name entry on the include files list * add a name entry on the include files list
*/ */
public NameEntry createExcludesFile()
public Pattern createExcludesFile()
{ {
return m_defaultPatterns.createExcludesFile(); return m_defaultPatterns.createExcludesFile();
} }
@@ -183,7 +180,7 @@ public class FileSet
/** /**
* add a name entry on the include list * add a name entry on the include list
*/ */
public NameEntry createInclude()
public Pattern createInclude()
{ {
return m_defaultPatterns.createInclude(); return m_defaultPatterns.createInclude();
} }
@@ -191,7 +188,7 @@ public class FileSet
/** /**
* add a name entry on the include files list * add a name entry on the include files list
*/ */
public NameEntry createIncludesFile()
public Pattern createIncludesFile()
{ {
return m_defaultPatterns.createIncludesFile(); return m_defaultPatterns.createIncludesFile();
} }


+ 0
- 89
proposal/myrmidon/src/todo/org/apache/tools/ant/types/NameEntry.java View File

@@ -1,89 +0,0 @@
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.tools.ant.types;

import org.apache.tools.ant.Project;

/**
* inner class to hold a name on list. "If" and "Unless" attributes may be
* used to invalidate the entry based on the existence of a property
* (typically set thru the use of the Available task).
*/
public class NameEntry
{
private String m_if;
private String m_name;
private String m_unless;
private PatternSet m_set;

public NameEntry( final PatternSet set )
{
m_set = set;
}

public void setIf( final String ifCondition )
{
m_if = ifCondition;
}

public void setName( final String name )
{
m_name = name;
}

public void setUnless( final String unlessCondition )
{
m_unless = unlessCondition;
}

public String evalName( Project p )
{
return valid( p ) ? m_name : null;
}

public String toString()
{
StringBuffer buf = new StringBuffer( m_name );
if( ( m_if != null ) || ( m_unless != null ) )
{
buf.append( ":" );
String connector = "";

if( m_if != null )
{
buf.append( "if->" );
buf.append( m_if );
connector = ";";
}
if( m_unless != null )
{
buf.append( connector );
buf.append( "unless->" );
buf.append( m_unless );
}
}

return buf.toString();
}

private boolean valid( Project p )
{
if( m_if != null && p.getProperty( m_if ) == null )
{
return false;
}
else if( m_unless != null && p.getProperty( m_unless ) != null )
{
return false;
}
else
{
return true;
}
}
}

+ 32
- 37
proposal/myrmidon/src/todo/org/apache/tools/ant/types/PatternSet.java View File

@@ -14,7 +14,9 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Pattern;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectComponent; import org.apache.tools.ant.ProjectComponent;


@@ -93,36 +95,27 @@ public class PatternSet


/** /**
* Sets the name of the file containing the includes patterns. * Sets the name of the file containing the includes patterns.
*
* @param includesFile The file to fetch the include patterns from.
* @exception TaskException Description of Exception
*/ */
public void setIncludesfile( File includesFile ) public void setIncludesfile( File includesFile )
{ {
createIncludesFile().setName( includesFile.getAbsolutePath() ); createIncludesFile().setName( includesFile.getAbsolutePath() );
} }


/**
* Returns the filtered include patterns.
*/
public String[] getExcludePatterns( Project p )
public String[] getExcludePatterns( final TaskContext context )
throws TaskException throws TaskException
{ {
readFiles( p );
return makeArray( m_excludeList );
readFiles( context );
return makeArray( m_excludeList, context );
} }


/** /**
* Returns the filtered include patterns. * Returns the filtered include patterns.
*
* @param p Description of Parameter
* @return The IncludePatterns value
*/ */
public String[] getIncludePatterns( Project p )
public String[] getIncludePatterns( final TaskContext context )
throws TaskException throws TaskException
{ {
readFiles( p );
return makeArray( m_includeList );
readFiles( context );
return makeArray( m_includeList, context );
} }


/** /**
@@ -131,7 +124,7 @@ public class PatternSet
protected void append( PatternSet other ) protected void append( PatternSet other )
throws TaskException throws TaskException
{ {
String[] incl = other.getIncludePatterns( null );
String[] incl = other.getIncludePatterns( (TaskContext)null );
if( incl != null ) if( incl != null )
{ {
for( int i = 0; i < incl.length; i++ ) for( int i = 0; i < incl.length; i++ )
@@ -140,7 +133,7 @@ public class PatternSet
} }
} }


String[] excl = other.getExcludePatterns( null );
String[] excl = other.getExcludePatterns( (TaskContext)null );
if( excl != null ) if( excl != null )
{ {
for( int i = 0; i < excl.length; i++ ) for( int i = 0; i < excl.length; i++ )
@@ -155,7 +148,7 @@ public class PatternSet
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExclude()
public Pattern createExclude()
{ {
return addPatternToList( m_excludeList ); return addPatternToList( m_excludeList );
} }
@@ -165,7 +158,7 @@ public class PatternSet
* *
* @return Description of the Returned Value * @return Description of the Returned Value
*/ */
public NameEntry createExcludesFile()
public Pattern createExcludesFile()
{ {
return addPatternToList( m_excludesFileList ); return addPatternToList( m_excludesFileList );
} }
@@ -173,7 +166,7 @@ public class PatternSet
/** /**
* add a name entry on the include list * add a name entry on the include list
*/ */
public NameEntry createInclude()
public Pattern createInclude()
{ {
return addPatternToList( m_includeList ); return addPatternToList( m_includeList );
} }
@@ -181,7 +174,7 @@ public class PatternSet
/** /**
* add a name entry on the include files list * add a name entry on the include files list
*/ */
public NameEntry createIncludesFile()
public Pattern createIncludesFile()
{ {
return addPatternToList( m_includesFileList ); return addPatternToList( m_includesFileList );
} }
@@ -204,17 +197,17 @@ public class PatternSet
/** /**
* add a name entry to the given list * add a name entry to the given list
*/ */
private NameEntry addPatternToList( final ArrayList list )
private Pattern addPatternToList( final ArrayList list )
{ {
final NameEntry result = new NameEntry( this );
final Pattern result = new Pattern();
list.add( result ); list.add( result );
return result; return result;
} }


/** /**
* Convert a vector of NameEntry elements into an array of Strings.
* Convert a vector of Pattern elements into an array of Strings.
*/ */
private String[] makeArray( final ArrayList list )
private String[] makeArray( final ArrayList list, final TaskContext context )
{ {
if( list.size() == 0 ) if( list.size() == 0 )
{ {
@@ -224,8 +217,8 @@ public class PatternSet
final ArrayList tmpNames = new ArrayList(); final ArrayList tmpNames = new ArrayList();
for( Iterator e = list.iterator(); e.hasNext(); ) for( Iterator e = list.iterator(); e.hasNext(); )
{ {
final NameEntry ne = (NameEntry)e.next();
final String pattern = ne.evalName( null );
final Pattern ne = (Pattern)e.next();
final String pattern = ne.evaluateName( context );
if( pattern != null && pattern.length() > 0 ) if( pattern != null && pattern.length() > 0 )
{ {
tmpNames.add( pattern ); tmpNames.add( pattern );
@@ -239,7 +232,7 @@ public class PatternSet
/** /**
* Read includesfile ot excludesfile if not already done so. * Read includesfile ot excludesfile if not already done so.
*/ */
private void readFiles( Project p )
private void readFiles( final TaskContext context )
throws TaskException throws TaskException
{ {
if( m_includesFileList.size() > 0 ) if( m_includesFileList.size() > 0 )
@@ -247,17 +240,18 @@ public class PatternSet
Iterator e = m_includesFileList.iterator(); Iterator e = m_includesFileList.iterator();
while( e.hasNext() ) while( e.hasNext() )
{ {
NameEntry ne = (NameEntry)e.next();
String fileName = ne.evalName( p );
Pattern ne = (Pattern)e.next();
String fileName = ne.evaluateName( (TaskContext)null );
if( fileName != null ) if( fileName != null )
{ {
File inclFile = resolveFile( fileName ); File inclFile = resolveFile( fileName );
if( !inclFile.exists() ) {
if( !inclFile.exists() )
{
throw new TaskException( "Includesfile " throw new TaskException( "Includesfile "
+ inclFile.getAbsolutePath() + inclFile.getAbsolutePath()
+ " not found." ); + " not found." );
} }
readPatterns( inclFile, m_includeList, p );
readPatterns( inclFile, m_includeList, null );
} }
} }
m_includesFileList.clear(); m_includesFileList.clear();
@@ -268,17 +262,18 @@ public class PatternSet
Iterator e = m_excludesFileList.iterator(); Iterator e = m_excludesFileList.iterator();
while( e.hasNext() ) while( e.hasNext() )
{ {
NameEntry ne = (NameEntry)e.next();
String fileName = ne.evalName( p );
Pattern ne = (Pattern)e.next();
String fileName = ne.evaluateName( null );
if( fileName != null ) if( fileName != null )
{ {
File exclFile = resolveFile( fileName ); File exclFile = resolveFile( fileName );
if( !exclFile.exists() ) {
if( !exclFile.exists() )
{
throw new TaskException( "Excludesfile " throw new TaskException( "Excludesfile "
+ exclFile.getAbsolutePath() + exclFile.getAbsolutePath()
+ " not found." ); + " not found." );
} }
readPatterns( exclFile, m_excludeList, p );
readPatterns( exclFile, m_excludeList, null );
} }
} }
m_excludesFileList.clear(); m_excludesFileList.clear();
@@ -305,7 +300,7 @@ public class PatternSet
patternReader = patternReader =
new BufferedReader( new FileReader( patternfile ) ); new BufferedReader( new FileReader( patternfile ) );


// Create one NameEntry in the appropriate pattern list for each
// Create one Pattern in the appropriate pattern list for each
// line in the file. // line in the file.
String line = patternReader.readLine(); String line = patternReader.readLine();
while( line != null ) while( line != null )


Loading…
Cancel
Save