Class HtmlUnitRegExpProxy

  • All Implemented Interfaces:
    org.htmlunit.corejs.javascript.RegExpProxy

    public class HtmlUnitRegExpProxy
    extends org.htmlunit.corejs.javascript.regexp.RegExpImpl
    Begins customization of JavaScript RegExp base on JDK regular expression support.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static org.apache.commons.logging.Log LOG  
      private static java.util.Map<java.lang.String,​java.util.regex.Pattern> PATTENS
      Pattern cache
      private org.htmlunit.corejs.javascript.RegExpProxy wrapped_  
      • Fields inherited from class org.htmlunit.corejs.javascript.regexp.RegExpImpl

        input, lastMatch, lastParen, leftContext, multiline, parens, rightContext
      • Fields inherited from interface org.htmlunit.corejs.javascript.RegExpProxy

        RA_MATCH, RA_REPLACE, RA_REPLACE_ALL, RA_SEARCH
    • Constructor Summary

      Constructors 
      Constructor Description
      HtmlUnitRegExpProxy​(org.htmlunit.corejs.javascript.RegExpProxy wrapped)
      Wraps a proxy to enhance it.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object action​(org.htmlunit.corejs.javascript.Context cx, org.htmlunit.corejs.javascript.Scriptable scope, org.htmlunit.corejs.javascript.Scriptable thisObj, java.lang.Object[] args, int actionType)
      Use the wrapped proxy except for replacement with string arg where it uses Java regular expression.
      java.lang.Object compileRegExp​(org.htmlunit.corejs.javascript.Context cx, java.lang.String source, java.lang.String flags)
      (package private) java.lang.String computeReplacementValue​(java.lang.String replacement, java.lang.String originalString, java.util.regex.MatchResult matcher, boolean group0ReturnsWholeMatch)  
      private java.lang.Object doAction​(org.htmlunit.corejs.javascript.Context cx, org.htmlunit.corejs.javascript.Scriptable scope, org.htmlunit.corejs.javascript.Scriptable thisObj, java.lang.Object[] args, int actionType)  
      private java.lang.String doReplacement​(java.lang.String originalString, java.lang.String replacement, java.util.regex.Matcher matcher, boolean replaceAll)  
      private java.lang.String doStringReplacement​(java.lang.String originalString, java.lang.String searchString, java.lang.String replacement, boolean replaceAll)  
      int find_split​(org.htmlunit.corejs.javascript.Context cx, org.htmlunit.corejs.javascript.Scriptable scope, java.lang.String target, java.lang.String separator, org.htmlunit.corejs.javascript.Scriptable re, int[] ip, int[] matchlen, boolean[] matched, java.lang.String[][] parensp)
      boolean isRegExp​(org.htmlunit.corejs.javascript.Scriptable obj)
      (package private) static java.lang.String jsRegExpToJavaRegExp​(java.lang.String re)
      Transform a JavaScript regular expression to a Java regular expression
      private void setProperties​(java.util.regex.Matcher matcher, java.lang.String thisString, int startPos, int endPos)  
      private java.lang.Object wrappedAction​(org.htmlunit.corejs.javascript.Context cx, org.htmlunit.corejs.javascript.Scriptable scope, org.htmlunit.corejs.javascript.Scriptable thisObj, java.lang.Object[] args, int actionType)
      Calls action on the wrapped RegExp proxy.
      org.htmlunit.corejs.javascript.Scriptable wrapRegExp​(org.htmlunit.corejs.javascript.Context cx, org.htmlunit.corejs.javascript.Scriptable scope, java.lang.Object compiled)
      • Methods inherited from class org.htmlunit.corejs.javascript.regexp.RegExpImpl

        js_split
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOG

        private static final org.apache.commons.logging.Log LOG
      • PATTENS

        private static final java.util.Map<java.lang.String,​java.util.regex.Pattern> PATTENS
        Pattern cache
      • wrapped_

        private final org.htmlunit.corejs.javascript.RegExpProxy wrapped_
    • Constructor Detail

      • HtmlUnitRegExpProxy

        public HtmlUnitRegExpProxy​(org.htmlunit.corejs.javascript.RegExpProxy wrapped)
        Wraps a proxy to enhance it.
        Parameters:
        wrapped - the original proxy
    • Method Detail

      • action

        public java.lang.Object action​(org.htmlunit.corejs.javascript.Context cx,
                                       org.htmlunit.corejs.javascript.Scriptable scope,
                                       org.htmlunit.corejs.javascript.Scriptable thisObj,
                                       java.lang.Object[] args,
                                       int actionType)
        Use the wrapped proxy except for replacement with string arg where it uses Java regular expression.
        Specified by:
        action in interface org.htmlunit.corejs.javascript.RegExpProxy
        Overrides:
        action in class org.htmlunit.corejs.javascript.regexp.RegExpImpl
      • doAction

        private java.lang.Object doAction​(org.htmlunit.corejs.javascript.Context cx,
                                          org.htmlunit.corejs.javascript.Scriptable scope,
                                          org.htmlunit.corejs.javascript.Scriptable thisObj,
                                          java.lang.Object[] args,
                                          int actionType)
      • doStringReplacement

        private java.lang.String doStringReplacement​(java.lang.String originalString,
                                                     java.lang.String searchString,
                                                     java.lang.String replacement,
                                                     boolean replaceAll)
      • doReplacement

        private java.lang.String doReplacement​(java.lang.String originalString,
                                               java.lang.String replacement,
                                               java.util.regex.Matcher matcher,
                                               boolean replaceAll)
      • computeReplacementValue

        java.lang.String computeReplacementValue​(java.lang.String replacement,
                                                 java.lang.String originalString,
                                                 java.util.regex.MatchResult matcher,
                                                 boolean group0ReturnsWholeMatch)
      • wrappedAction

        private java.lang.Object wrappedAction​(org.htmlunit.corejs.javascript.Context cx,
                                               org.htmlunit.corejs.javascript.Scriptable scope,
                                               org.htmlunit.corejs.javascript.Scriptable thisObj,
                                               java.lang.Object[] args,
                                               int actionType)
        Calls action on the wrapped RegExp proxy.
      • setProperties

        private void setProperties​(java.util.regex.Matcher matcher,
                                   java.lang.String thisString,
                                   int startPos,
                                   int endPos)
      • compileRegExp

        public java.lang.Object compileRegExp​(org.htmlunit.corejs.javascript.Context cx,
                                              java.lang.String source,
                                              java.lang.String flags)
        Specified by:
        compileRegExp in interface org.htmlunit.corejs.javascript.RegExpProxy
        Overrides:
        compileRegExp in class org.htmlunit.corejs.javascript.regexp.RegExpImpl
      • find_split

        public int find_split​(org.htmlunit.corejs.javascript.Context cx,
                              org.htmlunit.corejs.javascript.Scriptable scope,
                              java.lang.String target,
                              java.lang.String separator,
                              org.htmlunit.corejs.javascript.Scriptable re,
                              int[] ip,
                              int[] matchlen,
                              boolean[] matched,
                              java.lang.String[][] parensp)
        Specified by:
        find_split in interface org.htmlunit.corejs.javascript.RegExpProxy
        Overrides:
        find_split in class org.htmlunit.corejs.javascript.regexp.RegExpImpl
      • isRegExp

        public boolean isRegExp​(org.htmlunit.corejs.javascript.Scriptable obj)
        Specified by:
        isRegExp in interface org.htmlunit.corejs.javascript.RegExpProxy
        Overrides:
        isRegExp in class org.htmlunit.corejs.javascript.regexp.RegExpImpl
      • wrapRegExp

        public org.htmlunit.corejs.javascript.Scriptable wrapRegExp​(org.htmlunit.corejs.javascript.Context cx,
                                                                    org.htmlunit.corejs.javascript.Scriptable scope,
                                                                    java.lang.Object compiled)
        Specified by:
        wrapRegExp in interface org.htmlunit.corejs.javascript.RegExpProxy
        Overrides:
        wrapRegExp in class org.htmlunit.corejs.javascript.regexp.RegExpImpl
      • jsRegExpToJavaRegExp

        static java.lang.String jsRegExpToJavaRegExp​(java.lang.String re)
        Transform a JavaScript regular expression to a Java regular expression
        Parameters:
        re - the JavaScript regular expression to transform
        Returns:
        the transformed expression