Class 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.

    Version:
    $Id: GlobPatternMapper.java 1721579 2015-12-23 21:08:39Z khmarbaise $
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean caseSensitive  
      protected java.lang.String fromPostfix
      Part of "from" pattern after the *.
      protected java.lang.String fromPrefix
      Part of "from" pattern before the *.
      private boolean handleDirSep  
      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 *.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.lang.String extractVariablePart​(java.lang.String name)
      Returns the part of the given string that matches the * in the "from" pattern.
      java.lang.String mapFileName​(java.lang.String sourceFileName)
      Returns the target filename for the given source file.
      private java.lang.String modifyName​(java.lang.String name)
      modify string based on dir char mapping and case sensitivity
      void setCaseSensitive​(boolean caseSensitive)
      Attribute specifing whether to ignore the case difference in the names.
      void setFrom​(java.lang.String from)
      Sets the from part of the transformation rule.
      void setHandleDirSep​(boolean handleDirSep)
      Attribute specifing whether to ignore the difference between / and \ (the two common directory characters).
      void setTo​(java.lang.String to)
      Sets the to part of the transformation rule.
      • 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 *.
      • handleDirSep

        private boolean handleDirSep
      • caseSensitive

        private boolean caseSensitive
    • Constructor Detail

      • GlobPatternMapper

        public GlobPatternMapper()
    • Method Detail

      • setHandleDirSep

        public void setHandleDirSep​(boolean handleDirSep)
        Attribute specifing whether to ignore the difference between / and \ (the two common directory characters).
        Parameters:
        handleDirSep - a boolean, default is false.
      • setCaseSensitive

        public void setCaseSensitive​(boolean caseSensitive)
        Attribute specifing whether to ignore the case difference in the names.
        Parameters:
        caseSensitive - a boolean, default is false.
      • setFrom

        public void setFrom​(java.lang.String from)
        Sets the from part of the transformation rule.
        Specified by:
        setFrom in interface FileNameMapper
        Parameters:
        from - The source.
      • setTo

        public void setTo​(java.lang.String to)
        Sets the to part of the transformation rule.
        Specified by:
        setTo in interface FileNameMapper
        Parameters:
        to - The destination.
      • mapFileName

        public java.lang.String mapFileName​(java.lang.String sourceFileName)
        Returns the target filename for the given source file.

        if the given rule doesn't apply to the source file, implementation must return null. SourceFileScanner will then omit the source file in question.

        Specified by:
        mapFileName in interface FileNameMapper
        Parameters:
        sourceFileName - the name of the source file relative to some given basedirectory.
        Returns:
        the target filename for the given source file.
      • 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
      • modifyName

        private java.lang.String modifyName​(java.lang.String name)
        modify string based on dir char mapping and case sensitivity
        Parameters:
        name - the name to convert
        Returns:
        the converted name