From 432a0ae47a43a7e8c6a8c2678289b88b8aa18960 Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Wed, 23 Jan 2002 10:21:15 +0000 Subject: [PATCH] Convert creator methods into adders. Remove ability to load patterns from files and so forth - do this in a separate task. cleaned up a bit of cruft aswell. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270835 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/tools/ant/types/PatternSet.java | 273 +++--------------- .../apache/tools/ant/types/PatternSet.java | 273 +++--------------- 2 files changed, 88 insertions(+), 458 deletions(-) diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/types/PatternSet.java b/proposal/myrmidon/src/main/org/apache/tools/ant/types/PatternSet.java index 329c93aa4..fa3e69850 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/types/PatternSet.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/types/PatternSet.java @@ -7,17 +7,12 @@ */ package org.apache.tools.ant.types; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.StringTokenizer; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.Pattern; -import org.apache.tools.ant.Project; import org.apache.tools.ant.ProjectComponent; /** @@ -38,13 +33,6 @@ public class PatternSet { private ArrayList m_includeList = new ArrayList(); private ArrayList m_excludeList = new ArrayList(); - private ArrayList m_includesFileList = new ArrayList(); - private ArrayList m_excludesFileList = new ArrayList(); - - public PatternSet() - { - super(); - } /** * Sets the set of exclude patterns. Patterns may be separated by a comma or @@ -52,131 +40,68 @@ public class PatternSet * * @param excludes the string containing the exclude patterns */ - public void setExcludes( String excludes ) + public void setExcludes( final String excludes ) { - if( excludes != null && excludes.length() > 0 ) + final Pattern[] patterns = parsePatterns( excludes ); + for( int i = 0; i < patterns.length; i++ ) { - StringTokenizer tok = new StringTokenizer( excludes, ", ", false ); - while( tok.hasMoreTokens() ) - { - createExclude().setName( tok.nextToken() ); - } + addExclude( patterns[ i ] ); } } - /** - * Sets the name of the file containing the excludes patterns. - * - * @param excludesFile The file to fetch the exclude patterns from. - * @exception TaskException Description of Exception - */ - public void setExcludesfile( File excludesFile ) - { - createExcludesFile().setName( excludesFile.getAbsolutePath() ); - } - /** * Sets the set of include patterns. Patterns may be separated by a comma or * a space. * * @param includes the string containing the include patterns */ - public void setIncludes( String includes ) + public void setIncludes( final String includes ) { - if( includes != null && includes.length() > 0 ) + final Pattern[] patterns = parsePatterns( includes ); + for( int i = 0; i < patterns.length; i++ ) { - StringTokenizer tok = new StringTokenizer( includes, ", ", false ); - while( tok.hasMoreTokens() ) - { - createInclude().setName( tok.nextToken() ); - } + addInclude( patterns[ i ] ); } } /** - * Sets the name of the file containing the includes patterns. + * add a name entry on the exclude list */ - public void setIncludesfile( File includesFile ) - { - createIncludesFile().setName( includesFile.getAbsolutePath() ); - } - - public String[] getExcludePatterns( final TaskContext context ) - throws TaskException + public void addExclude( final Pattern pattern ) { - readFiles( context ); - return makeArray( m_excludeList, context ); + m_excludeList.add( pattern ); } /** - * Returns the filtered include patterns. + * add a name entry on the include list */ - public String[] getIncludePatterns( final TaskContext context ) - throws TaskException + public void addInclude( final Pattern pattern ) { - readFiles( context ); - return makeArray( m_includeList, context ); + m_includeList.add( pattern ); } - /** - * Adds the patterns of the other instance to this set. - */ - protected void append( PatternSet other ) + public String[] getExcludePatterns( final TaskContext context ) throws TaskException { - String[] incl = other.getIncludePatterns( (TaskContext)null ); - if( incl != null ) - { - for( int i = 0; i < incl.length; i++ ) - { - createInclude().setName( incl[ i ] ); - } - } - - String[] excl = other.getExcludePatterns( (TaskContext)null ); - if( excl != null ) - { - for( int i = 0; i < excl.length; i++ ) - { - createExclude().setName( excl[ i ] ); - } - } - } - - /** - * add a name entry on the exclude list - * - * @return Description of the Returned Value - */ - public Pattern createExclude() - { - return addPatternToList( m_excludeList ); - } - - /** - * add a name entry on the exclude files list - * - * @return Description of the Returned Value - */ - public Pattern createExcludesFile() - { - return addPatternToList( m_excludesFileList ); + return toArray( m_excludeList, context ); } /** - * add a name entry on the include list + * Returns the filtered include patterns. */ - public Pattern createInclude() + public String[] getIncludePatterns( final TaskContext context ) + throws TaskException { - return addPatternToList( m_includeList ); + return toArray( m_includeList, context ); } /** - * add a name entry on the include files list + * Adds the patterns of the other instance to this set. */ - public Pattern createIncludesFile() + protected void append( final PatternSet other ) { - return addPatternToList( m_includesFileList ); + m_includeList.addAll( other.m_includeList ); + m_excludeList.addAll( other.m_excludeList ); } public String toString() @@ -185,154 +110,44 @@ public class PatternSet " excludes: " + m_excludeList + " }"; } - /** - * helper for FileSet. - */ - boolean hasPatterns() - { - return m_includesFileList.size() > 0 || m_excludesFileList.size() > 0 || - m_includeList.size() > 0 || m_excludeList.size() > 0; - } - - /** - * add a name entry to the given list - */ - private Pattern addPatternToList( final ArrayList list ) + private Pattern[] parsePatterns( final String patternString ) { - final Pattern result = new Pattern(); - list.add( result ); - return result; - } - - /** - * Convert a vector of Pattern elements into an array of Strings. - */ - private String[] makeArray( final ArrayList list, final TaskContext context ) - { - if( list.size() == 0 ) - { - return null; - } - - final ArrayList tmpNames = new ArrayList(); - for( Iterator e = list.iterator(); e.hasNext(); ) + final ArrayList patterns = new ArrayList(); + if( patternString != null && patternString.length() > 0 ) { - final Pattern ne = (Pattern)e.next(); - final String pattern = ne.evaluateName( context ); - if( pattern != null && pattern.length() > 0 ) + StringTokenizer tok = new StringTokenizer( patternString, ", ", false ); + while( tok.hasMoreTokens() ) { - tmpNames.add( pattern ); + final Pattern pattern = new Pattern( tok.nextToken() ); + patterns.add( pattern ); } } - final String[] result = new String[ tmpNames.size() ]; - return (String[])tmpNames.toArray( result ); + return (Pattern[])patterns.toArray( new Pattern[ patterns.size() ] ); } /** - * Read includesfile ot excludesfile if not already done so. + * Convert a vector of Pattern elements into an array of Strings. */ - private void readFiles( final TaskContext context ) - throws TaskException + private String[] toArray( final ArrayList list, final TaskContext context ) { - if( m_includesFileList.size() > 0 ) + if( list.size() == 0 ) { - Iterator e = m_includesFileList.iterator(); - while( e.hasNext() ) - { - Pattern ne = (Pattern)e.next(); - String fileName = ne.evaluateName( (TaskContext)null ); - if( fileName != null ) - { - File inclFile = resolveFile( fileName ); - if( !inclFile.exists() ) - { - throw new TaskException( "Includesfile " - + inclFile.getAbsolutePath() - + " not found." ); - } - readPatterns( inclFile, m_includeList, null ); - } - } - m_includesFileList.clear(); + return null; } - if( m_excludesFileList.size() > 0 ) + final ArrayList names = new ArrayList(); + final Iterator e = list.iterator(); + while( e.hasNext() ) { - Iterator e = m_excludesFileList.iterator(); - while( e.hasNext() ) + final Pattern pattern = (Pattern)e.next(); + final String result = pattern.evaluateName( context ); + if( null != result && result.length() > 0 ) { - Pattern ne = (Pattern)e.next(); - String fileName = ne.evaluateName( null ); - if( fileName != null ) - { - File exclFile = resolveFile( fileName ); - if( !exclFile.exists() ) - { - throw new TaskException( "Excludesfile " - + exclFile.getAbsolutePath() - + " not found." ); - } - readPatterns( exclFile, m_excludeList, null ); - } + names.add( result ); } - m_excludesFileList.clear(); } - } - - /** - * Reads path matching patterns from a file and adds them to the includes or - * excludes list (as appropriate). - * - * @param patternfile Description of Parameter - * @param patternlist Description of Parameter - * @param p Description of Parameter - * @exception TaskException Description of Exception - */ - private void readPatterns( File patternfile, ArrayList patternlist, Project p ) - throws TaskException - { - BufferedReader patternReader = null; - try - { - // Get a FileReader - patternReader = - new BufferedReader( new FileReader( patternfile ) ); - - // Create one Pattern in the appropriate pattern list for each - // line in the file. - String line = patternReader.readLine(); - while( line != null ) - { - if( line.length() > 0 ) - { - line = p.replaceProperties( line ); - addPatternToList( patternlist ).setName( line ); - } - line = patternReader.readLine(); - } - } - catch( IOException ioe ) - { - String msg = "An error occured while reading from pattern file: " - + patternfile; - throw new TaskException( msg, ioe ); - } - finally - { - if( null != patternReader ) - { - try - { - patternReader.close(); - } - catch( IOException ioe ) - { - //Ignore exception - } - } - } + return (String[])names.toArray( new String[ names.size() ] ); } - } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/types/PatternSet.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/types/PatternSet.java index 329c93aa4..fa3e69850 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/types/PatternSet.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/types/PatternSet.java @@ -7,17 +7,12 @@ */ package org.apache.tools.ant.types; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.StringTokenizer; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.Pattern; -import org.apache.tools.ant.Project; import org.apache.tools.ant.ProjectComponent; /** @@ -38,13 +33,6 @@ public class PatternSet { private ArrayList m_includeList = new ArrayList(); private ArrayList m_excludeList = new ArrayList(); - private ArrayList m_includesFileList = new ArrayList(); - private ArrayList m_excludesFileList = new ArrayList(); - - public PatternSet() - { - super(); - } /** * Sets the set of exclude patterns. Patterns may be separated by a comma or @@ -52,131 +40,68 @@ public class PatternSet * * @param excludes the string containing the exclude patterns */ - public void setExcludes( String excludes ) + public void setExcludes( final String excludes ) { - if( excludes != null && excludes.length() > 0 ) + final Pattern[] patterns = parsePatterns( excludes ); + for( int i = 0; i < patterns.length; i++ ) { - StringTokenizer tok = new StringTokenizer( excludes, ", ", false ); - while( tok.hasMoreTokens() ) - { - createExclude().setName( tok.nextToken() ); - } + addExclude( patterns[ i ] ); } } - /** - * Sets the name of the file containing the excludes patterns. - * - * @param excludesFile The file to fetch the exclude patterns from. - * @exception TaskException Description of Exception - */ - public void setExcludesfile( File excludesFile ) - { - createExcludesFile().setName( excludesFile.getAbsolutePath() ); - } - /** * Sets the set of include patterns. Patterns may be separated by a comma or * a space. * * @param includes the string containing the include patterns */ - public void setIncludes( String includes ) + public void setIncludes( final String includes ) { - if( includes != null && includes.length() > 0 ) + final Pattern[] patterns = parsePatterns( includes ); + for( int i = 0; i < patterns.length; i++ ) { - StringTokenizer tok = new StringTokenizer( includes, ", ", false ); - while( tok.hasMoreTokens() ) - { - createInclude().setName( tok.nextToken() ); - } + addInclude( patterns[ i ] ); } } /** - * Sets the name of the file containing the includes patterns. + * add a name entry on the exclude list */ - public void setIncludesfile( File includesFile ) - { - createIncludesFile().setName( includesFile.getAbsolutePath() ); - } - - public String[] getExcludePatterns( final TaskContext context ) - throws TaskException + public void addExclude( final Pattern pattern ) { - readFiles( context ); - return makeArray( m_excludeList, context ); + m_excludeList.add( pattern ); } /** - * Returns the filtered include patterns. + * add a name entry on the include list */ - public String[] getIncludePatterns( final TaskContext context ) - throws TaskException + public void addInclude( final Pattern pattern ) { - readFiles( context ); - return makeArray( m_includeList, context ); + m_includeList.add( pattern ); } - /** - * Adds the patterns of the other instance to this set. - */ - protected void append( PatternSet other ) + public String[] getExcludePatterns( final TaskContext context ) throws TaskException { - String[] incl = other.getIncludePatterns( (TaskContext)null ); - if( incl != null ) - { - for( int i = 0; i < incl.length; i++ ) - { - createInclude().setName( incl[ i ] ); - } - } - - String[] excl = other.getExcludePatterns( (TaskContext)null ); - if( excl != null ) - { - for( int i = 0; i < excl.length; i++ ) - { - createExclude().setName( excl[ i ] ); - } - } - } - - /** - * add a name entry on the exclude list - * - * @return Description of the Returned Value - */ - public Pattern createExclude() - { - return addPatternToList( m_excludeList ); - } - - /** - * add a name entry on the exclude files list - * - * @return Description of the Returned Value - */ - public Pattern createExcludesFile() - { - return addPatternToList( m_excludesFileList ); + return toArray( m_excludeList, context ); } /** - * add a name entry on the include list + * Returns the filtered include patterns. */ - public Pattern createInclude() + public String[] getIncludePatterns( final TaskContext context ) + throws TaskException { - return addPatternToList( m_includeList ); + return toArray( m_includeList, context ); } /** - * add a name entry on the include files list + * Adds the patterns of the other instance to this set. */ - public Pattern createIncludesFile() + protected void append( final PatternSet other ) { - return addPatternToList( m_includesFileList ); + m_includeList.addAll( other.m_includeList ); + m_excludeList.addAll( other.m_excludeList ); } public String toString() @@ -185,154 +110,44 @@ public class PatternSet " excludes: " + m_excludeList + " }"; } - /** - * helper for FileSet. - */ - boolean hasPatterns() - { - return m_includesFileList.size() > 0 || m_excludesFileList.size() > 0 || - m_includeList.size() > 0 || m_excludeList.size() > 0; - } - - /** - * add a name entry to the given list - */ - private Pattern addPatternToList( final ArrayList list ) + private Pattern[] parsePatterns( final String patternString ) { - final Pattern result = new Pattern(); - list.add( result ); - return result; - } - - /** - * Convert a vector of Pattern elements into an array of Strings. - */ - private String[] makeArray( final ArrayList list, final TaskContext context ) - { - if( list.size() == 0 ) - { - return null; - } - - final ArrayList tmpNames = new ArrayList(); - for( Iterator e = list.iterator(); e.hasNext(); ) + final ArrayList patterns = new ArrayList(); + if( patternString != null && patternString.length() > 0 ) { - final Pattern ne = (Pattern)e.next(); - final String pattern = ne.evaluateName( context ); - if( pattern != null && pattern.length() > 0 ) + StringTokenizer tok = new StringTokenizer( patternString, ", ", false ); + while( tok.hasMoreTokens() ) { - tmpNames.add( pattern ); + final Pattern pattern = new Pattern( tok.nextToken() ); + patterns.add( pattern ); } } - final String[] result = new String[ tmpNames.size() ]; - return (String[])tmpNames.toArray( result ); + return (Pattern[])patterns.toArray( new Pattern[ patterns.size() ] ); } /** - * Read includesfile ot excludesfile if not already done so. + * Convert a vector of Pattern elements into an array of Strings. */ - private void readFiles( final TaskContext context ) - throws TaskException + private String[] toArray( final ArrayList list, final TaskContext context ) { - if( m_includesFileList.size() > 0 ) + if( list.size() == 0 ) { - Iterator e = m_includesFileList.iterator(); - while( e.hasNext() ) - { - Pattern ne = (Pattern)e.next(); - String fileName = ne.evaluateName( (TaskContext)null ); - if( fileName != null ) - { - File inclFile = resolveFile( fileName ); - if( !inclFile.exists() ) - { - throw new TaskException( "Includesfile " - + inclFile.getAbsolutePath() - + " not found." ); - } - readPatterns( inclFile, m_includeList, null ); - } - } - m_includesFileList.clear(); + return null; } - if( m_excludesFileList.size() > 0 ) + final ArrayList names = new ArrayList(); + final Iterator e = list.iterator(); + while( e.hasNext() ) { - Iterator e = m_excludesFileList.iterator(); - while( e.hasNext() ) + final Pattern pattern = (Pattern)e.next(); + final String result = pattern.evaluateName( context ); + if( null != result && result.length() > 0 ) { - Pattern ne = (Pattern)e.next(); - String fileName = ne.evaluateName( null ); - if( fileName != null ) - { - File exclFile = resolveFile( fileName ); - if( !exclFile.exists() ) - { - throw new TaskException( "Excludesfile " - + exclFile.getAbsolutePath() - + " not found." ); - } - readPatterns( exclFile, m_excludeList, null ); - } + names.add( result ); } - m_excludesFileList.clear(); } - } - - /** - * Reads path matching patterns from a file and adds them to the includes or - * excludes list (as appropriate). - * - * @param patternfile Description of Parameter - * @param patternlist Description of Parameter - * @param p Description of Parameter - * @exception TaskException Description of Exception - */ - private void readPatterns( File patternfile, ArrayList patternlist, Project p ) - throws TaskException - { - BufferedReader patternReader = null; - try - { - // Get a FileReader - patternReader = - new BufferedReader( new FileReader( patternfile ) ); - - // Create one Pattern in the appropriate pattern list for each - // line in the file. - String line = patternReader.readLine(); - while( line != null ) - { - if( line.length() > 0 ) - { - line = p.replaceProperties( line ); - addPatternToList( patternlist ).setName( line ); - } - line = patternReader.readLine(); - } - } - catch( IOException ioe ) - { - String msg = "An error occured while reading from pattern file: " - + patternfile; - throw new TaskException( msg, ioe ); - } - finally - { - if( null != patternReader ) - { - try - { - patternReader.close(); - } - catch( IOException ioe ) - { - //Ignore exception - } - } - } + return (String[])names.toArray( new String[ names.size() ] ); } - }