下面列出了java.awt.font.TextAttribute#SIZE 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Returns the keys of all the attributes supported by this
* <code>Font</code>. These attributes can be used to derive other
* fonts.
* @return an array containing the keys of all the attributes
* supported by this <code>Font</code>.
* @since 1.2
*/
public Attribute[] getAvailableAttributes() {
// FONT is not supported by Font
Attribute attributes[] = {
TextAttribute.FAMILY,
TextAttribute.WEIGHT,
TextAttribute.WIDTH,
TextAttribute.POSTURE,
TextAttribute.SIZE,
TextAttribute.TRANSFORM,
TextAttribute.SUPERSCRIPT,
TextAttribute.CHAR_REPLACEMENT,
TextAttribute.FOREGROUND,
TextAttribute.BACKGROUND,
TextAttribute.UNDERLINE,
TextAttribute.STRIKETHROUGH,
TextAttribute.RUN_DIRECTION,
TextAttribute.BIDI_EMBEDDING,
TextAttribute.JUSTIFICATION,
TextAttribute.INPUT_METHOD_HIGHLIGHT,
TextAttribute.INPUT_METHOD_UNDERLINE,
TextAttribute.SWAP_COLORS,
TextAttribute.NUMERIC_SHAPING,
TextAttribute.KERNING,
TextAttribute.LIGATURES,
TextAttribute.TRACKING,
};
return attributes;
}
/**
* Returns the keys of all the attributes supported by this
* <code>Font</code>. These attributes can be used to derive other
* fonts.
* @return an array containing the keys of all the attributes
* supported by this <code>Font</code>.
* @since 1.2
*/
public Attribute[] getAvailableAttributes() {
// FONT is not supported by Font
Attribute attributes[] = {
TextAttribute.FAMILY,
TextAttribute.WEIGHT,
TextAttribute.WIDTH,
TextAttribute.POSTURE,
TextAttribute.SIZE,
TextAttribute.TRANSFORM,
TextAttribute.SUPERSCRIPT,
TextAttribute.CHAR_REPLACEMENT,
TextAttribute.FOREGROUND,
TextAttribute.BACKGROUND,
TextAttribute.UNDERLINE,
TextAttribute.STRIKETHROUGH,
TextAttribute.RUN_DIRECTION,
TextAttribute.BIDI_EMBEDDING,
TextAttribute.JUSTIFICATION,
TextAttribute.INPUT_METHOD_HIGHLIGHT,
TextAttribute.INPUT_METHOD_UNDERLINE,
TextAttribute.SWAP_COLORS,
TextAttribute.NUMERIC_SHAPING,
TextAttribute.KERNING,
TextAttribute.LIGATURES,
TextAttribute.TRACKING,
};
return attributes;
}
/**
* Returns the keys of all the attributes supported by this
* <code>Font</code>. These attributes can be used to derive other
* fonts.
* @return an array containing the keys of all the attributes
* supported by this <code>Font</code>.
* @since 1.2
*/
public Attribute[] getAvailableAttributes() {
// FONT is not supported by Font
Attribute attributes[] = {
TextAttribute.FAMILY,
TextAttribute.WEIGHT,
TextAttribute.WIDTH,
TextAttribute.POSTURE,
TextAttribute.SIZE,
TextAttribute.TRANSFORM,
TextAttribute.SUPERSCRIPT,
TextAttribute.CHAR_REPLACEMENT,
TextAttribute.FOREGROUND,
TextAttribute.BACKGROUND,
TextAttribute.UNDERLINE,
TextAttribute.STRIKETHROUGH,
TextAttribute.RUN_DIRECTION,
TextAttribute.BIDI_EMBEDDING,
TextAttribute.JUSTIFICATION,
TextAttribute.INPUT_METHOD_HIGHLIGHT,
TextAttribute.INPUT_METHOD_UNDERLINE,
TextAttribute.SWAP_COLORS,
TextAttribute.NUMERIC_SHAPING,
TextAttribute.KERNING,
TextAttribute.LIGATURES,
TextAttribute.TRACKING,
};
return attributes;
}
/**
* Returns the keys of all the attributes supported by this
* <code>Font</code>. These attributes can be used to derive other
* fonts.
* @return an array containing the keys of all the attributes
* supported by this <code>Font</code>.
* @since 1.2
*/
public Attribute[] getAvailableAttributes() {
// FONT is not supported by Font
Attribute attributes[] = {
TextAttribute.FAMILY,
TextAttribute.WEIGHT,
TextAttribute.WIDTH,
TextAttribute.POSTURE,
TextAttribute.SIZE,
TextAttribute.TRANSFORM,
TextAttribute.SUPERSCRIPT,
TextAttribute.CHAR_REPLACEMENT,
TextAttribute.FOREGROUND,
TextAttribute.BACKGROUND,
TextAttribute.UNDERLINE,
TextAttribute.STRIKETHROUGH,
TextAttribute.RUN_DIRECTION,
TextAttribute.BIDI_EMBEDDING,
TextAttribute.JUSTIFICATION,
TextAttribute.INPUT_METHOD_HIGHLIGHT,
TextAttribute.INPUT_METHOD_UNDERLINE,
TextAttribute.SWAP_COLORS,
TextAttribute.NUMERIC_SHAPING,
TextAttribute.KERNING,
TextAttribute.LIGATURES,
TextAttribute.TRACKING,
};
return attributes;
}
/**
* Returns the keys of all the attributes supported by this
* <code>Font</code>. These attributes can be used to derive other
* fonts.
* @return an array containing the keys of all the attributes
* supported by this <code>Font</code>.
* @since 1.2
*/
public Attribute[] getAvailableAttributes() {
// FONT is not supported by Font
Attribute attributes[] = {
TextAttribute.FAMILY,
TextAttribute.WEIGHT,
TextAttribute.WIDTH,
TextAttribute.POSTURE,
TextAttribute.SIZE,
TextAttribute.TRANSFORM,
TextAttribute.SUPERSCRIPT,
TextAttribute.CHAR_REPLACEMENT,
TextAttribute.FOREGROUND,
TextAttribute.BACKGROUND,
TextAttribute.UNDERLINE,
TextAttribute.STRIKETHROUGH,
TextAttribute.RUN_DIRECTION,
TextAttribute.BIDI_EMBEDDING,
TextAttribute.JUSTIFICATION,
TextAttribute.INPUT_METHOD_HIGHLIGHT,
TextAttribute.INPUT_METHOD_UNDERLINE,
TextAttribute.SWAP_COLORS,
TextAttribute.NUMERIC_SHAPING,
TextAttribute.KERNING,
TextAttribute.LIGATURES,
TextAttribute.TRACKING,
};
return attributes;
}
/**
* Returns the keys of all the attributes supported by this
* <code>Font</code>. These attributes can be used to derive other
* fonts.
* @return an array containing the keys of all the attributes
* supported by this <code>Font</code>.
* @since 1.2
*/
public Attribute[] getAvailableAttributes() {
// FONT is not supported by Font
Attribute attributes[] = {
TextAttribute.FAMILY,
TextAttribute.WEIGHT,
TextAttribute.WIDTH,
TextAttribute.POSTURE,
TextAttribute.SIZE,
TextAttribute.TRANSFORM,
TextAttribute.SUPERSCRIPT,
TextAttribute.CHAR_REPLACEMENT,
TextAttribute.FOREGROUND,
TextAttribute.BACKGROUND,
TextAttribute.UNDERLINE,
TextAttribute.STRIKETHROUGH,
TextAttribute.RUN_DIRECTION,
TextAttribute.BIDI_EMBEDDING,
TextAttribute.JUSTIFICATION,
TextAttribute.INPUT_METHOD_HIGHLIGHT,
TextAttribute.INPUT_METHOD_UNDERLINE,
TextAttribute.SWAP_COLORS,
TextAttribute.NUMERIC_SHAPING,
TextAttribute.KERNING,
TextAttribute.LIGATURES,
TextAttribute.TRACKING,
};
return attributes;
}
/**
* Returns the keys of all the attributes supported by this
* <code>Font</code>. These attributes can be used to derive other
* fonts.
* @return an array containing the keys of all the attributes
* supported by this <code>Font</code>.
* @since 1.2
*/
public Attribute[] getAvailableAttributes() {
// FONT is not supported by Font
Attribute attributes[] = {
TextAttribute.FAMILY,
TextAttribute.WEIGHT,
TextAttribute.WIDTH,
TextAttribute.POSTURE,
TextAttribute.SIZE,
TextAttribute.TRANSFORM,
TextAttribute.SUPERSCRIPT,
TextAttribute.CHAR_REPLACEMENT,
TextAttribute.FOREGROUND,
TextAttribute.BACKGROUND,
TextAttribute.UNDERLINE,
TextAttribute.STRIKETHROUGH,
TextAttribute.RUN_DIRECTION,
TextAttribute.BIDI_EMBEDDING,
TextAttribute.JUSTIFICATION,
TextAttribute.INPUT_METHOD_HIGHLIGHT,
TextAttribute.INPUT_METHOD_UNDERLINE,
TextAttribute.SWAP_COLORS,
TextAttribute.NUMERIC_SHAPING,
TextAttribute.KERNING,
TextAttribute.LIGATURES,
TextAttribute.TRACKING,
};
return attributes;
}
/**
* Returns the keys of all the attributes supported by this
* {@code Font}. These attributes can be used to derive other
* fonts.
* @return an array containing the keys of all the attributes
* supported by this {@code Font}.
* @since 1.2
*/
public Attribute[] getAvailableAttributes() {
// FONT is not supported by Font
Attribute[] attributes = {
TextAttribute.FAMILY,
TextAttribute.WEIGHT,
TextAttribute.WIDTH,
TextAttribute.POSTURE,
TextAttribute.SIZE,
TextAttribute.TRANSFORM,
TextAttribute.SUPERSCRIPT,
TextAttribute.CHAR_REPLACEMENT,
TextAttribute.FOREGROUND,
TextAttribute.BACKGROUND,
TextAttribute.UNDERLINE,
TextAttribute.STRIKETHROUGH,
TextAttribute.RUN_DIRECTION,
TextAttribute.BIDI_EMBEDDING,
TextAttribute.JUSTIFICATION,
TextAttribute.INPUT_METHOD_HIGHLIGHT,
TextAttribute.INPUT_METHOD_UNDERLINE,
TextAttribute.SWAP_COLORS,
TextAttribute.NUMERIC_SHAPING,
TextAttribute.KERNING,
TextAttribute.LIGATURES,
TextAttribute.TRACKING,
};
return attributes;
}
/**
* Returns the keys of all the attributes supported by this
* {@code Font}. These attributes can be used to derive other
* fonts.
* @return an array containing the keys of all the attributes
* supported by this {@code Font}.
* @since 1.2
*/
public Attribute[] getAvailableAttributes() {
// FONT is not supported by Font
Attribute attributes[] = {
TextAttribute.FAMILY,
TextAttribute.WEIGHT,
TextAttribute.WIDTH,
TextAttribute.POSTURE,
TextAttribute.SIZE,
TextAttribute.TRANSFORM,
TextAttribute.SUPERSCRIPT,
TextAttribute.CHAR_REPLACEMENT,
TextAttribute.FOREGROUND,
TextAttribute.BACKGROUND,
TextAttribute.UNDERLINE,
TextAttribute.STRIKETHROUGH,
TextAttribute.RUN_DIRECTION,
TextAttribute.BIDI_EMBEDDING,
TextAttribute.JUSTIFICATION,
TextAttribute.INPUT_METHOD_HIGHLIGHT,
TextAttribute.INPUT_METHOD_UNDERLINE,
TextAttribute.SWAP_COLORS,
TextAttribute.NUMERIC_SHAPING,
TextAttribute.KERNING,
TextAttribute.LIGATURES,
TextAttribute.TRACKING,
};
return attributes;
}
/**
* Returns the keys of all the attributes supported by this
* <code>Font</code>. These attributes can be used to derive other
* fonts.
* @return an array containing the keys of all the attributes
* supported by this <code>Font</code>.
* @since 1.2
*/
public Attribute[] getAvailableAttributes() {
// FONT is not supported by Font
Attribute attributes[] = {
TextAttribute.FAMILY,
TextAttribute.WEIGHT,
TextAttribute.WIDTH,
TextAttribute.POSTURE,
TextAttribute.SIZE,
TextAttribute.TRANSFORM,
TextAttribute.SUPERSCRIPT,
TextAttribute.CHAR_REPLACEMENT,
TextAttribute.FOREGROUND,
TextAttribute.BACKGROUND,
TextAttribute.UNDERLINE,
TextAttribute.STRIKETHROUGH,
TextAttribute.RUN_DIRECTION,
TextAttribute.BIDI_EMBEDDING,
TextAttribute.JUSTIFICATION,
TextAttribute.INPUT_METHOD_HIGHLIGHT,
TextAttribute.INPUT_METHOD_UNDERLINE,
TextAttribute.SWAP_COLORS,
TextAttribute.NUMERIC_SHAPING,
TextAttribute.KERNING,
TextAttribute.LIGATURES,
TextAttribute.TRACKING,
};
return attributes;
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Font font = (Font) oldInstance;
int count = 0;
String family = null;
int style = Font.PLAIN;
int size = 12;
Map<TextAttribute, ?> basic = font.getAttributes();
Map<TextAttribute, Object> clone = new HashMap<>(basic.size());
for (TextAttribute key : basic.keySet()) {
Object value = basic.get(key);
if (value != null) {
clone.put(key, value);
}
if (key == TextAttribute.FAMILY) {
if (value instanceof String) {
count++;
family = (String) value;
}
}
else if (key == TextAttribute.WEIGHT) {
if (TextAttribute.WEIGHT_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.WEIGHT_BOLD.equals(value)) {
count++;
style |= Font.BOLD;
}
}
else if (key == TextAttribute.POSTURE) {
if (TextAttribute.POSTURE_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.POSTURE_OBLIQUE.equals(value)) {
count++;
style |= Font.ITALIC;
}
} else if (key == TextAttribute.SIZE) {
if (value instanceof Number) {
Number number = (Number) value;
size = number.intValue();
if (size == number.floatValue()) {
count++;
}
}
}
}
Class<?> type = font.getClass();
if (count == clone.size()) {
return new Expression(font, type, "new", new Object[]{family, style, size});
}
if (type == Font.class) {
return new Expression(font, type, "getFont", new Object[]{clone});
}
return new Expression(font, type, "new", new Object[]{Font.getFont(clone)});
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Font font = (Font) oldInstance;
int count = 0;
String family = null;
int style = Font.PLAIN;
int size = 12;
Map<TextAttribute, ?> basic = font.getAttributes();
Map<TextAttribute, Object> clone = new HashMap<>(basic.size());
for (TextAttribute key : basic.keySet()) {
Object value = basic.get(key);
if (value != null) {
clone.put(key, value);
}
if (key == TextAttribute.FAMILY) {
if (value instanceof String) {
count++;
family = (String) value;
}
}
else if (key == TextAttribute.WEIGHT) {
if (TextAttribute.WEIGHT_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.WEIGHT_BOLD.equals(value)) {
count++;
style |= Font.BOLD;
}
}
else if (key == TextAttribute.POSTURE) {
if (TextAttribute.POSTURE_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.POSTURE_OBLIQUE.equals(value)) {
count++;
style |= Font.ITALIC;
}
} else if (key == TextAttribute.SIZE) {
if (value instanceof Number) {
Number number = (Number) value;
size = number.intValue();
if (size == number.floatValue()) {
count++;
}
}
}
}
Class<?> type = font.getClass();
if (count == clone.size()) {
return new Expression(font, type, "new", new Object[]{family, style, size});
}
if (type == Font.class) {
return new Expression(font, type, "getFont", new Object[]{clone});
}
return new Expression(font, type, "new", new Object[]{Font.getFont(clone)});
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Font font = (Font) oldInstance;
int count = 0;
String family = null;
int style = Font.PLAIN;
int size = 12;
Map basic = font.getAttributes();
Map clone = new HashMap(basic.size());
for (Object key : basic.keySet()) {
Object value = basic.get(key);
if (value != null) {
clone.put(key, value);
}
if (key == TextAttribute.FAMILY) {
if (value instanceof String) {
count++;
family = (String) value;
}
}
else if (key == TextAttribute.WEIGHT) {
if (TextAttribute.WEIGHT_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.WEIGHT_BOLD.equals(value)) {
count++;
style |= Font.BOLD;
}
}
else if (key == TextAttribute.POSTURE) {
if (TextAttribute.POSTURE_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.POSTURE_OBLIQUE.equals(value)) {
count++;
style |= Font.ITALIC;
}
} else if (key == TextAttribute.SIZE) {
if (value instanceof Number) {
Number number = (Number) value;
size = number.intValue();
if (size == number.floatValue()) {
count++;
}
}
}
}
Class type = font.getClass();
if (count == clone.size()) {
return new Expression(font, type, "new", new Object[]{family, style, size});
}
if (type == Font.class) {
return new Expression(font, type, "getFont", new Object[]{clone});
}
return new Expression(font, type, "new", new Object[]{Font.getFont(clone)});
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Font font = (Font) oldInstance;
int count = 0;
String family = null;
int style = Font.PLAIN;
int size = 12;
Map<TextAttribute, ?> basic = font.getAttributes();
Map<TextAttribute, Object> clone = new HashMap<>(basic.size());
for (TextAttribute key : basic.keySet()) {
Object value = basic.get(key);
if (value != null) {
clone.put(key, value);
}
if (key == TextAttribute.FAMILY) {
if (value instanceof String) {
count++;
family = (String) value;
}
}
else if (key == TextAttribute.WEIGHT) {
if (TextAttribute.WEIGHT_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.WEIGHT_BOLD.equals(value)) {
count++;
style |= Font.BOLD;
}
}
else if (key == TextAttribute.POSTURE) {
if (TextAttribute.POSTURE_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.POSTURE_OBLIQUE.equals(value)) {
count++;
style |= Font.ITALIC;
}
} else if (key == TextAttribute.SIZE) {
if (value instanceof Number) {
Number number = (Number) value;
size = number.intValue();
if (size == number.floatValue()) {
count++;
}
}
}
}
Class<?> type = font.getClass();
if (count == clone.size()) {
return new Expression(font, type, "new", new Object[]{family, style, size});
}
if (type == Font.class) {
return new Expression(font, type, "getFont", new Object[]{clone});
}
return new Expression(font, type, "new", new Object[]{Font.getFont(clone)});
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Font font = (Font) oldInstance;
int count = 0;
String family = null;
int style = Font.PLAIN;
int size = 12;
Map<TextAttribute, ?> basic = font.getAttributes();
Map<TextAttribute, Object> clone = new HashMap<>(basic.size());
for (TextAttribute key : basic.keySet()) {
Object value = basic.get(key);
if (value != null) {
clone.put(key, value);
}
if (key == TextAttribute.FAMILY) {
if (value instanceof String) {
count++;
family = (String) value;
}
}
else if (key == TextAttribute.WEIGHT) {
if (TextAttribute.WEIGHT_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.WEIGHT_BOLD.equals(value)) {
count++;
style |= Font.BOLD;
}
}
else if (key == TextAttribute.POSTURE) {
if (TextAttribute.POSTURE_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.POSTURE_OBLIQUE.equals(value)) {
count++;
style |= Font.ITALIC;
}
} else if (key == TextAttribute.SIZE) {
if (value instanceof Number) {
Number number = (Number) value;
size = number.intValue();
if (size == number.floatValue()) {
count++;
}
}
}
}
Class<?> type = font.getClass();
if (count == clone.size()) {
return new Expression(font, type, "new", new Object[]{family, style, size});
}
if (type == Font.class) {
return new Expression(font, type, "getFont", new Object[]{clone});
}
return new Expression(font, type, "new", new Object[]{Font.getFont(clone)});
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Font font = (Font) oldInstance;
int count = 0;
String family = null;
int style = Font.PLAIN;
int size = 12;
Map<TextAttribute, ?> basic = font.getAttributes();
Map<TextAttribute, Object> clone = new HashMap<>(basic.size());
for (TextAttribute key : basic.keySet()) {
Object value = basic.get(key);
if (value != null) {
clone.put(key, value);
}
if (key == TextAttribute.FAMILY) {
if (value instanceof String) {
count++;
family = (String) value;
}
}
else if (key == TextAttribute.WEIGHT) {
if (TextAttribute.WEIGHT_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.WEIGHT_BOLD.equals(value)) {
count++;
style |= Font.BOLD;
}
}
else if (key == TextAttribute.POSTURE) {
if (TextAttribute.POSTURE_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.POSTURE_OBLIQUE.equals(value)) {
count++;
style |= Font.ITALIC;
}
} else if (key == TextAttribute.SIZE) {
if (value instanceof Number) {
Number number = (Number) value;
size = number.intValue();
if (size == number.floatValue()) {
count++;
}
}
}
}
Class<?> type = font.getClass();
if (count == clone.size()) {
return new Expression(font, type, "new", new Object[]{family, style, size});
}
if (type == Font.class) {
return new Expression(font, type, "getFont", new Object[]{clone});
}
return new Expression(font, type, "new", new Object[]{Font.getFont(clone)});
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Font font = (Font) oldInstance;
int count = 0;
String family = null;
int style = Font.PLAIN;
int size = 12;
Map<TextAttribute, ?> basic = font.getAttributes();
Map<TextAttribute, Object> clone = new HashMap<>(basic.size());
for (TextAttribute key : basic.keySet()) {
Object value = basic.get(key);
if (value != null) {
clone.put(key, value);
}
if (key == TextAttribute.FAMILY) {
if (value instanceof String) {
count++;
family = (String) value;
}
}
else if (key == TextAttribute.WEIGHT) {
if (TextAttribute.WEIGHT_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.WEIGHT_BOLD.equals(value)) {
count++;
style |= Font.BOLD;
}
}
else if (key == TextAttribute.POSTURE) {
if (TextAttribute.POSTURE_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.POSTURE_OBLIQUE.equals(value)) {
count++;
style |= Font.ITALIC;
}
} else if (key == TextAttribute.SIZE) {
if (value instanceof Number) {
Number number = (Number) value;
size = number.intValue();
if (size == number.floatValue()) {
count++;
}
}
}
}
Class<?> type = font.getClass();
if (count == clone.size()) {
return new Expression(font, type, "new", new Object[]{family, style, size});
}
if (type == Font.class) {
return new Expression(font, type, "getFont", new Object[]{clone});
}
return new Expression(font, type, "new", new Object[]{Font.getFont(clone)});
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Font font = (Font) oldInstance;
int count = 0;
String family = null;
int style = Font.PLAIN;
int size = 12;
Map<TextAttribute, ?> basic = font.getAttributes();
Map<TextAttribute, Object> clone = new HashMap<>(basic.size());
for (TextAttribute key : basic.keySet()) {
Object value = basic.get(key);
if (value != null) {
clone.put(key, value);
}
if (key == TextAttribute.FAMILY) {
if (value instanceof String) {
count++;
family = (String) value;
}
}
else if (key == TextAttribute.WEIGHT) {
if (TextAttribute.WEIGHT_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.WEIGHT_BOLD.equals(value)) {
count++;
style |= Font.BOLD;
}
}
else if (key == TextAttribute.POSTURE) {
if (TextAttribute.POSTURE_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.POSTURE_OBLIQUE.equals(value)) {
count++;
style |= Font.ITALIC;
}
} else if (key == TextAttribute.SIZE) {
if (value instanceof Number) {
Number number = (Number) value;
size = number.intValue();
if (size == number.floatValue()) {
count++;
}
}
}
}
Class<?> type = font.getClass();
if (count == clone.size()) {
return new Expression(font, type, "new", new Object[]{family, style, size});
}
if (type == Font.class) {
return new Expression(font, type, "getFont", new Object[]{clone});
}
return new Expression(font, type, "new", new Object[]{Font.getFont(clone)});
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Font font = (Font) oldInstance;
int count = 0;
String family = null;
int style = Font.PLAIN;
int size = 12;
Map<TextAttribute, ?> basic = font.getAttributes();
Map<TextAttribute, Object> clone = new HashMap<>(basic.size());
for (TextAttribute key : basic.keySet()) {
Object value = basic.get(key);
if (value != null) {
clone.put(key, value);
}
if (key == TextAttribute.FAMILY) {
if (value instanceof String) {
count++;
family = (String) value;
}
}
else if (key == TextAttribute.WEIGHT) {
if (TextAttribute.WEIGHT_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.WEIGHT_BOLD.equals(value)) {
count++;
style |= Font.BOLD;
}
}
else if (key == TextAttribute.POSTURE) {
if (TextAttribute.POSTURE_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.POSTURE_OBLIQUE.equals(value)) {
count++;
style |= Font.ITALIC;
}
} else if (key == TextAttribute.SIZE) {
if (value instanceof Number) {
Number number = (Number) value;
size = number.intValue();
if (size == number.floatValue()) {
count++;
}
}
}
}
Class<?> type = font.getClass();
if (count == clone.size()) {
return new Expression(font, type, "new", new Object[]{family, style, size});
}
if (type == Font.class) {
return new Expression(font, type, "getFont", new Object[]{clone});
}
return new Expression(font, type, "new", new Object[]{Font.getFont(clone)});
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Font font = (Font) oldInstance;
int count = 0;
String family = null;
int style = Font.PLAIN;
int size = 12;
Map<TextAttribute, ?> basic = font.getAttributes();
Map<TextAttribute, Object> clone = new HashMap<>(basic.size());
for (TextAttribute key : basic.keySet()) {
Object value = basic.get(key);
if (value != null) {
clone.put(key, value);
}
if (key == TextAttribute.FAMILY) {
if (value instanceof String) {
count++;
family = (String) value;
}
}
else if (key == TextAttribute.WEIGHT) {
if (TextAttribute.WEIGHT_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.WEIGHT_BOLD.equals(value)) {
count++;
style |= Font.BOLD;
}
}
else if (key == TextAttribute.POSTURE) {
if (TextAttribute.POSTURE_REGULAR.equals(value)) {
count++;
} else if (TextAttribute.POSTURE_OBLIQUE.equals(value)) {
count++;
style |= Font.ITALIC;
}
} else if (key == TextAttribute.SIZE) {
if (value instanceof Number) {
Number number = (Number) value;
size = number.intValue();
if (size == number.floatValue()) {
count++;
}
}
}
}
Class<?> type = font.getClass();
if (count == clone.size()) {
return new Expression(font, type, "new", new Object[]{family, style, size});
}
if (type == Font.class) {
return new Expression(font, type, "getFont", new Object[]{clone});
}
return new Expression(font, type, "new", new Object[]{Font.getFont(clone)});
}