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.NativeArray;
20 import org.htmlunit.corejs.javascript.Scriptable;
21 import org.htmlunit.javascript.HtmlUnitScriptable;
22 import org.htmlunit.javascript.JavaScriptEngine;
23 import org.htmlunit.javascript.RecursiveFunctionObject;
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 if (args[0] instanceof NativeArray) {
51 final NativeArray array = (NativeArray) args[0];
52 locales = new String[(int) array.getLength()];
53 for (int i = 0; i < locales.length; i++) {
54 locales[i] = JavaScriptEngine.toString(array.get(i));
55 }
56 }
57 else {
58 locales = new String[] {JavaScriptEngine.toString(args[0])};
59 }
60 }
61 else {
62 locales = new String[] {""};
63 }
64 final Window window = getWindow(ctorObj);
65 final Collator format = new Collator();
66 format.setParentScope(window);
67 format.setPrototype(((RecursiveFunctionObject) ctorObj).getClassPrototype());
68 return format;
69 }
70 }