Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / jssun / font / AttributeValues.js
index fb53251..2054161 100644 (file)
-Clazz.declarePackage ("jssun.font");\r
-Clazz.load (["jssun.font.EAttribute"], "jssun.font.AttributeValues", ["java.lang.Boolean", "$.Float", "$.InternalError", "$.Number", "$.StringBuilder", "java.util.HashMap", "java.awt.font.TextAttribute", "java.awt.geom.AffineTransform", "$.Point2D", "jssun.font.AttributeMap"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.defined = 0;\r
-this.nondefault = 0;\r
-this.family = "Default";\r
-this.weight = 1;\r
-this.width = 1;\r
-this.posture = 0;\r
-this.size = 12;\r
-this.tracking = 0;\r
-this.transform = null;\r
-this.foreground = null;\r
-this.background = null;\r
-this.justification = 1;\r
-this.imHighlight = null;\r
-this.font = null;\r
-this.imUnderline = -1;\r
-this.superscript = 0;\r
-this.underline = -1;\r
-this.runDirection = -2;\r
-this.bidiEmbedding = 0;\r
-this.kerning = 0;\r
-this.ligatures = 0;\r
-this.strikethrough = false;\r
-this.swapColors = false;\r
-this.baselineTransform = null;\r
-this.charTransform = null;\r
-Clazz.instantialize (this, arguments);\r
-}, jssun.font, "AttributeValues", null, Cloneable);\r
-Clazz.defineMethod (c$, "getFamily", \r
-function () {\r
-return this.family;\r
-});\r
-Clazz.defineMethod (c$, "setFamily", \r
-function (f) {\r
-this.family = f;\r
-this.update (jssun.font.EAttribute.EFAMILY);\r
-}, "~S");\r
-Clazz.defineMethod (c$, "getWeight", \r
-function () {\r
-return this.weight;\r
-});\r
-Clazz.defineMethod (c$, "setWeight", \r
-function (f) {\r
-this.weight = f;\r
-this.update (jssun.font.EAttribute.EWEIGHT);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getWidth", \r
-function () {\r
-return this.width;\r
-});\r
-Clazz.defineMethod (c$, "setWidth", \r
-function (f) {\r
-this.width = f;\r
-this.update (jssun.font.EAttribute.EWIDTH);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getPosture", \r
-function () {\r
-return this.posture;\r
-});\r
-Clazz.defineMethod (c$, "setPosture", \r
-function (f) {\r
-this.posture = f;\r
-this.update (jssun.font.EAttribute.EPOSTURE);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getSize", \r
-function () {\r
-return this.size;\r
-});\r
-Clazz.defineMethod (c$, "setSize", \r
-function (f) {\r
-this.size = f;\r
-this.update (jssun.font.EAttribute.ESIZE);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getTransform", \r
-function () {\r
-return this.transform;\r
-});\r
-Clazz.defineMethod (c$, "setTransform", \r
-function (f) {\r
-this.transform = (f == null || f.isIdentity ()) ? jssun.font.AttributeValues.DEFAULT.transform :  new java.awt.geom.AffineTransform (f);\r
-this.updateDerivedTransforms ();\r
-this.update (jssun.font.EAttribute.ETRANSFORM);\r
-}, "java.awt.geom.AffineTransform");\r
-Clazz.defineMethod (c$, "getSuperscript", \r
-function () {\r
-return this.superscript;\r
-});\r
-Clazz.defineMethod (c$, "setSuperscript", \r
-function (f) {\r
-this.superscript = f;\r
-this.update (jssun.font.EAttribute.ESUPERSCRIPT);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getFont", \r
-function () {\r
-return this.font;\r
-});\r
-Clazz.defineMethod (c$, "setFont", \r
-function (f) {\r
-this.font = f;\r
-this.update (jssun.font.EAttribute.EFONT);\r
-}, "java.awt.Font");\r
-Clazz.defineMethod (c$, "getForeground", \r
-function () {\r
-return this.foreground;\r
-});\r
-Clazz.defineMethod (c$, "setForeground", \r
-function (f) {\r
-this.foreground = f;\r
-this.update (jssun.font.EAttribute.EFOREGROUND);\r
-}, "java.awt.Paint");\r
-Clazz.defineMethod (c$, "getBackground", \r
-function () {\r
-return this.background;\r
-});\r
-Clazz.defineMethod (c$, "setBackground", \r
-function (f) {\r
-this.background = f;\r
-this.update (jssun.font.EAttribute.EBACKGROUND);\r
-}, "java.awt.Paint");\r
-Clazz.defineMethod (c$, "getUnderline", \r
-function () {\r
-return this.underline;\r
-});\r
-Clazz.defineMethod (c$, "setUnderline", \r
-function (f) {\r
-this.underline = f;\r
-this.update (jssun.font.EAttribute.EUNDERLINE);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getStrikethrough", \r
-function () {\r
-return this.strikethrough;\r
-});\r
-Clazz.defineMethod (c$, "setStrikethrough", \r
-function (f) {\r
-this.strikethrough = f;\r
-this.update (jssun.font.EAttribute.ESTRIKETHROUGH);\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getRunDirection", \r
-function () {\r
-return this.runDirection;\r
-});\r
-Clazz.defineMethod (c$, "setRunDirection", \r
-function (f) {\r
-this.runDirection = f;\r
-this.update (jssun.font.EAttribute.ERUN_DIRECTION);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getBidiEmbedding", \r
-function () {\r
-return this.bidiEmbedding;\r
-});\r
-Clazz.defineMethod (c$, "setBidiEmbedding", \r
-function (f) {\r
-this.bidiEmbedding = f;\r
-this.update (jssun.font.EAttribute.EBIDI_EMBEDDING);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getJustification", \r
-function () {\r
-return this.justification;\r
-});\r
-Clazz.defineMethod (c$, "setJustification", \r
-function (f) {\r
-this.justification = f;\r
-this.update (jssun.font.EAttribute.EJUSTIFICATION);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getInputMethodHighlight", \r
-function () {\r
-return this.imHighlight;\r
-});\r
-Clazz.defineMethod (c$, "setInputMethodHighlight", \r
-function (f) {\r
-this.imHighlight = f;\r
-this.update (jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT);\r
-}, "java.text.Annotation");\r
-Clazz.defineMethod (c$, "getInputMethodUnderline", \r
-function () {\r
-return this.imUnderline;\r
-});\r
-Clazz.defineMethod (c$, "setInputMethodUnderline", \r
-function (f) {\r
-this.imUnderline = f;\r
-this.update (jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getSwapColors", \r
-function () {\r
-return this.swapColors;\r
-});\r
-Clazz.defineMethod (c$, "setSwapColors", \r
-function (f) {\r
-this.swapColors = f;\r
-this.update (jssun.font.EAttribute.ESWAP_COLORS);\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getKerning", \r
-function () {\r
-return this.kerning;\r
-});\r
-Clazz.defineMethod (c$, "setKerning", \r
-function (f) {\r
-this.kerning = f;\r
-this.update (jssun.font.EAttribute.EKERNING);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getTracking", \r
-function () {\r
-return this.tracking;\r
-});\r
-Clazz.defineMethod (c$, "setTracking", \r
-function (f) {\r
-this.tracking = Clazz.floatToByte (f);\r
-this.update (jssun.font.EAttribute.ETRACKING);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getLigatures", \r
-function () {\r
-return this.ligatures;\r
-});\r
-Clazz.defineMethod (c$, "setLigatures", \r
-function (f) {\r
-this.ligatures = f;\r
-this.update (jssun.font.EAttribute.ELIGATURES);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getBaselineTransform", \r
-function () {\r
-return this.baselineTransform;\r
-});\r
-Clazz.defineMethod (c$, "getCharTransform", \r
-function () {\r
-return this.charTransform;\r
-});\r
-c$.getMask = Clazz.defineMethod (c$, "getMask", \r
-function (att) {\r
-return att.mask;\r
-}, "jssun.font.EAttribute");\r
-c$.getMask = Clazz.defineMethod (c$, "getMask", \r
-function (atts) {\r
-var mask = 0;\r
-for (var a, $a = 0, $$a = atts; $a < $$a.length && ((a = $$a[$a]) || true); $a++) {\r
-mask |= a.mask;\r
-}\r
-return mask;\r
-}, "~A");\r
-Clazz.defineMethod (c$, "unsetDefault", \r
-function () {\r
-this.defined &= this.nondefault;\r
-});\r
-Clazz.defineMethod (c$, "defineAll", \r
-function (mask) {\r
-this.defined |= mask;\r
-if ((this.defined & jssun.font.EAttribute.EBASELINE_TRANSFORM.mask) != 0) {\r
-throw  new InternalError ("can't define derived attribute");\r
-}}, "~N");\r
-Clazz.defineMethod (c$, "allDefined", \r
-function (mask) {\r
-return (this.defined & mask) == mask;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "anyDefined", \r
-function (mask) {\r
-return (this.defined & mask) != 0;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "anyNonDefault", \r
-function (mask) {\r
-return (this.nondefault & mask) != 0;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "isDefined", \r
-function (a) {\r
-return (this.defined & a.mask) != 0;\r
-}, "jssun.font.EAttribute");\r
-Clazz.defineMethod (c$, "isNonDefault", \r
-function (a) {\r
-return (this.nondefault & a.mask) != 0;\r
-}, "jssun.font.EAttribute");\r
-Clazz.defineMethod (c$, "setDefault", \r
-function (a) {\r
-if (a.att == null) {\r
-throw  new InternalError ("can't set default derived attribute: " + a);\r
-}this.i_set (a, jssun.font.AttributeValues.DEFAULT);\r
-this.defined |= a.mask;\r
-this.nondefault &= ~a.mask;\r
-}, "jssun.font.EAttribute");\r
-Clazz.defineMethod (c$, "unset", \r
-function (a) {\r
-if (a.att == null) {\r
-throw  new InternalError ("can't unset derived attribute: " + a);\r
-}this.i_set (a, jssun.font.AttributeValues.DEFAULT);\r
-this.defined &= ~a.mask;\r
-this.nondefault &= ~a.mask;\r
-}, "jssun.font.EAttribute");\r
-Clazz.defineMethod (c$, "set", \r
-function (a, src) {\r
-if (a.att == null) {\r
-throw  new InternalError ("can't set derived attribute: " + a);\r
-}if (src == null || src === jssun.font.AttributeValues.DEFAULT) {\r
-this.setDefault (a);\r
-} else {\r
-if ((src.defined & a.mask) != 0) {\r
-this.i_set (a, src);\r
-this.update (a);\r
-}}}, "jssun.font.EAttribute,jssun.font.AttributeValues");\r
-Clazz.defineMethod (c$, "set", \r
-function (a, o) {\r
-if (a.att == null) {\r
-throw  new InternalError ("can't set derived attribute: " + a);\r
-}if (o != null) {\r
-try {\r
-this.i_set (a, o);\r
-this.update (a);\r
-return;\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, Exception)) {\r
-} else {\r
-throw e;\r
-}\r
-}\r
-}this.setDefault (a);\r
-}, "jssun.font.EAttribute,~O");\r
-Clazz.defineMethod (c$, "get", \r
-function (a) {\r
-if (a.att == null) {\r
-throw  new InternalError ("can't get derived attribute: " + a);\r
-}if ((this.nondefault & a.mask) != 0) {\r
-return this.i_get (a);\r
-}return null;\r
-}, "jssun.font.EAttribute");\r
-Clazz.defineMethod (c$, "merge", \r
-function (map) {\r
-return this.merge (map, jssun.font.AttributeValues.MASK_ALL);\r
-}, "java.util.Map");\r
-Clazz.defineMethod (c$, "merge", \r
-function (map, mask) {\r
-if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {\r
-this.merge ((map).getValues (), mask);\r
-} else if (map != null && !map.isEmpty ()) {\r
-for (var e, $e = map.entrySet ().iterator (); $e.hasNext () && ((e = $e.next ()) || true);) {\r
-var ea = jssun.font.EAttribute.forAttribute (e.getKey ());\r
-if (ea != null && (mask & ea.mask) != 0) {\r
-this.set (ea, e.getValue ());\r
-}}\r
-}return this;\r
-}, "java.util.Map,~N");\r
-Clazz.defineMethod (c$, "merge", \r
-function (src) {\r
-return this.merge (src, jssun.font.AttributeValues.MASK_ALL);\r
-}, "jssun.font.AttributeValues");\r
-Clazz.defineMethod (c$, "merge", \r
-function (src, mask) {\r
-var m = mask & src.defined;\r
-for (var ea, $ea = 0, $$ea = jssun.font.EAttribute.atts; $ea < $$ea.length && ((ea = $$ea[$ea]) || true); $ea++) {\r
-if (m == 0) {\r
-break;\r
-}if ((m & ea.mask) != 0) {\r
-m &= ~ea.mask;\r
-this.i_set (ea, src);\r
-this.update (ea);\r
-}}\r
-return this;\r
-}, "jssun.font.AttributeValues,~N");\r
-c$.fromMap = Clazz.defineMethod (c$, "fromMap", \r
-function (map) {\r
-return jssun.font.AttributeValues.fromMap (map, jssun.font.AttributeValues.MASK_ALL);\r
-}, "java.util.Map");\r
-c$.fromMap = Clazz.defineMethod (c$, "fromMap", \r
-function (map, mask) {\r
-return  new jssun.font.AttributeValues ().merge (map, mask);\r
-}, "java.util.Map,~N");\r
-Clazz.defineMethod (c$, "toMap", \r
-function (fill) {\r
-if (fill == null) {\r
-fill =  new java.util.HashMap ();\r
-}for (var m = this.defined, i = 0; m != 0; ++i) {\r
-var ea = jssun.font.EAttribute.atts[i];\r
-if ((m & ea.mask) != 0) {\r
-m &= ~ea.mask;\r
-fill.put (ea.att, this.get (ea));\r
-}}\r
-return fill;\r
-}, "java.util.Map");\r
-c$.is16Hashtable = Clazz.defineMethod (c$, "is16Hashtable", \r
-function (ht) {\r
-return ht.containsKey ("sun.font.attributevalues.defined_key");\r
-}, "java.util.Hashtable");\r
-c$.fromSerializableHashtable = Clazz.defineMethod (c$, "fromSerializableHashtable", \r
-function (ht) {\r
-var result =  new jssun.font.AttributeValues ();\r
-if (ht != null && !ht.isEmpty ()) {\r
-for (var e, $e = ht.entrySet ().iterator (); $e.hasNext () && ((e = $e.next ()) || true);) {\r
-var key = e.getKey ();\r
-var val = e.getValue ();\r
-if (key.equals ("sun.font.attributevalues.defined_key")) {\r
-result.defineAll ((val).intValue ());\r
-} else {\r
-try {\r
-var ea = jssun.font.EAttribute.forAttribute (key);\r
-if (ea != null) {\r
-result.set (ea, val);\r
-}} catch (ex) {\r
-if (Clazz.exceptionOf (ex, ClassCastException)) {\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-}}\r
-}return result;\r
-}, "java.util.Hashtable");\r
-Clazz.overrideMethod (c$, "hashCode", \r
-function () {\r
-return this.defined << 8 ^ this.nondefault;\r
-});\r
-Clazz.defineMethod (c$, "equals", \r
-function (rhs) {\r
-try {\r
-return this.equals (rhs);\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, ClassCastException)) {\r
-} else {\r
-throw e;\r
-}\r
-}\r
-return false;\r
-}, "~O");\r
-Clazz.defineMethod (c$, "equals", \r
-function (rhs) {\r
-if (rhs == null) return false;\r
-if (rhs === this) return true;\r
-return this.defined == rhs.defined && this.nondefault == rhs.nondefault && this.underline == rhs.underline && this.strikethrough == rhs.strikethrough && this.superscript == rhs.superscript && this.width == rhs.width && this.kerning == rhs.kerning && this.tracking == rhs.tracking && this.ligatures == rhs.ligatures && this.runDirection == rhs.runDirection && this.bidiEmbedding == rhs.bidiEmbedding && this.swapColors == rhs.swapColors && jssun.font.AttributeValues.equals (this.transform, rhs.transform) && jssun.font.AttributeValues.equals (new Float (this.justification), new Float (rhs.justification)) && this.size == rhs.size && this.weight == rhs.weight && this.posture == rhs.posture && jssun.font.AttributeValues.equals (this.family, rhs.family) && jssun.font.AttributeValues.equals (this.font, rhs.font) && this.imUnderline == rhs.imUnderline && jssun.font.AttributeValues.equals (this.imHighlight, rhs.imHighlight);\r
-}, "jssun.font.AttributeValues");\r
-Clazz.defineMethod (c$, "clone", \r
-function () {\r
-try {\r
-var result = Clazz.superCall (this, jssun.font.AttributeValues, "clone", []);\r
-if (this.transform != null) {\r
-result.transform =  new java.awt.geom.AffineTransform (this.transform);\r
-result.updateDerivedTransforms ();\r
-}return result;\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, CloneNotSupportedException)) {\r
-return null;\r
-} else {\r
-throw e;\r
-}\r
-}\r
-});\r
-Clazz.overrideMethod (c$, "toString", \r
-function () {\r
-var b =  new StringBuilder ();\r
-b.append ('{');\r
-for (var m = this.defined, i = 0; m != 0; ++i) {\r
-var ea = jssun.font.EAttribute.atts[i];\r
-if ((m & ea.mask) != 0) {\r
-m &= ~ea.mask;\r
-if (b.length () > 1) {\r
-b.append (", ");\r
-}b.append (ea);\r
-b.append ('=');\r
-switch (ea) {\r
-case jssun.font.EAttribute.EFAMILY:\r
-b.append ('"');\r
-b.append (this.family);\r
-b.append ('"');\r
-break;\r
-case jssun.font.EAttribute.EWEIGHT:\r
-b.append (this.weight);\r
-break;\r
-case jssun.font.EAttribute.EWIDTH:\r
-b.append (this.width);\r
-break;\r
-case jssun.font.EAttribute.EPOSTURE:\r
-b.append (this.posture);\r
-break;\r
-case jssun.font.EAttribute.ESIZE:\r
-b.append (this.size);\r
-break;\r
-case jssun.font.EAttribute.ETRANSFORM:\r
-b.append (this.transform);\r
-break;\r
-case jssun.font.EAttribute.ESUPERSCRIPT:\r
-b.append ("" + this.superscript);\r
-break;\r
-case jssun.font.EAttribute.EFONT:\r
-b.append (this.font);\r
-break;\r
-case jssun.font.EAttribute.EUNDERLINE:\r
-b.append ("" + this.underline);\r
-break;\r
-case jssun.font.EAttribute.ESTRIKETHROUGH:\r
-b.append (this.strikethrough);\r
-break;\r
-case jssun.font.EAttribute.ERUN_DIRECTION:\r
-b.append ("" + this.runDirection);\r
-break;\r
-case jssun.font.EAttribute.EBIDI_EMBEDDING:\r
-b.append ("" + this.bidiEmbedding);\r
-break;\r
-case jssun.font.EAttribute.EJUSTIFICATION:\r
-b.append (this.justification);\r
-break;\r
-case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:\r
-b.append (this.imHighlight);\r
-break;\r
-case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:\r
-b.append ("" + this.imUnderline);\r
-break;\r
-case jssun.font.EAttribute.ESWAP_COLORS:\r
-b.append (this.swapColors);\r
-break;\r
-case jssun.font.EAttribute.EKERNING:\r
-b.append (this.kerning);\r
-break;\r
-case jssun.font.EAttribute.ELIGATURES:\r
-b.append (this.ligatures);\r
-break;\r
-case jssun.font.EAttribute.ETRACKING:\r
-b.append (this.tracking);\r
-break;\r
-default:\r
-throw  new InternalError ();\r
-}\r
-if ((this.nondefault & ea.mask) == 0) {\r
-b.append ('*');\r
-}}}\r
-b.append ("[btx=" + this.baselineTransform + ", ctx=" + this.charTransform + "]");\r
-b.append ('}');\r
-return b.toString ();\r
-});\r
-c$.equals = Clazz.defineMethod (c$, "equals", \r
- function (lhs, rhs) {\r
-return lhs == null ? rhs == null : lhs.equals (rhs);\r
-}, "~O,~O");\r
-Clazz.defineMethod (c$, "update", \r
- function (a) {\r
-this.defined |= a.mask;\r
-if (this.i_validate (a)) {\r
-if (this.i_equals (a, jssun.font.AttributeValues.DEFAULT)) {\r
-this.nondefault &= ~a.mask;\r
-} else {\r
-this.nondefault |= a.mask;\r
-}} else {\r
-this.setDefault (a);\r
-}}, "jssun.font.EAttribute");\r
-Clazz.defineMethod (c$, "i_set", \r
- function (a, src) {\r
-switch (a) {\r
-case jssun.font.EAttribute.EFAMILY:\r
-this.family = src.family;\r
-break;\r
-case jssun.font.EAttribute.EWEIGHT:\r
-this.weight = src.weight;\r
-break;\r
-case jssun.font.EAttribute.EWIDTH:\r
-this.width = src.width;\r
-break;\r
-case jssun.font.EAttribute.EPOSTURE:\r
-this.posture = src.posture;\r
-break;\r
-case jssun.font.EAttribute.ESIZE:\r
-this.size = src.size;\r
-break;\r
-case jssun.font.EAttribute.ETRANSFORM:\r
-this.transform = src.transform;\r
-this.updateDerivedTransforms ();\r
-break;\r
-case jssun.font.EAttribute.ESUPERSCRIPT:\r
-this.superscript = src.superscript;\r
-break;\r
-case jssun.font.EAttribute.EFONT:\r
-this.font = src.font;\r
-break;\r
-case jssun.font.EAttribute.EUNDERLINE:\r
-this.underline = src.underline;\r
-break;\r
-case jssun.font.EAttribute.ESTRIKETHROUGH:\r
-this.strikethrough = src.strikethrough;\r
-break;\r
-case jssun.font.EAttribute.ERUN_DIRECTION:\r
-this.runDirection = src.runDirection;\r
-break;\r
-case jssun.font.EAttribute.EBIDI_EMBEDDING:\r
-this.bidiEmbedding = src.bidiEmbedding;\r
-break;\r
-case jssun.font.EAttribute.EJUSTIFICATION:\r
-this.justification = src.justification;\r
-break;\r
-case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:\r
-this.imHighlight = src.imHighlight;\r
-break;\r
-case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:\r
-this.imUnderline = src.imUnderline;\r
-break;\r
-case jssun.font.EAttribute.ESWAP_COLORS:\r
-this.swapColors = src.swapColors;\r
-break;\r
-case jssun.font.EAttribute.EKERNING:\r
-this.kerning = src.kerning;\r
-break;\r
-case jssun.font.EAttribute.ELIGATURES:\r
-this.ligatures = src.ligatures;\r
-break;\r
-case jssun.font.EAttribute.ETRACKING:\r
-this.tracking = src.tracking;\r
-break;\r
-default:\r
-throw  new InternalError ();\r
-}\r
-}, "jssun.font.EAttribute,jssun.font.AttributeValues");\r
-Clazz.defineMethod (c$, "i_equals", \r
- function (a, src) {\r
-switch (a) {\r
-case jssun.font.EAttribute.EFAMILY:\r
-return jssun.font.AttributeValues.equals (this.family, src.family);\r
-case jssun.font.EAttribute.EWEIGHT:\r
-return this.weight == src.weight;\r
-case jssun.font.EAttribute.EWIDTH:\r
-return this.width == src.width;\r
-case jssun.font.EAttribute.EPOSTURE:\r
-return this.posture == src.posture;\r
-case jssun.font.EAttribute.ESIZE:\r
-return this.size == src.size;\r
-case jssun.font.EAttribute.ETRANSFORM:\r
-return jssun.font.AttributeValues.equals (this.transform, src.transform);\r
-case jssun.font.EAttribute.ESUPERSCRIPT:\r
-return this.superscript == src.superscript;\r
-case jssun.font.EAttribute.EFONT:\r
-return jssun.font.AttributeValues.equals (this.font, src.font);\r
-case jssun.font.EAttribute.EUNDERLINE:\r
-return this.underline == src.underline;\r
-case jssun.font.EAttribute.ESTRIKETHROUGH:\r
-return this.strikethrough == src.strikethrough;\r
-case jssun.font.EAttribute.ERUN_DIRECTION:\r
-return this.runDirection == src.runDirection;\r
-case jssun.font.EAttribute.EBIDI_EMBEDDING:\r
-return this.bidiEmbedding == src.bidiEmbedding;\r
-case jssun.font.EAttribute.EJUSTIFICATION:\r
-return this.justification == src.justification;\r
-case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:\r
-return jssun.font.AttributeValues.equals (this.imHighlight, src.imHighlight);\r
-case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:\r
-return this.imUnderline == src.imUnderline;\r
-case jssun.font.EAttribute.ESWAP_COLORS:\r
-return this.swapColors == src.swapColors;\r
-case jssun.font.EAttribute.EKERNING:\r
-return this.kerning == src.kerning;\r
-case jssun.font.EAttribute.ELIGATURES:\r
-return this.ligatures == src.ligatures;\r
-case jssun.font.EAttribute.ETRACKING:\r
-return this.tracking == src.tracking;\r
-default:\r
-throw  new InternalError ();\r
-}\r
-}, "jssun.font.EAttribute,jssun.font.AttributeValues");\r
-Clazz.defineMethod (c$, "i_set", \r
- function (a, o) {\r
-switch (a) {\r
-case jssun.font.EAttribute.EFAMILY:\r
-this.family = (o).trim ();\r
-break;\r
-case jssun.font.EAttribute.EWEIGHT:\r
-this.weight = (o).floatValue ();\r
-break;\r
-case jssun.font.EAttribute.EWIDTH:\r
-this.width = (o).floatValue ();\r
-break;\r
-case jssun.font.EAttribute.EPOSTURE:\r
-this.posture = (o).floatValue ();\r
-break;\r
-case jssun.font.EAttribute.ESIZE:\r
-this.size = (o).floatValue ();\r
-break;\r
-case jssun.font.EAttribute.ESUPERSCRIPT:\r
-this.superscript = (o).intValue ();\r
-break;\r
-case jssun.font.EAttribute.EFONT:\r
-this.font = o;\r
-break;\r
-case jssun.font.EAttribute.EUNDERLINE:\r
-this.underline = (o).intValue ();\r
-break;\r
-case jssun.font.EAttribute.ESTRIKETHROUGH:\r
-this.strikethrough = (o).booleanValue ();\r
-break;\r
-case jssun.font.EAttribute.ERUN_DIRECTION:\r
-{\r
-if (Clazz.instanceOf (o, Boolean)) {\r
-this.runDirection = (java.awt.font.TextAttribute.RUN_DIRECTION_LTR.equals (o) ? 0 : 1);\r
-} else {\r
-this.runDirection = (o).intValue ();\r
-}}break;\r
-case jssun.font.EAttribute.EBIDI_EMBEDDING:\r
-this.bidiEmbedding = (o).intValue ();\r
-break;\r
-case jssun.font.EAttribute.EJUSTIFICATION:\r
-this.justification = (o).floatValue ();\r
-break;\r
-case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:\r
-this.imUnderline = (o).intValue ();\r
-break;\r
-case jssun.font.EAttribute.ESWAP_COLORS:\r
-this.swapColors = (o).booleanValue ();\r
-break;\r
-case jssun.font.EAttribute.EKERNING:\r
-this.kerning = (o).intValue ();\r
-break;\r
-case jssun.font.EAttribute.ELIGATURES:\r
-this.ligatures = (o).intValue ();\r
-break;\r
-case jssun.font.EAttribute.ETRACKING:\r
-this.tracking = (o).floatValue ();\r
-break;\r
-default:\r
-throw  new InternalError ();\r
-}\r
-}, "jssun.font.EAttribute,~O");\r
-Clazz.defineMethod (c$, "i_get", \r
- function (a) {\r
-switch (a) {\r
-case jssun.font.EAttribute.EFAMILY:\r
-return this.family;\r
-case jssun.font.EAttribute.EWEIGHT:\r
-return Float.$valueOf (this.weight);\r
-case jssun.font.EAttribute.EWIDTH:\r
-return Float.$valueOf (this.width);\r
-case jssun.font.EAttribute.EPOSTURE:\r
-return Float.$valueOf (this.posture);\r
-case jssun.font.EAttribute.ESIZE:\r
-return Float.$valueOf (this.size);\r
-case jssun.font.EAttribute.ESUPERSCRIPT:\r
-return Integer.$valueOf (this.superscript);\r
-case jssun.font.EAttribute.EFONT:\r
-return this.font;\r
-case jssun.font.EAttribute.EUNDERLINE:\r
-return Integer.$valueOf (this.underline);\r
-case jssun.font.EAttribute.ESTRIKETHROUGH:\r
-return Boolean.$valueOf (this.strikethrough);\r
-case jssun.font.EAttribute.ERUN_DIRECTION:\r
-{\r
-switch (this.runDirection) {\r
-case 0:\r
-return java.awt.font.TextAttribute.RUN_DIRECTION_LTR;\r
-case 1:\r
-return java.awt.font.TextAttribute.RUN_DIRECTION_RTL;\r
-default:\r
-return null;\r
-}\r
-}case jssun.font.EAttribute.EBIDI_EMBEDDING:\r
-return Integer.$valueOf (this.bidiEmbedding);\r
-case jssun.font.EAttribute.EJUSTIFICATION:\r
-return Float.$valueOf (this.justification);\r
-case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:\r
-return this.imHighlight;\r
-case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:\r
-return Integer.$valueOf (this.imUnderline);\r
-case jssun.font.EAttribute.ESWAP_COLORS:\r
-return Boolean.$valueOf (this.swapColors);\r
-case jssun.font.EAttribute.EKERNING:\r
-return Integer.$valueOf (this.kerning);\r
-case jssun.font.EAttribute.ELIGATURES:\r
-return Integer.$valueOf (this.ligatures);\r
-case jssun.font.EAttribute.ETRACKING:\r
-return Float.$valueOf (this.tracking);\r
-default:\r
-throw  new InternalError ();\r
-}\r
-}, "jssun.font.EAttribute");\r
-Clazz.defineMethod (c$, "i_validate", \r
- function (a) {\r
-switch (a) {\r
-case jssun.font.EAttribute.EFAMILY:\r
-if (this.family == null || this.family.length == 0) this.family = jssun.font.AttributeValues.DEFAULT.family;\r
-return true;\r
-case jssun.font.EAttribute.EWEIGHT:\r
-return this.weight > 0 && this.weight < 10;\r
-case jssun.font.EAttribute.EWIDTH:\r
-return this.width >= .5 && this.width < 10;\r
-case jssun.font.EAttribute.EPOSTURE:\r
-return this.posture >= -1 && this.posture <= 1;\r
-case jssun.font.EAttribute.ESIZE:\r
-return this.size >= 0;\r
-case jssun.font.EAttribute.ETRANSFORM:\r
-if (this.transform != null && this.transform.isIdentity ()) this.transform = jssun.font.AttributeValues.DEFAULT.transform;\r
-return true;\r
-case jssun.font.EAttribute.ESUPERSCRIPT:\r
-return this.superscript >= -7 && this.superscript <= 7;\r
-case jssun.font.EAttribute.EFONT:\r
-return true;\r
-case jssun.font.EAttribute.ECHAR_REPLACEMENT:\r
-return true;\r
-case jssun.font.EAttribute.EFOREGROUND:\r
-return true;\r
-case jssun.font.EAttribute.EBACKGROUND:\r
-return true;\r
-case jssun.font.EAttribute.EUNDERLINE:\r
-return this.underline >= -1 && this.underline < 6;\r
-case jssun.font.EAttribute.ESTRIKETHROUGH:\r
-return true;\r
-case jssun.font.EAttribute.ERUN_DIRECTION:\r
-return this.runDirection >= -2 && this.runDirection <= 1;\r
-case jssun.font.EAttribute.EBIDI_EMBEDDING:\r
-return this.bidiEmbedding >= -61 && this.bidiEmbedding < 62;\r
-case jssun.font.EAttribute.EJUSTIFICATION:\r
-this.justification = Math.max (0, Math.min (this.justification, 1));\r
-return true;\r
-case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:\r
-return true;\r
-case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:\r
-return this.imUnderline >= -1 && this.imUnderline < 6;\r
-case jssun.font.EAttribute.ESWAP_COLORS:\r
-return true;\r
-case jssun.font.EAttribute.ENUMERIC_SHAPING:\r
-return true;\r
-case jssun.font.EAttribute.EKERNING:\r
-return this.kerning >= 0 && this.kerning <= 1;\r
-case jssun.font.EAttribute.ELIGATURES:\r
-return this.ligatures >= 0 && this.ligatures <= 1;\r
-case jssun.font.EAttribute.ETRACKING:\r
-return this.tracking >= -1 && this.tracking <= 10;\r
-default:\r
-throw  new InternalError ("unknown attribute: " + a);\r
-}\r
-}, "jssun.font.EAttribute");\r
-c$.getJustification = Clazz.defineMethod (c$, "getJustification", \r
-function (map) {\r
-if (map != null) {\r
-if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {\r
-return (map).getValues ().justification;\r
-}var obj = map.get (java.awt.font.TextAttribute.JUSTIFICATION);\r
-if (obj != null && Clazz.instanceOf (obj, Number)) {\r
-return Math.max (0, Math.min (1, (obj).floatValue ()));\r
-}}return jssun.font.AttributeValues.DEFAULT.justification;\r
-}, "java.util.Map");\r
-Clazz.defineMethod (c$, "applyIMHighlight", \r
-function () {\r
-return this;\r
-});\r
-c$.getBaselineTransform = Clazz.defineMethod (c$, "getBaselineTransform", \r
-function (map) {\r
-if (map != null) {\r
-var av = null;\r
-if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {\r
-av = (map).getValues ();\r
-} else if (map.get (java.awt.font.TextAttribute.TRANSFORM) != null) {\r
-av = jssun.font.AttributeValues.fromMap (map);\r
-}if (av != null) {\r
-return av.baselineTransform;\r
-}}return null;\r
-}, "java.util.Map");\r
-c$.getCharTransform = Clazz.defineMethod (c$, "getCharTransform", \r
-function (map) {\r
-if (map != null) {\r
-var av = null;\r
-if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {\r
-av = (map).getValues ();\r
-} else if (map.get (java.awt.font.TextAttribute.TRANSFORM) != null) {\r
-av = jssun.font.AttributeValues.fromMap (map);\r
-}if (av != null) {\r
-return av.charTransform;\r
-}}return null;\r
-}, "java.util.Map");\r
-Clazz.defineMethod (c$, "updateDerivedTransforms", \r
-function () {\r
-if (this.transform == null) {\r
-this.baselineTransform = null;\r
-this.charTransform = null;\r
-} else {\r
-this.charTransform =  new java.awt.geom.AffineTransform (this.transform);\r
-this.baselineTransform = jssun.font.AttributeValues.extractXRotation (this.charTransform, true);\r
-if (this.charTransform.isIdentity ()) {\r
-this.charTransform = null;\r
-}if (this.baselineTransform.isIdentity ()) {\r
-this.baselineTransform = null;\r
-}}if (this.baselineTransform == null) {\r
-this.nondefault &= ~jssun.font.EAttribute.EBASELINE_TRANSFORM.mask;\r
-} else {\r
-this.nondefault |= jssun.font.EAttribute.EBASELINE_TRANSFORM.mask;\r
-}});\r
-c$.extractXRotation = Clazz.defineMethod (c$, "extractXRotation", \r
-function (tx, andTranslation) {\r
-return jssun.font.AttributeValues.extractRotation ( new java.awt.geom.Point2D.Double (1, 0), tx, andTranslation);\r
-}, "java.awt.geom.AffineTransform,~B");\r
-c$.extractYRotation = Clazz.defineMethod (c$, "extractYRotation", \r
-function (tx, andTranslation) {\r
-return jssun.font.AttributeValues.extractRotation ( new java.awt.geom.Point2D.Double (0, 1), tx, andTranslation);\r
-}, "java.awt.geom.AffineTransform,~B");\r
-c$.extractRotation = Clazz.defineMethod (c$, "extractRotation", \r
- function (pt, tx, andTranslation) {\r
-tx.deltaTransform (pt, pt);\r
-var rtx = java.awt.geom.AffineTransform.getRotateInstance (pt.x, pt.y);\r
-try {\r
-var rtxi = rtx.createInverse ();\r
-var dx = tx.getTranslateX ();\r
-var dy = tx.getTranslateY ();\r
-tx.preConcatenate (rtxi);\r
-if (andTranslation) {\r
-if (dx != 0 || dy != 0) {\r
-tx.setTransform (tx.getScaleX (), tx.getShearY (), tx.getShearX (), tx.getScaleY (), 0, 0);\r
-rtx.setTransform (rtx.getScaleX (), rtx.getShearY (), rtx.getShearX (), rtx.getScaleY (), dx, dy);\r
-}}} catch (e) {\r
-if (Clazz.exceptionOf (e, java.awt.geom.NoninvertibleTransformException)) {\r
-return null;\r
-} else {\r
-throw e;\r
-}\r
-}\r
-return rtx;\r
-}, "java.awt.geom.Point2D.Double,java.awt.geom.AffineTransform,~B");\r
-c$.DEFAULT = c$.prototype.DEFAULT =  new jssun.font.AttributeValues ();\r
-c$.MASK_ALL = c$.prototype.MASK_ALL = jssun.font.AttributeValues.getMask (jssun.font.EAttribute.getEnumConstants ());\r
-Clazz.defineStatics (c$,\r
-"DEFINED_KEY", "sun.font.attributevalues.defined_key");\r
-});\r
+Clazz.declarePackage ("jssun.font");
+Clazz.load (["jssun.font.EAttribute"], "jssun.font.AttributeValues", ["java.lang.Boolean", "$.Float", "$.InternalError", "$.Number", "$.StringBuilder", "java.util.HashMap", "java.awt.font.TextAttribute", "java.awt.geom.AffineTransform", "$.Point2D", "jssun.font.AttributeMap"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.defined = 0;
+this.nondefault = 0;
+this.family = "Default";
+this.weight = 1;
+this.width = 1;
+this.posture = 0;
+this.size = 12;
+this.tracking = 0;
+this.transform = null;
+this.foreground = null;
+this.background = null;
+this.justification = 1;
+this.imHighlight = null;
+this.font = null;
+this.imUnderline = -1;
+this.superscript = 0;
+this.underline = -1;
+this.runDirection = -2;
+this.bidiEmbedding = 0;
+this.kerning = 0;
+this.ligatures = 0;
+this.strikethrough = false;
+this.swapColors = false;
+this.baselineTransform = null;
+this.charTransform = null;
+Clazz.instantialize (this, arguments);
+}, jssun.font, "AttributeValues", null, Cloneable);
+Clazz.defineMethod (c$, "getFamily", 
+function () {
+return this.family;
+});
+Clazz.defineMethod (c$, "setFamily", 
+function (f) {
+this.family = f;
+this.update (jssun.font.EAttribute.EFAMILY);
+}, "~S");
+Clazz.defineMethod (c$, "getWeight", 
+function () {
+return this.weight;
+});
+Clazz.defineMethod (c$, "setWeight", 
+function (f) {
+this.weight = f;
+this.update (jssun.font.EAttribute.EWEIGHT);
+}, "~N");
+Clazz.defineMethod (c$, "getWidth", 
+function () {
+return this.width;
+});
+Clazz.defineMethod (c$, "setWidth", 
+function (f) {
+this.width = f;
+this.update (jssun.font.EAttribute.EWIDTH);
+}, "~N");
+Clazz.defineMethod (c$, "getPosture", 
+function () {
+return this.posture;
+});
+Clazz.defineMethod (c$, "setPosture", 
+function (f) {
+this.posture = f;
+this.update (jssun.font.EAttribute.EPOSTURE);
+}, "~N");
+Clazz.defineMethod (c$, "getSize", 
+function () {
+return this.size;
+});
+Clazz.defineMethod (c$, "setSize", 
+function (f) {
+this.size = f;
+this.update (jssun.font.EAttribute.ESIZE);
+}, "~N");
+Clazz.defineMethod (c$, "getTransform", 
+function () {
+return this.transform;
+});
+Clazz.defineMethod (c$, "setTransform", 
+function (f) {
+this.transform = (f == null || f.isIdentity ()) ? jssun.font.AttributeValues.DEFAULT.transform :  new java.awt.geom.AffineTransform (f);
+this.updateDerivedTransforms ();
+this.update (jssun.font.EAttribute.ETRANSFORM);
+}, "java.awt.geom.AffineTransform");
+Clazz.defineMethod (c$, "getSuperscript", 
+function () {
+return this.superscript;
+});
+Clazz.defineMethod (c$, "setSuperscript", 
+function (f) {
+this.superscript = f;
+this.update (jssun.font.EAttribute.ESUPERSCRIPT);
+}, "~N");
+Clazz.defineMethod (c$, "getFont", 
+function () {
+return this.font;
+});
+Clazz.defineMethod (c$, "setFont", 
+function (f) {
+this.font = f;
+this.update (jssun.font.EAttribute.EFONT);
+}, "java.awt.Font");
+Clazz.defineMethod (c$, "getForeground", 
+function () {
+return this.foreground;
+});
+Clazz.defineMethod (c$, "setForeground", 
+function (f) {
+this.foreground = f;
+this.update (jssun.font.EAttribute.EFOREGROUND);
+}, "java.awt.Paint");
+Clazz.defineMethod (c$, "getBackground", 
+function () {
+return this.background;
+});
+Clazz.defineMethod (c$, "setBackground", 
+function (f) {
+this.background = f;
+this.update (jssun.font.EAttribute.EBACKGROUND);
+}, "java.awt.Paint");
+Clazz.defineMethod (c$, "getUnderline", 
+function () {
+return this.underline;
+});
+Clazz.defineMethod (c$, "setUnderline", 
+function (f) {
+this.underline = f;
+this.update (jssun.font.EAttribute.EUNDERLINE);
+}, "~N");
+Clazz.defineMethod (c$, "getStrikethrough", 
+function () {
+return this.strikethrough;
+});
+Clazz.defineMethod (c$, "setStrikethrough", 
+function (f) {
+this.strikethrough = f;
+this.update (jssun.font.EAttribute.ESTRIKETHROUGH);
+}, "~B");
+Clazz.defineMethod (c$, "getRunDirection", 
+function () {
+return this.runDirection;
+});
+Clazz.defineMethod (c$, "setRunDirection", 
+function (f) {
+this.runDirection = f;
+this.update (jssun.font.EAttribute.ERUN_DIRECTION);
+}, "~N");
+Clazz.defineMethod (c$, "getBidiEmbedding", 
+function () {
+return this.bidiEmbedding;
+});
+Clazz.defineMethod (c$, "setBidiEmbedding", 
+function (f) {
+this.bidiEmbedding = f;
+this.update (jssun.font.EAttribute.EBIDI_EMBEDDING);
+}, "~N");
+Clazz.defineMethod (c$, "getJustification", 
+function () {
+return this.justification;
+});
+Clazz.defineMethod (c$, "setJustification", 
+function (f) {
+this.justification = f;
+this.update (jssun.font.EAttribute.EJUSTIFICATION);
+}, "~N");
+Clazz.defineMethod (c$, "getInputMethodHighlight", 
+function () {
+return this.imHighlight;
+});
+Clazz.defineMethod (c$, "setInputMethodHighlight", 
+function (f) {
+this.imHighlight = f;
+this.update (jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT);
+}, "java.text.Annotation");
+Clazz.defineMethod (c$, "getInputMethodUnderline", 
+function () {
+return this.imUnderline;
+});
+Clazz.defineMethod (c$, "setInputMethodUnderline", 
+function (f) {
+this.imUnderline = f;
+this.update (jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE);
+}, "~N");
+Clazz.defineMethod (c$, "getSwapColors", 
+function () {
+return this.swapColors;
+});
+Clazz.defineMethod (c$, "setSwapColors", 
+function (f) {
+this.swapColors = f;
+this.update (jssun.font.EAttribute.ESWAP_COLORS);
+}, "~B");
+Clazz.defineMethod (c$, "getKerning", 
+function () {
+return this.kerning;
+});
+Clazz.defineMethod (c$, "setKerning", 
+function (f) {
+this.kerning = f;
+this.update (jssun.font.EAttribute.EKERNING);
+}, "~N");
+Clazz.defineMethod (c$, "getTracking", 
+function () {
+return this.tracking;
+});
+Clazz.defineMethod (c$, "setTracking", 
+function (f) {
+this.tracking = Clazz.floatToByte (f);
+this.update (jssun.font.EAttribute.ETRACKING);
+}, "~N");
+Clazz.defineMethod (c$, "getLigatures", 
+function () {
+return this.ligatures;
+});
+Clazz.defineMethod (c$, "setLigatures", 
+function (f) {
+this.ligatures = f;
+this.update (jssun.font.EAttribute.ELIGATURES);
+}, "~N");
+Clazz.defineMethod (c$, "getBaselineTransform", 
+function () {
+return this.baselineTransform;
+});
+Clazz.defineMethod (c$, "getCharTransform", 
+function () {
+return this.charTransform;
+});
+c$.getMask = Clazz.defineMethod (c$, "getMask", 
+function (att) {
+return att.mask;
+}, "jssun.font.EAttribute");
+c$.getMask = Clazz.defineMethod (c$, "getMask", 
+function (atts) {
+var mask = 0;
+for (var a, $a = 0, $$a = atts; $a < $$a.length && ((a = $$a[$a]) || true); $a++) {
+mask |= a.mask;
+}
+return mask;
+}, "~A");
+Clazz.defineMethod (c$, "unsetDefault", 
+function () {
+this.defined &= this.nondefault;
+});
+Clazz.defineMethod (c$, "defineAll", 
+function (mask) {
+this.defined |= mask;
+if ((this.defined & jssun.font.EAttribute.EBASELINE_TRANSFORM.mask) != 0) {
+throw  new InternalError ("can't define derived attribute");
+}}, "~N");
+Clazz.defineMethod (c$, "allDefined", 
+function (mask) {
+return (this.defined & mask) == mask;
+}, "~N");
+Clazz.defineMethod (c$, "anyDefined", 
+function (mask) {
+return (this.defined & mask) != 0;
+}, "~N");
+Clazz.defineMethod (c$, "anyNonDefault", 
+function (mask) {
+return (this.nondefault & mask) != 0;
+}, "~N");
+Clazz.defineMethod (c$, "isDefined", 
+function (a) {
+return (this.defined & a.mask) != 0;
+}, "jssun.font.EAttribute");
+Clazz.defineMethod (c$, "isNonDefault", 
+function (a) {
+return (this.nondefault & a.mask) != 0;
+}, "jssun.font.EAttribute");
+Clazz.defineMethod (c$, "setDefault", 
+function (a) {
+if (a.att == null) {
+throw  new InternalError ("can't set default derived attribute: " + a);
+}this.i_set (a, jssun.font.AttributeValues.DEFAULT);
+this.defined |= a.mask;
+this.nondefault &= ~a.mask;
+}, "jssun.font.EAttribute");
+Clazz.defineMethod (c$, "unset", 
+function (a) {
+if (a.att == null) {
+throw  new InternalError ("can't unset derived attribute: " + a);
+}this.i_set (a, jssun.font.AttributeValues.DEFAULT);
+this.defined &= ~a.mask;
+this.nondefault &= ~a.mask;
+}, "jssun.font.EAttribute");
+Clazz.defineMethod (c$, "set", 
+function (a, src) {
+if (a.att == null) {
+throw  new InternalError ("can't set derived attribute: " + a);
+}if (src == null || src === jssun.font.AttributeValues.DEFAULT) {
+this.setDefault (a);
+} else {
+if ((src.defined & a.mask) != 0) {
+this.i_set (a, src);
+this.update (a);
+}}}, "jssun.font.EAttribute,jssun.font.AttributeValues");
+Clazz.defineMethod (c$, "set", 
+function (a, o) {
+if (a.att == null) {
+throw  new InternalError ("can't set derived attribute: " + a);
+}if (o != null) {
+try {
+this.i_set (a, o);
+this.update (a);
+return;
+} catch (e) {
+if (Clazz.exceptionOf (e, Exception)) {
+} else {
+throw e;
+}
+}
+}this.setDefault (a);
+}, "jssun.font.EAttribute,~O");
+Clazz.defineMethod (c$, "get", 
+function (a) {
+if (a.att == null) {
+throw  new InternalError ("can't get derived attribute: " + a);
+}if ((this.nondefault & a.mask) != 0) {
+return this.i_get (a);
+}return null;
+}, "jssun.font.EAttribute");
+Clazz.defineMethod (c$, "merge", 
+function (map) {
+return this.merge (map, jssun.font.AttributeValues.MASK_ALL);
+}, "java.util.Map");
+Clazz.defineMethod (c$, "merge", 
+function (map, mask) {
+if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {
+this.merge ((map).getValues (), mask);
+} else if (map != null && !map.isEmpty ()) {
+for (var e, $e = map.entrySet ().iterator (); $e.hasNext () && ((e = $e.next ()) || true);) {
+var ea = jssun.font.EAttribute.forAttribute (e.getKey ());
+if (ea != null && (mask & ea.mask) != 0) {
+this.set (ea, e.getValue ());
+}}
+}return this;
+}, "java.util.Map,~N");
+Clazz.defineMethod (c$, "merge", 
+function (src) {
+return this.merge (src, jssun.font.AttributeValues.MASK_ALL);
+}, "jssun.font.AttributeValues");
+Clazz.defineMethod (c$, "merge", 
+function (src, mask) {
+var m = mask & src.defined;
+for (var ea, $ea = 0, $$ea = jssun.font.EAttribute.atts; $ea < $$ea.length && ((ea = $$ea[$ea]) || true); $ea++) {
+if (m == 0) {
+break;
+}if ((m & ea.mask) != 0) {
+m &= ~ea.mask;
+this.i_set (ea, src);
+this.update (ea);
+}}
+return this;
+}, "jssun.font.AttributeValues,~N");
+c$.fromMap = Clazz.defineMethod (c$, "fromMap", 
+function (map) {
+return jssun.font.AttributeValues.fromMap (map, jssun.font.AttributeValues.MASK_ALL);
+}, "java.util.Map");
+c$.fromMap = Clazz.defineMethod (c$, "fromMap", 
+function (map, mask) {
+return  new jssun.font.AttributeValues ().merge (map, mask);
+}, "java.util.Map,~N");
+Clazz.defineMethod (c$, "toMap", 
+function (fill) {
+if (fill == null) {
+fill =  new java.util.HashMap ();
+}for (var m = this.defined, i = 0; m != 0; ++i) {
+var ea = jssun.font.EAttribute.atts[i];
+if ((m & ea.mask) != 0) {
+m &= ~ea.mask;
+fill.put (ea.att, this.get (ea));
+}}
+return fill;
+}, "java.util.Map");
+c$.is16Hashtable = Clazz.defineMethod (c$, "is16Hashtable", 
+function (ht) {
+return ht.containsKey ("sun.font.attributevalues.defined_key");
+}, "java.util.Hashtable");
+c$.fromSerializableHashtable = Clazz.defineMethod (c$, "fromSerializableHashtable", 
+function (ht) {
+var result =  new jssun.font.AttributeValues ();
+if (ht != null && !ht.isEmpty ()) {
+for (var e, $e = ht.entrySet ().iterator (); $e.hasNext () && ((e = $e.next ()) || true);) {
+var key = e.getKey ();
+var val = e.getValue ();
+if (key.equals ("sun.font.attributevalues.defined_key")) {
+result.defineAll ((val).intValue ());
+} else {
+try {
+var ea = jssun.font.EAttribute.forAttribute (key);
+if (ea != null) {
+result.set (ea, val);
+}} catch (ex) {
+if (Clazz.exceptionOf (ex, ClassCastException)) {
+} else {
+throw ex;
+}
+}
+}}
+}return result;
+}, "java.util.Hashtable");
+Clazz.overrideMethod (c$, "hashCode", 
+function () {
+return this.defined << 8 ^ this.nondefault;
+});
+Clazz.defineMethod (c$, "equals", 
+function (rhs) {
+try {
+return this.equals (rhs);
+} catch (e) {
+if (Clazz.exceptionOf (e, ClassCastException)) {
+} else {
+throw e;
+}
+}
+return false;
+}, "~O");
+Clazz.defineMethod (c$, "equals", 
+function (rhs) {
+if (rhs == null) return false;
+if (rhs === this) return true;
+return this.defined == rhs.defined && this.nondefault == rhs.nondefault && this.underline == rhs.underline && this.strikethrough == rhs.strikethrough && this.superscript == rhs.superscript && this.width == rhs.width && this.kerning == rhs.kerning && this.tracking == rhs.tracking && this.ligatures == rhs.ligatures && this.runDirection == rhs.runDirection && this.bidiEmbedding == rhs.bidiEmbedding && this.swapColors == rhs.swapColors && jssun.font.AttributeValues.equals (this.transform, rhs.transform) && jssun.font.AttributeValues.equals (new Float (this.justification), new Float (rhs.justification)) && this.size == rhs.size && this.weight == rhs.weight && this.posture == rhs.posture && jssun.font.AttributeValues.equals (this.family, rhs.family) && jssun.font.AttributeValues.equals (this.font, rhs.font) && this.imUnderline == rhs.imUnderline && jssun.font.AttributeValues.equals (this.imHighlight, rhs.imHighlight);
+}, "jssun.font.AttributeValues");
+Clazz.defineMethod (c$, "clone", 
+function () {
+try {
+var result = Clazz.superCall (this, jssun.font.AttributeValues, "clone", []);
+if (this.transform != null) {
+result.transform =  new java.awt.geom.AffineTransform (this.transform);
+result.updateDerivedTransforms ();
+}return result;
+} catch (e) {
+if (Clazz.exceptionOf (e, CloneNotSupportedException)) {
+return null;
+} else {
+throw e;
+}
+}
+});
+Clazz.overrideMethod (c$, "toString", 
+function () {
+var b =  new StringBuilder ();
+b.append ('{');
+for (var m = this.defined, i = 0; m != 0; ++i) {
+var ea = jssun.font.EAttribute.atts[i];
+if ((m & ea.mask) != 0) {
+m &= ~ea.mask;
+if (b.length () > 1) {
+b.append (", ");
+}b.append (ea);
+b.append ('=');
+switch (ea) {
+case jssun.font.EAttribute.EFAMILY:
+b.append ('"');
+b.append (this.family);
+b.append ('"');
+break;
+case jssun.font.EAttribute.EWEIGHT:
+b.append (this.weight);
+break;
+case jssun.font.EAttribute.EWIDTH:
+b.append (this.width);
+break;
+case jssun.font.EAttribute.EPOSTURE:
+b.append (this.posture);
+break;
+case jssun.font.EAttribute.ESIZE:
+b.append (this.size);
+break;
+case jssun.font.EAttribute.ETRANSFORM:
+b.append (this.transform);
+break;
+case jssun.font.EAttribute.ESUPERSCRIPT:
+b.append ("" + this.superscript);
+break;
+case jssun.font.EAttribute.EFONT:
+b.append (this.font);
+break;
+case jssun.font.EAttribute.EUNDERLINE:
+b.append ("" + this.underline);
+break;
+case jssun.font.EAttribute.ESTRIKETHROUGH:
+b.append (this.strikethrough);
+break;
+case jssun.font.EAttribute.ERUN_DIRECTION:
+b.append ("" + this.runDirection);
+break;
+case jssun.font.EAttribute.EBIDI_EMBEDDING:
+b.append ("" + this.bidiEmbedding);
+break;
+case jssun.font.EAttribute.EJUSTIFICATION:
+b.append (this.justification);
+break;
+case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:
+b.append (this.imHighlight);
+break;
+case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
+b.append ("" + this.imUnderline);
+break;
+case jssun.font.EAttribute.ESWAP_COLORS:
+b.append (this.swapColors);
+break;
+case jssun.font.EAttribute.EKERNING:
+b.append (this.kerning);
+break;
+case jssun.font.EAttribute.ELIGATURES:
+b.append (this.ligatures);
+break;
+case jssun.font.EAttribute.ETRACKING:
+b.append (this.tracking);
+break;
+default:
+throw  new InternalError ();
+}
+if ((this.nondefault & ea.mask) == 0) {
+b.append ('*');
+}}}
+b.append ("[btx=" + this.baselineTransform + ", ctx=" + this.charTransform + "]");
+b.append ('}');
+return b.toString ();
+});
+c$.equals = Clazz.defineMethod (c$, "equals", 
+ function (lhs, rhs) {
+return lhs == null ? rhs == null : lhs.equals (rhs);
+}, "~O,~O");
+Clazz.defineMethod (c$, "update", 
+ function (a) {
+this.defined |= a.mask;
+if (this.i_validate (a)) {
+if (this.i_equals (a, jssun.font.AttributeValues.DEFAULT)) {
+this.nondefault &= ~a.mask;
+} else {
+this.nondefault |= a.mask;
+}} else {
+this.setDefault (a);
+}}, "jssun.font.EAttribute");
+Clazz.defineMethod (c$, "i_set", 
+ function (a, src) {
+switch (a) {
+case jssun.font.EAttribute.EFAMILY:
+this.family = src.family;
+break;
+case jssun.font.EAttribute.EWEIGHT:
+this.weight = src.weight;
+break;
+case jssun.font.EAttribute.EWIDTH:
+this.width = src.width;
+break;
+case jssun.font.EAttribute.EPOSTURE:
+this.posture = src.posture;
+break;
+case jssun.font.EAttribute.ESIZE:
+this.size = src.size;
+break;
+case jssun.font.EAttribute.ETRANSFORM:
+this.transform = src.transform;
+this.updateDerivedTransforms ();
+break;
+case jssun.font.EAttribute.ESUPERSCRIPT:
+this.superscript = src.superscript;
+break;
+case jssun.font.EAttribute.EFONT:
+this.font = src.font;
+break;
+case jssun.font.EAttribute.EUNDERLINE:
+this.underline = src.underline;
+break;
+case jssun.font.EAttribute.ESTRIKETHROUGH:
+this.strikethrough = src.strikethrough;
+break;
+case jssun.font.EAttribute.ERUN_DIRECTION:
+this.runDirection = src.runDirection;
+break;
+case jssun.font.EAttribute.EBIDI_EMBEDDING:
+this.bidiEmbedding = src.bidiEmbedding;
+break;
+case jssun.font.EAttribute.EJUSTIFICATION:
+this.justification = src.justification;
+break;
+case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:
+this.imHighlight = src.imHighlight;
+break;
+case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
+this.imUnderline = src.imUnderline;
+break;
+case jssun.font.EAttribute.ESWAP_COLORS:
+this.swapColors = src.swapColors;
+break;
+case jssun.font.EAttribute.EKERNING:
+this.kerning = src.kerning;
+break;
+case jssun.font.EAttribute.ELIGATURES:
+this.ligatures = src.ligatures;
+break;
+case jssun.font.EAttribute.ETRACKING:
+this.tracking = src.tracking;
+break;
+default:
+throw  new InternalError ();
+}
+}, "jssun.font.EAttribute,jssun.font.AttributeValues");
+Clazz.defineMethod (c$, "i_equals", 
+ function (a, src) {
+switch (a) {
+case jssun.font.EAttribute.EFAMILY:
+return jssun.font.AttributeValues.equals (this.family, src.family);
+case jssun.font.EAttribute.EWEIGHT:
+return this.weight == src.weight;
+case jssun.font.EAttribute.EWIDTH:
+return this.width == src.width;
+case jssun.font.EAttribute.EPOSTURE:
+return this.posture == src.posture;
+case jssun.font.EAttribute.ESIZE:
+return this.size == src.size;
+case jssun.font.EAttribute.ETRANSFORM:
+return jssun.font.AttributeValues.equals (this.transform, src.transform);
+case jssun.font.EAttribute.ESUPERSCRIPT:
+return this.superscript == src.superscript;
+case jssun.font.EAttribute.EFONT:
+return jssun.font.AttributeValues.equals (this.font, src.font);
+case jssun.font.EAttribute.EUNDERLINE:
+return this.underline == src.underline;
+case jssun.font.EAttribute.ESTRIKETHROUGH:
+return this.strikethrough == src.strikethrough;
+case jssun.font.EAttribute.ERUN_DIRECTION:
+return this.runDirection == src.runDirection;
+case jssun.font.EAttribute.EBIDI_EMBEDDING:
+return this.bidiEmbedding == src.bidiEmbedding;
+case jssun.font.EAttribute.EJUSTIFICATION:
+return this.justification == src.justification;
+case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:
+return jssun.font.AttributeValues.equals (this.imHighlight, src.imHighlight);
+case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
+return this.imUnderline == src.imUnderline;
+case jssun.font.EAttribute.ESWAP_COLORS:
+return this.swapColors == src.swapColors;
+case jssun.font.EAttribute.EKERNING:
+return this.kerning == src.kerning;
+case jssun.font.EAttribute.ELIGATURES:
+return this.ligatures == src.ligatures;
+case jssun.font.EAttribute.ETRACKING:
+return this.tracking == src.tracking;
+default:
+throw  new InternalError ();
+}
+}, "jssun.font.EAttribute,jssun.font.AttributeValues");
+Clazz.defineMethod (c$, "i_set", 
+ function (a, o) {
+switch (a) {
+case jssun.font.EAttribute.EFAMILY:
+this.family = (o).trim ();
+break;
+case jssun.font.EAttribute.EWEIGHT:
+this.weight = (o).floatValue ();
+break;
+case jssun.font.EAttribute.EWIDTH:
+this.width = (o).floatValue ();
+break;
+case jssun.font.EAttribute.EPOSTURE:
+this.posture = (o).floatValue ();
+break;
+case jssun.font.EAttribute.ESIZE:
+this.size = (o).floatValue ();
+break;
+case jssun.font.EAttribute.ESUPERSCRIPT:
+this.superscript = (o).intValue ();
+break;
+case jssun.font.EAttribute.EFONT:
+this.font = o;
+break;
+case jssun.font.EAttribute.EUNDERLINE:
+this.underline = (o).intValue ();
+break;
+case jssun.font.EAttribute.ESTRIKETHROUGH:
+this.strikethrough = (o).booleanValue ();
+break;
+case jssun.font.EAttribute.ERUN_DIRECTION:
+{
+if (Clazz.instanceOf (o, Boolean)) {
+this.runDirection = (java.awt.font.TextAttribute.RUN_DIRECTION_LTR.equals (o) ? 0 : 1);
+} else {
+this.runDirection = (o).intValue ();
+}}break;
+case jssun.font.EAttribute.EBIDI_EMBEDDING:
+this.bidiEmbedding = (o).intValue ();
+break;
+case jssun.font.EAttribute.EJUSTIFICATION:
+this.justification = (o).floatValue ();
+break;
+case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
+this.imUnderline = (o).intValue ();
+break;
+case jssun.font.EAttribute.ESWAP_COLORS:
+this.swapColors = (o).booleanValue ();
+break;
+case jssun.font.EAttribute.EKERNING:
+this.kerning = (o).intValue ();
+break;
+case jssun.font.EAttribute.ELIGATURES:
+this.ligatures = (o).intValue ();
+break;
+case jssun.font.EAttribute.ETRACKING:
+this.tracking = (o).floatValue ();
+break;
+default:
+throw  new InternalError ();
+}
+}, "jssun.font.EAttribute,~O");
+Clazz.defineMethod (c$, "i_get", 
+ function (a) {
+switch (a) {
+case jssun.font.EAttribute.EFAMILY:
+return this.family;
+case jssun.font.EAttribute.EWEIGHT:
+return Float.$valueOf (this.weight);
+case jssun.font.EAttribute.EWIDTH:
+return Float.$valueOf (this.width);
+case jssun.font.EAttribute.EPOSTURE:
+return Float.$valueOf (this.posture);
+case jssun.font.EAttribute.ESIZE:
+return Float.$valueOf (this.size);
+case jssun.font.EAttribute.ESUPERSCRIPT:
+return Integer.$valueOf (this.superscript);
+case jssun.font.EAttribute.EFONT:
+return this.font;
+case jssun.font.EAttribute.EUNDERLINE:
+return Integer.$valueOf (this.underline);
+case jssun.font.EAttribute.ESTRIKETHROUGH:
+return Boolean.$valueOf (this.strikethrough);
+case jssun.font.EAttribute.ERUN_DIRECTION:
+{
+switch (this.runDirection) {
+case 0:
+return java.awt.font.TextAttribute.RUN_DIRECTION_LTR;
+case 1:
+return java.awt.font.TextAttribute.RUN_DIRECTION_RTL;
+default:
+return null;
+}
+}case jssun.font.EAttribute.EBIDI_EMBEDDING:
+return Integer.$valueOf (this.bidiEmbedding);
+case jssun.font.EAttribute.EJUSTIFICATION:
+return Float.$valueOf (this.justification);
+case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:
+return this.imHighlight;
+case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
+return Integer.$valueOf (this.imUnderline);
+case jssun.font.EAttribute.ESWAP_COLORS:
+return Boolean.$valueOf (this.swapColors);
+case jssun.font.EAttribute.EKERNING:
+return Integer.$valueOf (this.kerning);
+case jssun.font.EAttribute.ELIGATURES:
+return Integer.$valueOf (this.ligatures);
+case jssun.font.EAttribute.ETRACKING:
+return Float.$valueOf (this.tracking);
+default:
+throw  new InternalError ();
+}
+}, "jssun.font.EAttribute");
+Clazz.defineMethod (c$, "i_validate", 
+ function (a) {
+switch (a) {
+case jssun.font.EAttribute.EFAMILY:
+if (this.family == null || this.family.length == 0) this.family = jssun.font.AttributeValues.DEFAULT.family;
+return true;
+case jssun.font.EAttribute.EWEIGHT:
+return this.weight > 0 && this.weight < 10;
+case jssun.font.EAttribute.EWIDTH:
+return this.width >= .5 && this.width < 10;
+case jssun.font.EAttribute.EPOSTURE:
+return this.posture >= -1 && this.posture <= 1;
+case jssun.font.EAttribute.ESIZE:
+return this.size >= 0;
+case jssun.font.EAttribute.ETRANSFORM:
+if (this.transform != null && this.transform.isIdentity ()) this.transform = jssun.font.AttributeValues.DEFAULT.transform;
+return true;
+case jssun.font.EAttribute.ESUPERSCRIPT:
+return this.superscript >= -7 && this.superscript <= 7;
+case jssun.font.EAttribute.EFONT:
+return true;
+case jssun.font.EAttribute.ECHAR_REPLACEMENT:
+return true;
+case jssun.font.EAttribute.EFOREGROUND:
+return true;
+case jssun.font.EAttribute.EBACKGROUND:
+return true;
+case jssun.font.EAttribute.EUNDERLINE:
+return this.underline >= -1 && this.underline < 6;
+case jssun.font.EAttribute.ESTRIKETHROUGH:
+return true;
+case jssun.font.EAttribute.ERUN_DIRECTION:
+return this.runDirection >= -2 && this.runDirection <= 1;
+case jssun.font.EAttribute.EBIDI_EMBEDDING:
+return this.bidiEmbedding >= -61 && this.bidiEmbedding < 62;
+case jssun.font.EAttribute.EJUSTIFICATION:
+this.justification = Math.max (0, Math.min (this.justification, 1));
+return true;
+case jssun.font.EAttribute.EINPUT_METHOD_HIGHLIGHT:
+return true;
+case jssun.font.EAttribute.EINPUT_METHOD_UNDERLINE:
+return this.imUnderline >= -1 && this.imUnderline < 6;
+case jssun.font.EAttribute.ESWAP_COLORS:
+return true;
+case jssun.font.EAttribute.ENUMERIC_SHAPING:
+return true;
+case jssun.font.EAttribute.EKERNING:
+return this.kerning >= 0 && this.kerning <= 1;
+case jssun.font.EAttribute.ELIGATURES:
+return this.ligatures >= 0 && this.ligatures <= 1;
+case jssun.font.EAttribute.ETRACKING:
+return this.tracking >= -1 && this.tracking <= 10;
+default:
+throw  new InternalError ("unknown attribute: " + a);
+}
+}, "jssun.font.EAttribute");
+c$.getJustification = Clazz.defineMethod (c$, "getJustification", 
+function (map) {
+if (map != null) {
+if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {
+return (map).getValues ().justification;
+}var obj = map.get (java.awt.font.TextAttribute.JUSTIFICATION);
+if (obj != null && Clazz.instanceOf (obj, Number)) {
+return Math.max (0, Math.min (1, (obj).floatValue ()));
+}}return jssun.font.AttributeValues.DEFAULT.justification;
+}, "java.util.Map");
+Clazz.defineMethod (c$, "applyIMHighlight", 
+function () {
+return this;
+});
+c$.getBaselineTransform = Clazz.defineMethod (c$, "getBaselineTransform", 
+function (map) {
+if (map != null) {
+var av = null;
+if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {
+av = (map).getValues ();
+} else if (map.get (java.awt.font.TextAttribute.TRANSFORM) != null) {
+av = jssun.font.AttributeValues.fromMap (map);
+}if (av != null) {
+return av.baselineTransform;
+}}return null;
+}, "java.util.Map");
+c$.getCharTransform = Clazz.defineMethod (c$, "getCharTransform", 
+function (map) {
+if (map != null) {
+var av = null;
+if (Clazz.instanceOf (map, jssun.font.AttributeMap) && (map).getValues () != null) {
+av = (map).getValues ();
+} else if (map.get (java.awt.font.TextAttribute.TRANSFORM) != null) {
+av = jssun.font.AttributeValues.fromMap (map);
+}if (av != null) {
+return av.charTransform;
+}}return null;
+}, "java.util.Map");
+Clazz.defineMethod (c$, "updateDerivedTransforms", 
+function () {
+if (this.transform == null) {
+this.baselineTransform = null;
+this.charTransform = null;
+} else {
+this.charTransform =  new java.awt.geom.AffineTransform (this.transform);
+this.baselineTransform = jssun.font.AttributeValues.extractXRotation (this.charTransform, true);
+if (this.charTransform.isIdentity ()) {
+this.charTransform = null;
+}if (this.baselineTransform.isIdentity ()) {
+this.baselineTransform = null;
+}}if (this.baselineTransform == null) {
+this.nondefault &= ~jssun.font.EAttribute.EBASELINE_TRANSFORM.mask;
+} else {
+this.nondefault |= jssun.font.EAttribute.EBASELINE_TRANSFORM.mask;
+}});
+c$.extractXRotation = Clazz.defineMethod (c$, "extractXRotation", 
+function (tx, andTranslation) {
+return jssun.font.AttributeValues.extractRotation ( new java.awt.geom.Point2D.Double (1, 0), tx, andTranslation);
+}, "java.awt.geom.AffineTransform,~B");
+c$.extractYRotation = Clazz.defineMethod (c$, "extractYRotation", 
+function (tx, andTranslation) {
+return jssun.font.AttributeValues.extractRotation ( new java.awt.geom.Point2D.Double (0, 1), tx, andTranslation);
+}, "java.awt.geom.AffineTransform,~B");
+c$.extractRotation = Clazz.defineMethod (c$, "extractRotation", 
+ function (pt, tx, andTranslation) {
+tx.deltaTransform (pt, pt);
+var rtx = java.awt.geom.AffineTransform.getRotateInstance (pt.x, pt.y);
+try {
+var rtxi = rtx.createInverse ();
+var dx = tx.getTranslateX ();
+var dy = tx.getTranslateY ();
+tx.preConcatenate (rtxi);
+if (andTranslation) {
+if (dx != 0 || dy != 0) {
+tx.setTransform (tx.getScaleX (), tx.getShearY (), tx.getShearX (), tx.getScaleY (), 0, 0);
+rtx.setTransform (rtx.getScaleX (), rtx.getShearY (), rtx.getShearX (), rtx.getScaleY (), dx, dy);
+}}} catch (e) {
+if (Clazz.exceptionOf (e, java.awt.geom.NoninvertibleTransformException)) {
+return null;
+} else {
+throw e;
+}
+}
+return rtx;
+}, "java.awt.geom.Point2D.Double,java.awt.geom.AffineTransform,~B");
+c$.DEFAULT = c$.prototype.DEFAULT =  new jssun.font.AttributeValues ();
+c$.MASK_ALL = c$.prototype.MASK_ALL = jssun.font.AttributeValues.getMask (jssun.font.EAttribute.getEnumConstants ());
+Clazz.defineStatics (c$,
+"DEFINED_KEY", "sun.font.attributevalues.defined_key");
+});