// $Id: RegExpMatchOnNameFilter.java 63 2006-07-12 21:50:51Z edavis $
package thredds.crawlabledataset.filter;

import thredds.crawlabledataset.CrawlableDatasetFilter;
import thredds.crawlabledataset.CrawlableDataset;

/**
 * CrawlableDatasetFilter implementation that accepts datasets whose
 * names are matched by the given regular expression.
 *
 * @author edavis
 * @since Nov 5, 2005 12:51:56 PM
 */
public class RegExpMatchOnNameFilter implements CrawlableDatasetFilter
{
//  private static org.apache.commons.logging.Log log =
//          org.apache.commons.logging.LogFactory.getLog( RegExpMatchOnNameFilter.class );

  private String regExpString;
  private java.util.regex.Pattern pattern;

  public RegExpMatchOnNameFilter( String regExpString )
  {
    this.regExpString = regExpString;
    this.pattern = java.util.regex.Pattern.compile( regExpString );
  }

  public Object getConfigObject() { return regExpString; }
  public String getRegExpString() { return regExpString; }

  public boolean accept( CrawlableDataset dataset )
  {
    java.util.regex.Matcher matcher = this.pattern.matcher( dataset.getName() );
    if ( matcher.matches() ) return true;
    return false;
  }
}

@@ -1142,15 +1142,12 @@
 her.
-matches
+find
 () )

Change to match on part of string rather than only on entire string. This allows the given regExp pattern decide if it must match at start ("^"), end ("$"), or both ("^*$).