Method to check if two fonts have the same contents
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@677028 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
2765285706
commit
775fa5ed25
@ -579,6 +579,31 @@ public class FontRecord
|
|||||||
result = prime * result + field_10_font_name_len;
|
result = prime * result + field_10_font_name_len;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Does this FontRecord have all the same font
|
||||||
|
* properties as the supplied FontRecord?
|
||||||
|
* Note that {@link #equals(Object)} will check
|
||||||
|
* for exact objects, while this will check
|
||||||
|
* for exact contents, because normally the
|
||||||
|
* font record's position makes a big
|
||||||
|
* difference too.
|
||||||
|
*/
|
||||||
|
public boolean sameProperties(FontRecord other) {
|
||||||
|
return
|
||||||
|
field_1_font_height == other.field_1_font_height &&
|
||||||
|
field_2_attributes == other.field_2_attributes &&
|
||||||
|
field_3_color_palette_index == other.field_3_color_palette_index &&
|
||||||
|
field_4_bold_weight == other.field_4_bold_weight &&
|
||||||
|
field_5_super_sub_script == other.field_5_super_sub_script &&
|
||||||
|
field_6_underline == other.field_6_underline &&
|
||||||
|
field_7_family == other.field_7_family &&
|
||||||
|
field_8_charset == other.field_8_charset &&
|
||||||
|
field_9_zero == other.field_9_zero &&
|
||||||
|
field_10_font_name_len == other.field_10_font_name_len &&
|
||||||
|
field_11_font_name.equals(other.field_11_font_name)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Only returns two for the same exact object -
|
* Only returns two for the same exact object -
|
||||||
|
@ -121,4 +121,21 @@ public class TestFontRecord
|
|||||||
for (int i = 0; i < data.length; i++)
|
for (int i = 0; i < data.length; i++)
|
||||||
assertEquals("At offset " + i, data[i], recordBytes[i+4]);
|
assertEquals("At offset " + i, data[i], recordBytes[i+4]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testSameProperties() throws Exception {
|
||||||
|
FontRecord f1 = new FontRecord(new TestcaseRecordInputStream((short)0x31, (short)data.length, data));
|
||||||
|
FontRecord f2 = new FontRecord(new TestcaseRecordInputStream((short)0x31, (short)data.length, data));
|
||||||
|
|
||||||
|
assertTrue(f1.sameProperties(f2));
|
||||||
|
|
||||||
|
f2.setFontName("Arial2");
|
||||||
|
assertFalse(f1.sameProperties(f2));
|
||||||
|
f2.setFontName("Arial");
|
||||||
|
assertTrue(f1.sameProperties(f2));
|
||||||
|
|
||||||
|
f2.setFontHeight((short)11);
|
||||||
|
assertFalse(f1.sameProperties(f2));
|
||||||
|
f2.setFontHeight((short)0xc8);
|
||||||
|
assertTrue(f1.sameProperties(f2));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user