ProjectPatternMatcher.java

package com.codeaffine.extras.workingset.internal;

import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

import org.eclipse.core.resources.IProject;


public class ProjectPatternMatcher {

  private final Pattern pattern;

  public ProjectPatternMatcher( String regex ) {
    pattern = compilePattern( regex );
  }

  public boolean isPatternValid() {
    return pattern != null;
  }

  public boolean matches( IProject project ) {
    return pattern != null && pattern.matcher( project.getName() ).matches();
  }

  private static Pattern compilePattern( String regex ) {
    Pattern result;
    try {
      result = Pattern.compile( regex );
    } catch( PatternSyntaxException ignore ) {
      result = null;
    }
    return result;
  }

}