org.jaxen.function
Class TranslateFunction
java.lang.Object
org.jaxen.function.TranslateFunction
- Function
public class TranslateFunction
extends java.lang.Object
4.2
string translate(string,string,string)
The translate function
returns the first argument string with occurrences of characters in
the second argument string replaced by the character at the
corresponding position in the third argument string. For example,
translate("bar","abc","ABC")
returns the string
BAr
. If there is a character in the second argument
string with no character at a corresponding position in the third
argument string (because the second argument string is longer than
the third argument string), then occurrences of that character in the
first argument string are removed. For example,
translate("--aaa--","abc-","ABC")
returns
"AAA"
. If a character occurs more than once in the
second argument string, then the first occurrence determines the
replacement character. If the third argument string is longer than
the second argument string, then excess characters are ignored.
NOTE: The translate function is not a
sufficient solution for case conversion in all languages. A future
version of XPath may provide additional functions for case
conversion.
- Jan Dvorak ( jan.dvorak @ mathan.cz )
Object | call(Context context, List args) - Returns a copy of the first argument in which
characters found in the second argument are replaced by
corresponding characters from the third argument.
|
static String | evaluate(Object strArg, Object fromArg, Object toArg, Navigator nav) - Returns a copy of
strArg in which
characters found in fromArg are replaced by
corresponding characters from toArg .
|
private static boolean | isHighSurrogate(char c)
|
private static boolean | isLowSurrogate(char c)
|
private static String[] | toUnicodeCharacters(String s)
|
TranslateFunction
public TranslateFunction()
Create a new TranslateFunction
object.
call
public Object call(Context context,
List args)
throws FunctionCallException
Returns a copy of the first argument in which
characters found in the second argument are replaced by
corresponding characters from the third argument.
- call in interface Function
context
- the context at the point in the
expression when the function is calledargs
- a list that contains exactly three items
- a
String
built from args.get(0)
in which occurrences of characters in args.get(1)
are replaced by the corresponding characters in args.get(2)
evaluate
public static String evaluate(Object strArg,
Object fromArg,
Object toArg,
Navigator nav)
throws FunctionCallException
Returns a copy of strArg
in which
characters found in fromArg
are replaced by
corresponding characters from toArg
.
If necessary each argument is first converted to it string-value
as if by the XPath string()
function.
strArg
- the base stringfromArg
- the characters to be replacedtoArg
- the characters they will be replaced bynav
- the Navigator
used to calculate the string-values of the arguments.
- a copy of
strArg
in which
characters found in fromArg
are replaced by
corresponding characters from toArg
FunctionCallException
- if one of the arguments is a malformed Unicode string;
that is, if surrogate characters don't line up properly
isHighSurrogate
private static boolean isHighSurrogate(char c)
isLowSurrogate
private static boolean isLowSurrogate(char c)