Class TranslateFunction
- java.lang.Object
-
- org.jaxen.function.TranslateFunction
-
- All Implemented Interfaces:
Function
public class TranslateFunction extends java.lang.Object implements Function
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 stringBAr
. 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.
- See Also:
- Section 4.2 of the XPath Specification
-
-
Constructor Summary
Constructors Constructor Description TranslateFunction()
Create a newTranslateFunction
object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
call(Context context, java.util.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 java.lang.String
evaluate(java.lang.Object strArg, java.lang.Object fromArg, java.lang.Object toArg, Navigator nav)
Returns a copy ofstrArg
in which characters found infromArg
are replaced by corresponding characters fromtoArg
.private static boolean
isHighSurrogate(char c)
private static boolean
isLowSurrogate(char c)
private static java.lang.String[]
toUnicodeCharacters(java.lang.String s)
-
-
-
Method Detail
-
call
public java.lang.Object call(Context context, java.util.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.- Specified by:
call
in interfaceFunction
- Parameters:
context
- the context at the point in the expression when the function is calledargs
- a list that contains exactly three items- Returns:
- a
String
built fromargs.get(0)
in which occurrences of characters inargs.get(1)
are replaced by the corresponding characters inargs.get(2)
- Throws:
FunctionCallException
- ifargs
does not have exactly three items
-
evaluate
public static java.lang.String evaluate(java.lang.Object strArg, java.lang.Object fromArg, java.lang.Object toArg, Navigator nav) throws FunctionCallException
Returns a copy ofstrArg
in which characters found infromArg
are replaced by corresponding characters fromtoArg
. If necessary each argument is first converted to it string-value as if by the XPathstring()
function.- Parameters:
strArg
- the base stringfromArg
- the characters to be replacedtoArg
- the characters they will be replaced bynav
- theNavigator
used to calculate the string-values of the arguments.- Returns:
- a copy of
strArg
in which characters found infromArg
are replaced by corresponding characters fromtoArg
- Throws:
FunctionCallException
- if one of the arguments is a malformed Unicode string; that is, if surrogate characters don't line up properly
-
toUnicodeCharacters
private static java.lang.String[] toUnicodeCharacters(java.lang.String s) throws FunctionCallException
- Throws:
FunctionCallException
-
isHighSurrogate
private static boolean isHighSurrogate(char c)
-
isLowSurrogate
private static boolean isLowSurrogate(char c)
-
-