86e6f03f891d8fd6864b59b8be785714b43844b0
[jalviewjs.git] / site / swingjs / j2s / jssun / java2d / StateTrackableDelegate.js
1 Clazz.declarePackage ("jssun.java2d");
2 Clazz.load (["jssun.java2d.StateTrackable"], "jssun.java2d.StateTrackableDelegate", ["java.lang.IllegalStateException", "$.InternalError", "jssun.java2d.StateTracker"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.theState = null;
5 this.theTracker = null;
6 this.numDynamicAgents = 0;
7 Clazz.instantialize (this, arguments);
8 }, jssun.java2d, "StateTrackableDelegate", null, jssun.java2d.StateTrackable);
9 c$.createInstance = Clazz.defineMethod (c$, "createInstance", 
10 function (state) {
11 switch (state) {
12 case jssun.java2d.StateTrackable.State.UNTRACKABLE:
13 return jssun.java2d.StateTrackableDelegate.UNTRACKABLE_DELEGATE;
14 case jssun.java2d.StateTrackable.State.STABLE:
15 return  new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.STABLE);
16 case jssun.java2d.StateTrackable.State.DYNAMIC:
17 return  new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.DYNAMIC);
18 case jssun.java2d.StateTrackable.State.IMMUTABLE:
19 return jssun.java2d.StateTrackableDelegate.IMMUTABLE_DELEGATE;
20 default:
21 throw  new InternalError ("unknown state");
22 }
23 }, "jssun.java2d.StateTrackable.State");
24 Clazz.makeConstructor (c$, 
25  function (state) {
26 this.theState = state;
27 }, "jssun.java2d.StateTrackable.State");
28 Clazz.overrideMethod (c$, "getState", 
29 function () {
30 return this.theState;
31 });
32 Clazz.overrideMethod (c$, "getStateTracker", 
33 function () {
34 var st = this.theTracker;
35 if (st == null) {
36 switch (this.theState) {
37 case jssun.java2d.StateTrackable.State.IMMUTABLE:
38 st = jssun.java2d.StateTracker.ALWAYS_CURRENT;
39 break;
40 case jssun.java2d.StateTrackable.State.STABLE:
41 st = ((Clazz.isClassDefined ("jssun.java2d.StateTrackableDelegate$1") ? 0 : jssun.java2d.StateTrackableDelegate.$StateTrackableDelegate$1$ ()), Clazz.innerTypeInstance (jssun.java2d.StateTrackableDelegate$1, this, null));
42 break;
43 case jssun.java2d.StateTrackable.State.DYNAMIC:
44 case jssun.java2d.StateTrackable.State.UNTRACKABLE:
45 st = jssun.java2d.StateTracker.NEVER_CURRENT;
46 break;
47 }
48 this.theTracker = st;
49 }return st;
50 });
51 Clazz.defineMethod (c$, "setImmutable", 
52 function () {
53 if (this.theState === jssun.java2d.StateTrackable.State.UNTRACKABLE || this.theState === jssun.java2d.StateTrackable.State.DYNAMIC) {
54 throw  new IllegalStateException ("UNTRACKABLE or DYNAMIC objects cannot become IMMUTABLE");
55 }this.theState = jssun.java2d.StateTrackable.State.IMMUTABLE;
56 this.theTracker = null;
57 });
58 Clazz.defineMethod (c$, "setUntrackable", 
59 function () {
60 if (this.theState === jssun.java2d.StateTrackable.State.IMMUTABLE) {
61 throw  new IllegalStateException ("IMMUTABLE objects cannot become UNTRACKABLE");
62 }this.theState = jssun.java2d.StateTrackable.State.UNTRACKABLE;
63 this.theTracker = null;
64 });
65 Clazz.defineMethod (c$, "addDynamicAgent", 
66 function () {
67 if (this.theState === jssun.java2d.StateTrackable.State.IMMUTABLE) {
68 throw  new IllegalStateException ("Cannot change state from IMMUTABLE");
69 }++this.numDynamicAgents;
70 if (this.theState === jssun.java2d.StateTrackable.State.STABLE) {
71 this.theState = jssun.java2d.StateTrackable.State.DYNAMIC;
72 this.theTracker = null;
73 }});
74 Clazz.defineMethod (c$, "removeDynamicAgent", 
75 function () {
76 if (--this.numDynamicAgents == 0 && this.theState === jssun.java2d.StateTrackable.State.DYNAMIC) {
77 this.theState = jssun.java2d.StateTrackable.State.STABLE;
78 this.theTracker = null;
79 }});
80 Clazz.defineMethod (c$, "markDirty", 
81 function () {
82 this.theTracker = null;
83 });
84 c$.$StateTrackableDelegate$1$ = function () {
85 Clazz.pu$h(self.c$);
86 c$ = Clazz.declareAnonymous (jssun.java2d, "StateTrackableDelegate$1", null, jssun.java2d.StateTracker);
87 Clazz.overrideMethod (c$, "isCurrent", 
88 function () {
89 return (this.b$["jssun.java2d.StateTrackableDelegate"].theTracker === this);
90 });
91 c$ = Clazz.p0p ();
92 };
93 c$.UNTRACKABLE_DELEGATE = c$.prototype.UNTRACKABLE_DELEGATE =  new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.UNTRACKABLE);
94 c$.IMMUTABLE_DELEGATE = c$.prototype.IMMUTABLE_DELEGATE =  new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.IMMUTABLE);
95 });