GlobPatternMapper (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.util

## Class GlobPatternMapper

- java.lang.Object
- - org.apache.tools.ant.util.GlobPatternMapper

- All Implemented Interfaces:
    FileNameMapper
  Direct Known Subclasses:
    PackageNameMapper, UnPackageNameMapper

      public class GlobPatternMapper
      extends java.lang.Object
      implements FileNameMapper

  Implementation of FileNameMapper that does simple wildcard pattern replacements.

  This does simple translations like *.foo -> *.bar where the prefix to .foo will be left unchanged. It only handles a single * character, use regular expressions for more complicated situations.

  This is one of the more useful Mappers, it is used by javac for example.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.String` | `fromPostfix` Part of "from" pattern after the *.
    `protected java.lang.String` | `fromPrefix` Part of "from" pattern before the *.
    `protected int` | `postfixLength` Length of the postfix ("from" pattern).
    `protected int` | `prefixLength` Length of the prefix ("from" pattern).
    `protected java.lang.String` | `toPostfix` Part of "to" pattern after the *.
    `protected java.lang.String` | `toPrefix` Part of "to" pattern before the *.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `GlobPatternMapper()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected java.lang.String` | `extractVariablePart(java.lang.String name)` Returns the part of the given string that matches the * in the "from" pattern.
    `boolean` | `getHandleDirSep()` Attribute specifying whether to ignore the difference between / and \ (the two common directory characters).
    `java.lang.String[]` | `mapFileName(java.lang.String sourceFileName)` Returns null if the source file name doesn't match the "from" pattern, an one-element array containing the translated file otherwise.
    `void` | `setCaseSensitive(boolean caseSensitive)` Attribute specifying whether to ignore the case difference in the names.
    `void` | `setFrom(java.lang.String from)` Sets the "from" pattern.
    `void` | `setHandleDirSep(boolean handleDirSep)` Attribute specifying whether to ignore the difference between / and \ (the two common directory characters).
    `void` | `setTo(java.lang.String to)` Sets the "to" pattern.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### fromPrefix

          protected java.lang.String fromPrefix

      Part of "from" pattern before the *.

    - #### fromPostfix

          protected java.lang.String fromPostfix

      Part of "from" pattern after the *.

    - #### prefixLength

          protected int prefixLength

      Length of the prefix ("from" pattern).

    - #### postfixLength

          protected int postfixLength

      Length of the postfix ("from" pattern).

    - #### toPrefix

          protected java.lang.String toPrefix

      Part of "to" pattern before the *.

    - #### toPostfix

          protected java.lang.String toPostfix

      Part of "to" pattern after the *.

  - ### Constructor Detail

    - #### GlobPatternMapper

          public GlobPatternMapper()

  - ### Method Detail

    - #### setHandleDirSep

          public void setHandleDirSep(boolean handleDirSep)

      Attribute specifying whether to ignore the difference between / and \ (the two common directory characters).
      Parameters:
        `handleDirSep` - a boolean, default is false.
      Since:
        Ant 1.6.3

    - #### getHandleDirSep

          public boolean getHandleDirSep()

      Attribute specifying whether to ignore the difference between / and \ (the two common directory characters).
      Returns:
        boolean
      Since:
        Ant 1.8.3

    - #### setCaseSensitive

          public void setCaseSensitive(boolean caseSensitive)

      Attribute specifying whether to ignore the case difference in the names.
      Parameters:
        `caseSensitive` - a boolean, default is false.
      Since:
        Ant 1.6.3

    - #### setFrom

          public void setFrom(java.lang.String from)

      Sets the "from" pattern. Required.
      Specified by:
        `setFrom` in interface `FileNameMapper`
      Parameters:
        `from` - a string

    - #### setTo

          public void setTo(java.lang.String to)

      Sets the "to" pattern. Required.
      Specified by:
        `setTo` in interface `FileNameMapper`
      Parameters:
        `to` - a string

    - #### mapFileName

          public java.lang.String[] mapFileName(java.lang.String sourceFileName)

      Returns null if the source file name doesn't match the "from" pattern, an one-element array containing the translated file otherwise.
      Specified by:
        `mapFileName` in interface `FileNameMapper`
      Parameters:
        `sourceFileName` - the filename to map
      Returns:
        a list of converted filenames

    - #### extractVariablePart

          protected java.lang.String extractVariablePart(java.lang.String name)

      Returns the part of the given string that matches the * in the "from" pattern.
      Parameters:
        `name` - the source file name
      Returns:
        the variable part of the name