Browse Source

Mover pattern logic into a PatternUtil class

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270863 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
e2e106d90b
2 changed files with 76 additions and 45 deletions
  1. +12
    -45
      proposal/myrmidon/src/java/org/apache/myrmidon/framework/PatternSet.java
  2. +64
    -0
      proposal/myrmidon/src/java/org/apache/myrmidon/framework/PatternUtil.java

+ 12
- 45
proposal/myrmidon/src/java/org/apache/myrmidon/framework/PatternSet.java View File

@@ -8,10 +8,7 @@
package org.apache.myrmidon.framework; package org.apache.myrmidon.framework;


import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.api.TaskException;


/** /**
* Named collection of include/exclude tags. <p> * Named collection of include/exclude tags. <p>
@@ -25,8 +22,8 @@ import org.apache.myrmidon.api.TaskException;
*/ */
public class PatternSet public class PatternSet
{ {
private ArrayList m_includeList = new ArrayList();
private ArrayList m_excludeList = new ArrayList();
private ArrayList m_includes = new ArrayList();
private ArrayList m_excludes = new ArrayList();


/** /**
* Sets the set of exclude patterns. Patterns may be separated by a comma or * Sets the set of exclude patterns. Patterns may be separated by a comma or
@@ -63,7 +60,7 @@ public class PatternSet
*/ */
public void addExclude( final Pattern pattern ) public void addExclude( final Pattern pattern )
{ {
m_excludeList.add( pattern );
m_excludes.add( pattern );
} }


/** /**
@@ -71,22 +68,17 @@ public class PatternSet
*/ */
public void addInclude( final Pattern pattern ) public void addInclude( final Pattern pattern )
{ {
m_includeList.add( pattern );
m_includes.add( pattern );
} }


public String[] getExcludePatterns( final TaskContext context )
throws TaskException
public final ArrayList getIncludes()
{ {
return toArray( m_excludeList, context );
return m_includes;
} }


/**
* Returns the filtered include patterns.
*/
public String[] getIncludePatterns( final TaskContext context )
throws TaskException
public final ArrayList getExcludes()
{ {
return toArray( m_includeList, context );
return m_excludes;
} }


/** /**
@@ -94,14 +86,14 @@ public class PatternSet
*/ */
public void append( final PatternSet other ) public void append( final PatternSet other )
{ {
m_includeList.addAll( other.m_includeList );
m_excludeList.addAll( other.m_excludeList );
m_includes.addAll( other.m_includes );
m_excludes.addAll( other.m_excludes );
} }


public String toString() public String toString()
{ {
return "PatternSet [ includes: " + m_includeList +
" excludes: " + m_excludeList + " ]";
return "PatternSet [ includes: " + m_includes +
" excludes: " + m_excludes + " ]";
} }


private Pattern[] parsePatterns( final String patternString ) private Pattern[] parsePatterns( final String patternString )
@@ -119,29 +111,4 @@ public class PatternSet


return (Pattern[])patterns.toArray( new Pattern[ patterns.size() ] ); return (Pattern[])patterns.toArray( new Pattern[ patterns.size() ] );
} }

/**
* Convert a vector of Pattern elements into an array of Strings.
*/
private String[] toArray( final ArrayList list, final TaskContext context )
{
if( list.size() == 0 )
{
return null;
}

final ArrayList names = new ArrayList();
final Iterator e = list.iterator();
while( e.hasNext() )
{
final Pattern pattern = (Pattern)e.next();
final String result = pattern.evaluateName( context );
if( null != result && result.length() > 0 )
{
names.add( result );
}
}

return (String[])names.toArray( new String[ names.size() ] );
}
} }

+ 64
- 0
proposal/myrmidon/src/java/org/apache/myrmidon/framework/PatternUtil.java View File

@@ -0,0 +1,64 @@
/*
* 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.myrmidon.framework;

import java.util.ArrayList;
import java.util.Iterator;
import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.api.TaskException;

/**
*
*
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
* @version $Revision$ $Date$
*/
public class PatternUtil
{
/**
* Returns the filtered include patterns.
*/
public static String[] getIncludePatterns( final PatternSet set,
final TaskContext context )
throws TaskException
{
return toArray( set.getIncludes(), context );
}

public static String[] getExcludePatterns( final PatternSet set,
final TaskContext context )
throws TaskException
{
return toArray( set.getExcludes(), context );
}

/**
* Convert a vector of Pattern elements into an array of Strings.
*/
private static String[] toArray( final ArrayList list, final TaskContext context )
{
if( list.size() == 0 )
{
return null;
}

final ArrayList names = new ArrayList();
final Iterator patterns = list.iterator();
while( patterns.hasNext() )
{
final Pattern pattern = (Pattern)patterns.next();
final String result = pattern.evaluateName( context );
if( null != result && result.length() > 0 )
{
names.add( result );
}
}

return (String[])names.toArray( new String[ names.size() ] );
}
}

Loading…
Cancel
Save