1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.javascript.host.intl;
16
17 import org.htmlunit.corejs.javascript.Context;
18 import org.htmlunit.corejs.javascript.Function;
19 import org.htmlunit.corejs.javascript.FunctionObject;
20 import org.htmlunit.corejs.javascript.NativeArray;
21 import org.htmlunit.corejs.javascript.Scriptable;
22 import org.htmlunit.javascript.HtmlUnitScriptable;
23 import org.htmlunit.javascript.JavaScriptEngine;
24 import org.htmlunit.javascript.configuration.JsxClass;
25 import org.htmlunit.javascript.configuration.JsxConstructor;
26 import org.htmlunit.javascript.host.Window;
27
28
29
30
31
32
33 @JsxClass
34 public class Collator extends HtmlUnitScriptable {
35
36
37
38
39
40
41
42
43
44
45 @JsxConstructor
46 public static Scriptable jsConstructor(final Context cx, final Scriptable scope,
47 final Object[] args, final Function ctorObj, final boolean inNewExpr) {
48 final String[] locales;
49 if (args.length == 0) {
50 locales = new String[] {""};
51 }
52 else {
53 if (args[0] instanceof NativeArray) {
54 final NativeArray array = (NativeArray) args[0];
55 locales = new String[(int) array.getLength()];
56 for (int i = 0; i < locales.length; i++) {
57 locales[i] = JavaScriptEngine.toString(array.get(i));
58 }
59 }
60 else {
61 locales = new String[] {JavaScriptEngine.toString(args[0])};
62 }
63 }
64 final Window window = getWindow(ctorObj);
65 final Collator format = new Collator();
66 format.setParentScope(window);
67 format.setPrototype(((FunctionObject) ctorObj).getClassPrototype());
68 return format;
69 }
70 }