Package org.htmlunit.javascript.regexp
Class HtmlUnitRegExpProxy
- java.lang.Object
-
- org.htmlunit.corejs.javascript.regexp.RegExpImpl
-
- org.htmlunit.javascript.regexp.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
HtmlUnitRegExpProxy.RegExpData
private static class
HtmlUnitRegExpProxy.RegExStickyNotSupportedException
private static class
HtmlUnitRegExpProxy.StaticStringMatcher
Simple helper.
-
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 cacheprivate org.htmlunit.corejs.javascript.RegExpProxy
wrapped_
-
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 expressionprivate 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)
-
-
-
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 interfaceorg.htmlunit.corejs.javascript.RegExpProxy
- Overrides:
action
in classorg.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 interfaceorg.htmlunit.corejs.javascript.RegExpProxy
- Overrides:
compileRegExp
in classorg.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 interfaceorg.htmlunit.corejs.javascript.RegExpProxy
- Overrides:
find_split
in classorg.htmlunit.corejs.javascript.regexp.RegExpImpl
-
isRegExp
public boolean isRegExp(org.htmlunit.corejs.javascript.Scriptable obj)
- Specified by:
isRegExp
in interfaceorg.htmlunit.corejs.javascript.RegExpProxy
- Overrides:
isRegExp
in classorg.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 interfaceorg.htmlunit.corejs.javascript.RegExpProxy
- Overrides:
wrapRegExp
in classorg.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
-
-