summaryrefslogtreecommitdiff
path: root/NET/worlds/scape/CallbackPropertyOperator.java
diff options
context:
space:
mode:
Diffstat (limited to 'NET/worlds/scape/CallbackPropertyOperator.java')
-rw-r--r--NET/worlds/scape/CallbackPropertyOperator.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/NET/worlds/scape/CallbackPropertyOperator.java b/NET/worlds/scape/CallbackPropertyOperator.java
new file mode 100644
index 0000000..87395fd
--- /dev/null
+++ b/NET/worlds/scape/CallbackPropertyOperator.java
@@ -0,0 +1,64 @@
+/* */ package NET.worlds.scape;
+/* */
+/* */ import NET.worlds.console.Main;
+/* */ import NET.worlds.console.MainCallback;
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public class CallbackPropertyOperator
+/* */ implements MainCallback
+/* */ {
+/* */ private Property prop;
+/* */ private int func;
+/* */ private Object value;
+/* */ private boolean done;
+/* */
+/* */ CallbackPropertyOperator(Property prop, int func, Object value)
+/* */ {
+/* 30 */ this.prop = prop;
+/* 31 */ this.func = func;
+/* 32 */ this.value = value;
+/* 33 */ assert (!Main.isMainThread());
+/* 34 */ Main.register(this);
+/* */ }
+/* */
+/* */ synchronized Object getValue()
+/* */ {
+/* 39 */ while (!this.done)
+/* */ try {
+/* 41 */ wait();
+/* */ } catch (InterruptedException localInterruptedException) {}
+/* 43 */ return this.value;
+/* */ }
+/* */
+/* */ public synchronized void mainCallback()
+/* */ {
+/* 48 */ modify();
+/* 49 */ Main.unregister(this);
+/* 50 */ notify();
+/* */ }
+/* */
+/* */ private void modify()
+/* */ {
+/* 55 */ this.value = this.prop.safeOperate(this.func, this.value);
+/* 56 */ this.done = true;
+/* */ }
+/* */ }
+
+
+/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\CallbackPropertyOperator.class
+ * Java compiler version: 6 (50.0)
+ * JD-Core Version: 0.7.1
+ */ \ No newline at end of file