View Javadoc

1   package fr.in2p3.jsaga.helpers;
2   
3   import java.util.regex.Pattern;
4   
5   /* ***************************************************
6   * *** Centre de Calcul de l'IN2P3 - Lyon (France) ***
7   * ***             http://cc.in2p3.fr/             ***
8   * ***************************************************
9   * File:   SAGAPattern
10  * Author: Sylvain Reynaud (sreynaud@in2p3.fr)
11  * Date:   15 janv. 2008
12  * ***************************************************
13  * Description:                                      */
14  /**
15   *
16   */
17  public class SAGAPattern {
18      /**
19       * Convert wildcards to a regular expression.
20       * @param sagaPattern a pattern with wildcards as specified in "SAGA Name Spaces".
21       * @return a compiled regular expression.
22       */
23      public static Pattern toRegexp(String sagaPattern) {
24          if (sagaPattern==null || sagaPattern.equals("") || sagaPattern.equals("*")) {
25              // match all
26              return null;
27          } else {
28              String regexp = sagaPattern;
29  
30              // escape some characters
31              regexp = regexp.replaceAll("\\.", "\\\\.");
32  
33              // convert wildcards to regular expression
34              regexp = regexp.replaceAll("\\*", ".*");
35              regexp = regexp.replaceAll("\\?", ".?");
36              regexp = regexp.replaceAll("\\[^", "[^");
37  
38              // compile regular expression
39              return Pattern.compile(regexp);
40          }
41      }
42  
43      public static boolean hasWildcard(String sagaPattern) {
44          return (sagaPattern==null || sagaPattern.equals("") || sagaPattern.contains("*") || sagaPattern.contains("?"));
45      }
46  }