1 Clazz.declarePackage ("jssun.java2d");
\r
2 Clazz.load (["jssun.java2d.StateTrackable"], "jssun.java2d.StateTrackableDelegate", ["java.lang.IllegalStateException", "$.InternalError", "jssun.java2d.StateTracker"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.theState = null;
\r
5 this.theTracker = null;
\r
6 this.numDynamicAgents = 0;
\r
7 Clazz.instantialize (this, arguments);
\r
8 }, jssun.java2d, "StateTrackableDelegate", null, jssun.java2d.StateTrackable);
\r
9 c$.createInstance = Clazz.defineMethod (c$, "createInstance",
\r
12 case jssun.java2d.StateTrackable.State.UNTRACKABLE:
\r
13 return jssun.java2d.StateTrackableDelegate.UNTRACKABLE_DELEGATE;
\r
14 case jssun.java2d.StateTrackable.State.STABLE:
\r
15 return new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.STABLE);
\r
16 case jssun.java2d.StateTrackable.State.DYNAMIC:
\r
17 return new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.DYNAMIC);
\r
18 case jssun.java2d.StateTrackable.State.IMMUTABLE:
\r
19 return jssun.java2d.StateTrackableDelegate.IMMUTABLE_DELEGATE;
\r
21 throw new InternalError ("unknown state");
\r
23 }, "jssun.java2d.StateTrackable.State");
\r
24 Clazz.makeConstructor (c$,
\r
26 this.theState = state;
\r
27 }, "jssun.java2d.StateTrackable.State");
\r
28 Clazz.overrideMethod (c$, "getState",
\r
30 return this.theState;
\r
32 Clazz.overrideMethod (c$, "getStateTracker",
\r
34 var st = this.theTracker;
\r
36 switch (this.theState) {
\r
37 case jssun.java2d.StateTrackable.State.IMMUTABLE:
\r
38 st = jssun.java2d.StateTracker.ALWAYS_CURRENT;
\r
40 case jssun.java2d.StateTrackable.State.STABLE:
\r
41 st = ((Clazz.isClassDefined ("jssun.java2d.StateTrackableDelegate$1") ? 0 : jssun.java2d.StateTrackableDelegate.$StateTrackableDelegate$1$ ()), Clazz.innerTypeInstance (jssun.java2d.StateTrackableDelegate$1, this, null));
\r
43 case jssun.java2d.StateTrackable.State.DYNAMIC:
\r
44 case jssun.java2d.StateTrackable.State.UNTRACKABLE:
\r
45 st = jssun.java2d.StateTracker.NEVER_CURRENT;
\r
48 this.theTracker = st;
\r
51 Clazz.defineMethod (c$, "setImmutable",
\r
53 if (this.theState === jssun.java2d.StateTrackable.State.UNTRACKABLE || this.theState === jssun.java2d.StateTrackable.State.DYNAMIC) {
\r
54 throw new IllegalStateException ("UNTRACKABLE or DYNAMIC objects cannot become IMMUTABLE");
\r
55 }this.theState = jssun.java2d.StateTrackable.State.IMMUTABLE;
\r
56 this.theTracker = null;
\r
58 Clazz.defineMethod (c$, "setUntrackable",
\r
60 if (this.theState === jssun.java2d.StateTrackable.State.IMMUTABLE) {
\r
61 throw new IllegalStateException ("IMMUTABLE objects cannot become UNTRACKABLE");
\r
62 }this.theState = jssun.java2d.StateTrackable.State.UNTRACKABLE;
\r
63 this.theTracker = null;
\r
65 Clazz.defineMethod (c$, "addDynamicAgent",
\r
67 if (this.theState === jssun.java2d.StateTrackable.State.IMMUTABLE) {
\r
68 throw new IllegalStateException ("Cannot change state from IMMUTABLE");
\r
69 }++this.numDynamicAgents;
\r
70 if (this.theState === jssun.java2d.StateTrackable.State.STABLE) {
\r
71 this.theState = jssun.java2d.StateTrackable.State.DYNAMIC;
\r
72 this.theTracker = null;
\r
74 Clazz.defineMethod (c$, "removeDynamicAgent",
\r
76 if (--this.numDynamicAgents == 0 && this.theState === jssun.java2d.StateTrackable.State.DYNAMIC) {
\r
77 this.theState = jssun.java2d.StateTrackable.State.STABLE;
\r
78 this.theTracker = null;
\r
80 Clazz.defineMethod (c$, "markDirty",
\r
82 this.theTracker = null;
\r
84 c$.$StateTrackableDelegate$1$ = function () {
\r
85 Clazz.pu$h(self.c$);
\r
86 c$ = Clazz.declareAnonymous (jssun.java2d, "StateTrackableDelegate$1", null, jssun.java2d.StateTracker);
\r
87 Clazz.overrideMethod (c$, "isCurrent",
\r
89 return (this.b$["jssun.java2d.StateTrackableDelegate"].theTracker === this);
\r
93 c$.UNTRACKABLE_DELEGATE = c$.prototype.UNTRACKABLE_DELEGATE = new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.UNTRACKABLE);
\r
94 c$.IMMUTABLE_DELEGATE = c$.prototype.IMMUTABLE_DELEGATE = new jssun.java2d.StateTrackableDelegate (jssun.java2d.StateTrackable.State.IMMUTABLE);
\r