home *** CD-ROM | disk | FTP | other *** search
- public class JScriptArrayObject extends JSbxObject implements JSbxPropertyInterface {
- public static final String NAME = "Array";
- private static final int ARRAY_ID_LENGTH = 1;
- private static final int ARRAY_ID_JOIN = 2;
- private static final int ARRAY_ID_REVERSE = 3;
- private static final int ARRAY_ID_SORT = 4;
- private String a_toString;
-
- public JScriptArrayObject(JScriptConstructor var1, String var2) {
- super(var1);
- this.a_toString = var2;
-
- try {
- ((JSbxObject)this).Put(new JSbxObjectProperty("length", this, this, 1, false, true));
- ((JSbxObject)this).Put(new JSbxObjectProperty("join", this, this, 2, false, true));
- ((JSbxObject)this).Put(new JSbxObjectProperty("reverse", this, this, 3, false, true));
- ((JSbxObject)this).Put(new JSbxObjectProperty("sort", this, this, 4, false, true));
- } catch (JSbxException var3) {
- }
- }
-
- public JScriptArrayObject(JScriptConstructor var1) {
- this(var1, (String)null);
- }
-
- public final void InitArray(int var1) {
- for(int var3 = 0; var3 < var1; ++var3) {
- ((JSbxObject)this).Get(var3, true);
- ((JSbxObject)this).Put(var3, (JSbxProperty)null);
- }
-
- }
-
- public final void SetElement(int var1, JSbxProperty var2) {
- ((JSbxObject)this).Put(var1, var2);
- }
-
- public final void AddElement(JSbxProperty var1) {
- try {
- ((JSbxObject)this).Put(var1);
- } catch (JSbxException var2) {
- }
- }
-
- public JSbxValue PropertyCallFunction(JSbxObjectProperty var1, JScriptCallParam var2) throws JSbxExceptionBase {
- JSbxVector var3 = var2.GetParamVector();
- int var4 = var3 != null ? var3.GetSize() : 0;
- int var5 = var1.GetID();
- String var6 = "";
- double var7 = (double)0.0F;
- boolean var9 = false;
- boolean var10 = false;
- switch (var5) {
- case 2:
- if (var4 > 0) {
- var6 = this.Make_toString(JScriptWindowObject.GetStringParam(var3, 0));
- } else {
- var6 = this.Make_toString(",");
- }
- break;
- case 3:
- ((JSbxObject)this).GetIndexArray().Reverse();
- var6 = this.Make_toString(",");
- break;
- case 4:
- if (var4 > 0) {
- JSbxValue var11 = (JSbxValue)var3.Get(0);
- if (var11.GetType() != 2 || !(var11.GetObject() instanceof JScriptMethod)) {
- throw new JSbxException(0, "error in Array.sort(): argument \"" + JScriptWindowObject.GetStringParam(var3, 0) + "\" is not a function");
- }
-
- this.BubbleSort((JScriptMethod)var11.GetObject(), var2);
- } else {
- this.BubbleSort((JScriptMethod)null, (JScriptCallParam)null);
- }
-
- var6 = this.Make_toString(",");
- }
-
- Object var12 = null;
- JSbxValue var13;
- if (var10) {
- var13 = new JSbxValue();
- } else if (var9) {
- var13 = new JSbxValue(var7);
- } else {
- var13 = new JSbxValue(var6);
- }
-
- var2.GetRuntimeParam().SetReturnValue(var13);
- return var13;
- }
-
- public void PropertyGet(JSbxObjectProperty var1, JSbxValue var2) throws JSbxException {
- int var3 = var1.GetID();
- double var4 = (double)0.0F;
- switch (var3) {
- case 1:
- var4 = (double)((JSbxObject)this).GetIndexArray().GetPosIndexSize();
- var2.Put(new JSbxValue(var4));
- return;
- default:
- }
- }
-
- public void PropertyPut(JSbxObjectProperty var1, JSbxValue var2) throws JSbxException {
- }
-
- public String Property_GetJScript_typeofString(JSbxObjectProperty var1) {
- return "arrayobject";
- }
-
- public String GetJScriptString(boolean var1) {
- return this.a_toString != null ? this.a_toString : this.Make_toString(",");
- }
-
- private final String Make_toString(String var1) {
- String var2 = "";
- JSbxIndexArray var3 = ((JSbxObject)this).GetIndexArray();
- JSbxValue var4 = new JSbxValue((short)4);
-
- for(int var5 = 0; var5 < var3.GetPosIndexSize(); ++var5) {
- JSbxProperty var6 = ((JSbxObject)this).Get(var5);
-
- try {
- if (var6 != null) {
- var6.Get(var4);
- var2 = var2 + var4.GetString();
- }
- } catch (JSbxException var7) {
- }
-
- if (var5 < var3.GetPosIndexSize() - 1) {
- var2 = var2 + var1;
- }
- }
-
- return var2;
- }
-
- private final void BubbleSort(JScriptMethod var1, JScriptCallParam var2) throws JSbxExceptionBase {
- int var3 = ((JSbxObject)this).GetIndexArray().GetPosIndexSize();
-
- for(int var4 = 0; var3 > 0; --var3) {
- try {
- for(int var9 = 0; var9 < var3 - 1; ++var9) {
- JSbxProperty var7 = ((JSbxObject)this).Get(var9);
- JSbxProperty var8 = ((JSbxObject)this).Get(var9 + 1);
- JSbxValue var5 = new JSbxValue();
- JSbxValue var6 = new JSbxValue();
- var7.Get(var5);
- var8.Get(var6);
- var4 = 0;
- if (var1 != null) {
- JSbxVector var10 = new JSbxVector(2);
- var10.Put(0, var5);
- var10.Put(1, var6);
- JScriptCallParam var11 = new JScriptCallParam(var2.GetRuntimeParam(), var10, (JSbxObject)null);
- JSbxValue var12 = null;
-
- try {
- var12 = var1.CallFunction(var11);
- } catch (JSbxExceptionBase var14) {
- System.out.println("Exception in Array.BubbleSort() --> in sortfcn(): " + var14);
- }
-
- if (var12 != null) {
- var4 = (int)var12.GetDouble();
- }
- } else {
- var4 = var5.GetString().compareTo(var6.GetString());
- }
-
- if (var4 > 0) {
- var7.Put(var6);
- var8.Put(var5);
- }
- }
- } catch (JSbxExceptionBase var15) {
- System.out.println("Exception in Array.BubbleSort(): " + var15);
- }
- }
-
- }
- }
-