home *** CD-ROM | disk | FTP | other *** search
- import java.io.PrintStream;
- import stardiv.tools.HoldJavaEnvironment;
-
- public class JSbxObject extends JSbxBase {
- public static final String NOT_SAFE_TO_INSPECT = "*** not safe to inspect ***";
- protected boolean bIsConst;
- protected JSbxNameArray aNameArray;
- protected JSbxIndexArray aIndexArray;
- protected JSbxStack aSearchObjectStack;
- protected JSbxVector aHistoryArray;
- protected JScriptConstructor aConstructorHandle;
- private static long nObjCount;
- protected long pCppJSbxObject;
- private String pTypeInfoStrg;
- private JSbxValueProperty aToStringProp;
- private JSbxValueProperty aValueOfProp;
- private JScriptManager aLifeConnectManager;
- public static final String NO_SUCH_METHOD = "no such method in ";
- public static final String NO_SUCH_PROPERTY = "no such property in ";
- public static final String UNDEFINED_STRG = "undefined";
- private boolean bEvalCallbackDone;
-
- public void setLifeConnectManager(JScriptManager var1) {
- this.aLifeConnectManager = var1;
- }
-
- public JSbxObject() {
- this(0L, (JScriptConstructor)null);
- }
-
- protected JSbxObject(JScriptConstructor var1) {
- this(0L, var1);
- }
-
- public JSbxObject(long var1, JScriptConstructor var3) {
- this.pTypeInfoStrg = null;
- this.aToStringProp = null;
- this.aValueOfProp = null;
- this.pCppJSbxObject = var1;
- this.SetAsChangeable();
- this.Constr();
- this.SetConstructor(var3);
- }
-
- protected void finalize() {
- }
-
- protected void Constr() {
- }
-
- public boolean ExistsNativeHandle() {
- return this.pCppJSbxObject != 0L;
- }
-
- public void ClearNativeHandle() {
- this.pCppJSbxObject = 0L;
- }
-
- public final void SetNativeHandle(long var1) {
- this.pCppJSbxObject = var1;
- }
-
- public final long GetNativeHandle() {
- return this.pCppJSbxObject;
- }
-
- public final int GetNativeHandleInt() {
- return (int)this.pCppJSbxObject;
- }
-
- public static JavaScript GetMyJavaScript() {
- return JScriptManager.GetMyJScriptManager().GetJavaScriptObj();
- }
-
- public final void SetTypeInfoString(String var1) {
- this.pTypeInfoStrg = var1;
- }
-
- public final boolean IsConstant() {
- return this.bIsConst;
- }
-
- protected final void SetAsConstant() {
- this.bIsConst = true;
- }
-
- protected final void SetAsChangeable() {
- this.bIsConst = false;
- }
-
- public JSbxProperty GetHistoryArrayEntry(int var1) {
- JSbxVector var2 = this.GetHistoryArray();
- int var3 = var2.GetSize();
- if (var1 < var3) {
- return (JSbxProperty)var2.Get(var1);
- } else {
- if (this.pCppJSbxObject != 0L) {
- JSbxObject var4 = this.GetObject_Index(var1 - var3);
- if (var4 != null) {
- JSbxProperty var5 = var4.Get("name", false);
- String var6 = String.valueOf(var1 - var3);
- if (var5 != null) {
- JSbxValue var7 = new JSbxValue();
-
- try {
- var5.Get(var7);
- var6 = var7.GetString();
- } catch (JSbxException var8) {
- }
- }
-
- JSbxValue var9 = new JSbxValue(var4);
- return new JSbxValueProperty(var6, (JSbxObject)null, var9);
- }
- }
-
- return null;
- }
- }
-
- public void ClrAllVariables() {
- this.aNameArray = null;
- this.aIndexArray = null;
- this.aSearchObjectStack = null;
- this.aHistoryArray = null;
- }
-
- public final void SetConstructor(JScriptConstructor var1) {
- if (this.aConstructorHandle != var1) {
- this.aConstructorHandle = var1;
- if (this.aConstructorHandle != null) {
- this.aConstructorHandle.CreateObjectProperties(this);
- }
-
- }
- }
-
- public final JScriptConstructor GetConstructor() {
- return this.aConstructorHandle;
- }
-
- public final void SetToStringProperty(JSbxValueProperty var1) {
- this.aToStringProp = var1;
- }
-
- public final JSbxValueProperty GetToStringProperty() {
- return this.aToStringProp;
- }
-
- public final void SetValueOfProperty(JSbxValueProperty var1) {
- this.aValueOfProp = var1;
- }
-
- public final JSbxValueProperty GetValueOfProperty() {
- return this.aValueOfProp;
- }
-
- public void Put(JSbxProperty var1) throws JSbxException {
- if (!this.IsConstant()) {
- this.GetNameArray().Put(var1);
- if (((JSbxBase)var1).IsReset(4)) {
- this.GetHistoryArray().Add(var1);
- }
- }
-
- }
-
- public JSbxProperty Get(String var1) {
- return this.Get(var1, false);
- }
-
- public JSbxProperty Get(String var1, boolean var2) {
- Object var3 = this.GetNameArray().Get(var1);
- if (var3 == null && this.aConstructorHandle != null) {
- var3 = this.aConstructorHandle.CtorGet(var1, false);
- if (var3 != null) {
- ((JSbxProperty)var3).SetThisParentObj(this);
- }
- }
-
- if (var3 == null) {
- var3 = this.SearchObjectStack(var1, var2);
- if (var3 == null && this.pCppJSbxObject != 0L) {
- try {
- if (HoldJavaEnvironment.CanIAskApplication()) {
- JSbxObject var4 = this.GetObject(var1);
- if (var4 != null) {
- var3 = new JSbxValueProperty(var1, var4, new JSbxValue(var4));
- }
- }
- } catch (UnsatisfiedLinkError var6) {
- }
- }
-
- if (var3 == null && var2) {
- var3 = new JSbxValueProperty(var1, this);
-
- try {
- this.Put((JSbxProperty)var3);
- } catch (JSbxException var5) {
- }
- }
- }
-
- return (JSbxProperty)var3;
- }
-
- public void Put(int var1, JSbxProperty var2) {
- if (!this.IsConstant()) {
- this.GetIndexArray().Put(var1, var2);
- }
-
- }
-
- public JSbxProperty Get(int var1) {
- return this.Get(var1, false);
- }
-
- public JSbxProperty Get(int var1, boolean var2) {
- Object var3 = (JSbxProperty)this.GetIndexArray().Get(var1);
- if (var3 == null && var2) {
- var3 = new JSbxValueProperty(String.valueOf(var1), this);
- this.Put(var1, (JSbxProperty)var3);
-
- try {
- this.Put((JSbxProperty)var3);
- } catch (JSbxException var4) {
- }
- }
-
- return (JSbxProperty)var3;
- }
-
- private void RemoveProperty(String var1) {
- this.RemoveProperty(this.Get(var1));
- }
-
- public void RemoveProperty(JSbxProperty var1) {
- if (var1 != null && !this.IsConstant()) {
- this.GetNameArray().Remove(var1.GetName());
-
- try {
- double var2 = Double.valueOf(var1.GetName());
- int var4 = (int)var2;
- if ((double)var4 == var2) {
- this.Put(var4, (JSbxProperty)null);
- }
- } catch (NumberFormatException var5) {
- }
-
- this.GetHistoryArray().Delete(var1);
- }
-
- }
-
- protected JSbxNameArray GetNameArray() {
- if (this.aNameArray == null) {
- this.aNameArray = new JSbxNameArray();
- }
-
- return this.aNameArray;
- }
-
- protected JSbxIndexArray GetIndexArray() {
- if (this.aIndexArray == null) {
- this.aIndexArray = new JSbxIndexArray();
- }
-
- return this.aIndexArray;
- }
-
- protected JSbxVector GetHistoryArray() {
- if (this.aHistoryArray == null) {
- this.aHistoryArray = new JSbxVector();
- }
-
- return this.aHistoryArray;
- }
-
- public void CheckAndPushSearchObject(JSbxObject var1) {
- if (var1 != null) {
- JSbxStack var2 = this.GetSearchStack();
- if (var2 != null && !((JSbxVector)var2).IsObjectInVector(var1)) {
- var2.Push(var1);
- }
-
- }
- }
-
- public void DeleteSearchObject(JSbxObject var1) {
- JSbxStack var2 = this.GetSearchStack();
- if (var2 != null) {
- ((JSbxVector)var2).Delete(var1);
- }
-
- }
-
- public void PushSearchObject(JSbxObject var1) {
- if (var1 != null) {
- this.GetSearchStack().Push(var1);
- }
- }
-
- public JSbxObject PopSearchObject() {
- return (JSbxObject)this.GetSearchStack().Pop();
- }
-
- protected JSbxProperty SearchObjectStack(String var1, boolean var2) {
- if (this.aSearchObjectStack != null) {
- int var3 = this.aSearchObjectStack.GetSize();
- if (var3 > 0) {
- for(int var6 = var3 - 1; var6 >= 0; --var6) {
- JSbxObject var4 = (JSbxObject)this.aSearchObjectStack.Get(var6);
- JSbxProperty var5;
- if (var4 != null) {
- var5 = var4.Get(var1, false);
- } else {
- HoldJavaEnvironment.AddToProtocol("WARNING: bad Object on SearchStack " + var6 + " this=" + this);
- var5 = null;
- }
-
- if (var5 != null) {
- return var5;
- }
- }
- }
- }
-
- return null;
- }
-
- private JSbxStack GetSearchStack() {
- if (this.aSearchObjectStack == null) {
- this.aSearchObjectStack = new JSbxStack(5);
- }
-
- return this.aSearchObjectStack;
- }
-
- public int GetNameArraySize() {
- return this.aNameArray == null ? 0 : this.aNameArray.GetSize();
- }
-
- public int GetIndexArraySize() {
- return this.aIndexArray == null ? 0 : this.aIndexArray.GetSize();
- }
-
- public String JS_toString() {
- JSbxValueProperty var1 = this.GetToStringProperty();
- if (var1 != null) {
- try {
- JSbxValue var2 = null;
- JScriptManager var3 = this.aLifeConnectManager;
- if (var3 == null) {
- var3 = JScriptManager.GetMyJScriptManager();
- }
-
- if (var3 == null) {
- return this.GetJScriptString();
- }
-
- JScriptRuntimeInstance var4 = var3.CreateNewRTI(false, false, (JScriptScheduler)null, (JScriptRunParam)null);
- if (var4 != null) {
- JScriptCallParam var5 = new JScriptCallParam(var4.GetActualRuntimeParam(), (JSbxVector)null, this);
- var2 = var1.CallFunction(var5);
- var3.DestroyRTI(var4);
- }
-
- if (var2 != null) {
- return var2.GetString();
- }
- } catch (JSbxExceptionBase var6) {
- }
- }
-
- return this.GetJScriptString();
- }
-
- public String GetJScriptString() {
- return this.GetJScriptString(false);
- }
-
- public String GetJScriptString(boolean var1) {
- return this.pTypeInfoStrg != null ? this.pTypeInfoStrg : "[object Object]";
- }
-
- public JSbxValue JS_valueOf() {
- return this.GetJScriptValue();
- }
-
- public JSbxValue GetJScriptValue() {
- return new JSbxValue(this.GetJScriptString(true));
- }
-
- public String GetJScript_typeofString() {
- return "object";
- }
-
- public Object RunCodeWithMyThis(String var1, JavaScript var2, SJCallByReference_String var3, SJCallByReference_int var4, SJCallByReference_boolean var5, boolean var6) {
- JScriptRunParam var7 = new JScriptRunParam();
- var7.aJSObj = var2;
- var7.aRetStrg = var3;
- var7.aErrCode = var4;
- var7.aErrInFirstStmt = var5;
- var7.bDbgFlag = var6;
- return this.RunCodeWithMyThis(var1, var7);
- }
-
- public Object RunCodeWithMyThis(String var1, JScriptRunParam var2) {
- Object var3 = null;
-
- try {
- var1 = var1.replace('"', '\'');
- var1 = SaveSpecialChars(var1);
- String var4;
- if (var2.aRetStrg != null) {
- var4 = "return eval( \"" + var1 + "\")";
- } else {
- var4 = var1;
- }
-
- var3 = var2.aJSObj.GetManager().DoRunScriptSync_CTOJ(var4, var2);
- if (var2.aRetStrg != null && var2.aRetStrg.GetValue().equals("undefined")) {
- var2.aRetStrg.SetValue("");
- }
- } catch (Throwable var6) {
- String var5 = "WARNING: Exception in JSbxObject.RunCodeWithMyThis()";
- HoldJavaEnvironment.AddToProtocol(var5);
- var5 = "Exception= " + var6;
- HoldJavaEnvironment.AddToProtocol(var5);
- if (var2.aErrCode != null) {
- var2.aErrCode.SetValue(-1);
- }
- }
-
- return var3;
- }
-
- public int RunCodeWithMyThisAsync(String var1, JavaScript var2, int var3) {
- return this.RunCodeWithMyThisAsync(var1, var2, var3, false);
- }
-
- public int RunCodeWithMyThisAsync(String var1, JavaScript var2, int var3, boolean var4) {
- return this.AsyncRun(var1, var2, (Object)null, var3, var4);
- }
-
- public int RunModuleWithMyThis(Object var1, JavaScript var2, SJCallByReference_String var3, SJCallByReference_boolean var4, boolean var5) {
- JScriptRunParam var6 = new JScriptRunParam();
- var6.aModule = (JScriptModule)var1;
- var6.aJSObj = var2;
- var6.aRetStrg = var3;
- var6.aErrInFirstStmt = var4;
- var6.bDbgFlag = var5;
- return this.RunModuleWithMyThis(var6);
- }
-
- public int RunModuleWithMyThis(JScriptRunParam var1) {
- var1.aErrInFirstStmt.SetValue(false);
- JScriptRuntimeInstance var2 = var1.aJSObj.GetManager().DoRunModSyncRTI_CTOJ(var1);
- if (var1.aRetStrg != null) {
- JSbxValue var3 = var2.GetReturnValue();
- if (var3 != null) {
- try {
- var1.aRetStrg.SetValue(var3.GetString());
- } catch (JSbxException var4) {
- }
- }
- }
-
- return var2.GetErrorCode();
- }
-
- public int RunModuleWithMyThisAsync(Object var1, JavaScript var2, int var3) {
- return this.AsyncRun((String)null, var2, var1, var3, false);
- }
-
- public int RunModuleWithMyThisAsync(Object var1, JavaScript var2, int var3, boolean var4) {
- return this.AsyncRun((String)null, var2, var1, var3, var4);
- }
-
- private int AsyncRun(String var1, JavaScript var2, Object var3, int var4, boolean var5) {
- JScriptRunAsync var6 = new JScriptRunAsync(this, var1, var2, var3, var4, var5);
- return var6 == null ? -9 : 0;
- }
-
- public void onEvent(String var1, JavaScript var2) {
- this.RunCodeWithMyThis(var1, var2, (SJCallByReference_String)null, (SJCallByReference_int)null, (SJCallByReference_boolean)null, false);
- }
-
- private static String SaveSpecialChars(String var0) {
- String var1 = "";
- if (var0 != null) {
- if (var0.indexOf(92) == -1) {
- return var0;
- }
-
- int var2 = var0.length();
-
- for(int var4 = 0; var4 < var2; ++var4) {
- char var3 = var0.charAt(var4);
- if (var3 == '\\') {
- var1 = var1 + "\\\\";
- } else {
- var1 = var1 + var3;
- }
- }
- }
-
- return var1;
- }
-
- protected native JSbxObject GetObject(String var1);
-
- protected native JSbxObject GetObject_Index(int var1);
-
- protected static Object convertProperty2Object(JSbxProperty var0) {
- Object var1 = null;
- if (var0 != null) {
- JSbxValue var2 = new JSbxValue();
-
- try {
- var0.Get(var2);
- } catch (Exception var3) {
- }
-
- var1 = JSbxValue.convertJScript2JSObject(var2);
- }
-
- return var1;
- }
-
- public Object getMember(String var1) {
- JScriptManager var2 = this.aLifeConnectManager;
- if (var2 == null) {
- return null;
- } else {
- JScriptRunAsync var3 = new JScriptRunAsync(this, var2.GetJavaScriptObj());
- var3.WaitForLiveConnectReady();
- JScriptManager.AddRelation(var2);
- Object var4 = null;
- boolean var5 = false;
- JSbxProperty var6 = this.Get(var1, var5);
- var4 = convertProperty2Object(var6);
- JScriptManager.RemoveRelation(var2);
- var3.NotifyLiveConnectDone();
- return var4;
- }
- }
-
- public Object getSlot(int var1) {
- JScriptManager var2 = this.aLifeConnectManager;
- if (var2 == null) {
- return null;
- } else {
- JScriptRunAsync var3 = new JScriptRunAsync(this, var2.GetJavaScriptObj());
- var3.WaitForLiveConnectReady();
- JScriptManager.AddRelation(var2);
- boolean var4 = false;
- JSbxProperty var5 = this.Get(var1, var4);
- Object var6 = convertProperty2Object(var5);
- JScriptManager.RemoveRelation(var2);
- var3.NotifyLiveConnectDone();
- return var6;
- }
- }
-
- public void setMember(String var1, Object var2) {
- JScriptManager var3 = this.aLifeConnectManager;
- if (var3 != null) {
- JScriptRunAsync var4 = new JScriptRunAsync(this, var3.GetJavaScriptObj());
- var4.WaitForLiveConnectReady();
- boolean var5 = true;
- JSbxProperty var6 = this.Get(var1, var5);
- JScriptManager.AddRelation(var3);
-
- try {
- JSbxValue var7 = JSbxValue.convertJSObject2JScript(var2, var3);
- var6.Put(var7);
- } catch (Exception var8) {
- }
-
- JScriptManager.RemoveRelation(var3);
- var4.NotifyLiveConnectDone();
- }
- }
-
- public void setSlot(int var1, Object var2) {
- JScriptManager var3 = this.aLifeConnectManager;
- if (var3 != null) {
- JScriptRunAsync var4 = new JScriptRunAsync(this, var3.GetJavaScriptObj());
- var4.WaitForLiveConnectReady();
- JScriptManager.AddRelation(var3);
- boolean var5 = true;
- JSbxProperty var6 = this.Get(var1, var5);
-
- try {
- JSbxValue var7 = JSbxValue.convertJSObject2JScript(var2, var3);
- var6.Put(var7);
- } catch (Exception var8) {
- }
-
- JScriptManager.RemoveRelation(var3);
- var4.NotifyLiveConnectDone();
- }
- }
-
- public void removeMember(String var1) {
- JScriptManager var2 = this.aLifeConnectManager;
- if (var2 != null) {
- JScriptRunAsync var3 = new JScriptRunAsync(this, var2.GetJavaScriptObj());
- var3.WaitForLiveConnectReady();
- this.RemoveProperty(var1);
- var3.NotifyLiveConnectDone();
- }
- }
-
- public Object call(String var1, Object[] var2) {
- JSbxValue var3 = null;
- boolean var4 = false;
- JSbxProperty var5 = this.Get(var1, var4);
- if (var5 == null) {
- return null;
- } else {
- JScriptManager var6 = this.aLifeConnectManager;
- if (var6 == null) {
- return null;
- } else {
- try {
- int var7 = var2.length;
- JSbxVector var8 = new JSbxVector(var7);
-
- for(int var9 = 0; var9 < var7; ++var9) {
- JSbxValue var10 = JSbxValue.convertJSObject2JScript(var2[var9], var6);
- var8.Put(var9, var10);
- }
-
- JScriptRunAsync var13 = new JScriptRunAsync(this, var5, var8, var6.GetJavaScriptObj());
- this.WaitForCallback(var13);
- if (this.bEvalCallbackDone) {
- JScriptRuntimeInstance var11 = var13.aRP.aRTI;
- if (var11 != null) {
- var3 = var11.GetLastExpression();
- }
- }
- } catch (Throwable var12) {
- }
-
- return var3 == null ? null : JSbxValue.convertJScript2JSObject(var3);
- }
- }
- }
-
- public void WaitForCallback(JScriptRunAsync var1) {
- synchronized(var1){}
-
- try {
- var1.SetEvalCallbackFlag(false);
-
- try {
- while(!var1.GetEvalCallbackFlag()) {
- var1.wait();
- }
- } catch (InterruptedException var5) {
- }
- } catch (Throwable var6) {
- throw var6;
- }
-
- }
-
- public void NotifyCallback(JScriptRunAsync var1) {
- synchronized(var1){}
-
- try {
- var1.SetEvalCallbackFlag(true);
- var1.notifyAll();
- } catch (Throwable var4) {
- throw var4;
- }
-
- }
-
- public Object eval(String var1) {
- JSbxValue var2 = null;
- JScriptManager var3 = this.aLifeConnectManager;
- if (var3 == null) {
- return null;
- } else {
- var1 = "eval( \"" + var1 + "\")";
- JScriptRunAsync var4 = new JScriptRunAsync(this, var1, var3.GetJavaScriptObj(), this);
- this.WaitForCallback(var4);
- if (this.bEvalCallbackDone) {
- JScriptRuntimeInstance var5 = var4.aRP.aRTI;
- if (var5 != null) {
- var2 = var5.GetLastExpression();
- }
- }
-
- return JSbxValue.convertJScript2JSObject(var2);
- }
- }
-
- public Object valueOf() {
- JScriptManager var1 = this.aLifeConnectManager;
- if (var1 == null) {
- return null;
- } else {
- JScriptRunAsync var2 = new JScriptRunAsync(this, var1.GetJavaScriptObj());
- var2.WaitForLiveConnectReady();
- JScriptManager.AddRelation(var1);
- JSbxValue var3 = this.JS_valueOf();
- Object var4 = JSbxValue.convertJScript2JSObject(var3);
- JScriptManager.RemoveRelation(var1);
- var2.NotifyLiveConnectDone();
- return var4;
- }
- }
-
- public void Dump(PrintStream var1) throws JSbxException {
- this.Dump(var1, 0, -1);
- }
-
- public void Dump(PrintStream var1, int var2, int var3) throws JSbxException {
- String var4 = JSbxBase.GetTabStr(var2);
- var1.println(var4 + "Object");
- var1.println(var4 + "{");
- var1.println(var4 + " Name-Array");
- var1.println(var4 + " {");
- if (this.aNameArray != null) {
- this.aNameArray.Dump(var1, var2 + 1, var3);
- }
-
- var1.println(var4 + " }");
- var1.println(var4 + " Index-Array");
- var1.println(var4 + " {");
- if (this.aIndexArray != null) {
- this.aIndexArray.Dump(var1, var2 + 1, var3);
- }
-
- var1.println(var4 + " }");
- var1.println(var4 + "}");
- }
-
- public JSbxNameArray DEBUG_GetNameArray() {
- return this.GetNameArray();
- }
-
- public JSbxIndexArray DEBUG_GetIndexArray() {
- return this.GetIndexArray();
- }
-
- public JSbxStack DEBUG_GetSearchStack() {
- return this.GetSearchStack();
- }
- }
-