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 () {
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",
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;
21 throw new InternalError ("unknown state");
23 }, "jssun.java2d.StateTrackable.State");
24 Clazz.makeConstructor (c$,
26 this.theState = state;
27 }, "jssun.java2d.StateTrackable.State");
28 Clazz.overrideMethod (c$, "getState",
32 Clazz.overrideMethod (c$, "getStateTracker",
34 var st = this.theTracker;
36 switch (this.theState) {
37 case jssun.java2d.StateTrackable.State.IMMUTABLE:
38 st = jssun.java2d.StateTracker.ALWAYS_CURRENT;
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));
43 case jssun.java2d.StateTrackable.State.DYNAMIC:
44 case jssun.java2d.StateTrackable.State.UNTRACKABLE:
45 st = jssun.java2d.StateTracker.NEVER_CURRENT;
51 Clazz.defineMethod (c$, "setImmutable",
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;
58 Clazz.defineMethod (c$, "setUntrackable",
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;
65 Clazz.defineMethod (c$, "addDynamicAgent",
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;
74 Clazz.defineMethod (c$, "removeDynamicAgent",
76 if (--this.numDynamicAgents == 0 && this.theState === jssun.java2d.StateTrackable.State.DYNAMIC) {
77 this.theState = jssun.java2d.StateTrackable.State.STABLE;
78 this.theTracker = null;
80 Clazz.defineMethod (c$, "markDirty",
82 this.theTracker = null;
84 c$.$StateTrackableDelegate$1$ = function () {
86 c$ = Clazz.declareAnonymous (jssun.java2d, "StateTrackableDelegate$1", null, jssun.java2d.StateTracker);
87 Clazz.overrideMethod (c$, "isCurrent",
89 return (this.b$["jssun.java2d.StateTrackableDelegate"].theTracker === this);
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);