View Javadoc

1   package org.apache.maven.util;
2   
3   /* ====================================================================
4    *   Licensed to the Apache Software Foundation (ASF) under one or more
5    *   contributor license agreements.  See the NOTICE file distributed with
6    *   this work for additional information regarding copyright ownership.
7    *   The ASF licenses this file to You under the Apache License, Version 2.0
8    *   (the "License"); you may not use this file except in compliance with
9    *   the License.  You may obtain a copy of the License at
10   *
11   *       http://www.apache.org/licenses/LICENSE-2.0
12   *
13   *   Unless required by applicable law or agreed to in writing, software
14   *   distributed under the License is distributed on an "AS IS" BASIS,
15   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   *   See the License for the specific language governing permissions and
17   *   limitations under the License.
18   * ====================================================================
19   */
20  
21  import org.apache.tools.ant.util.GlobPatternMapper;
22  
23  /**
24   * Implementation of FileNameMapper that does simple case insensitive
25   * wildcard pattern replacements.
26   *
27   * <p>This does the same name translations as
28   * <code>org.apache.tools.ant.util.GlobPatternMapper</code> does,
29   * but ignores case when comparing parts of name with patterns.</p>
30   *
31   * @author <a href="mailto:barancev@ispras.ru">Alexei Baranstev</a>
32   */
33  public class CaseInsensitiveGlobPatternMapper
34      extends GlobPatternMapper
35  {
36  
37      /**
38       * Returns null if the source file name doesn't match the
39       * &quot;from&quot; pattern, an one-element array containing the
40       * translated file otherwise.
41       */
42      public String[] mapFileName( String sourceFileName )
43      {
44          if ( ( fromPrefix == null ) || !sourceFileName.toLowerCase().startsWith( fromPrefix.toLowerCase() )
45              || !sourceFileName.toLowerCase().endsWith( fromPostfix.toLowerCase() ) )
46          {
47              return null;
48          }
49          return new String[] { toPrefix + extractVariablePart( sourceFileName ) + toPostfix };
50      }
51  
52  }