blob: 861e134b28467437f43b9e2893476183911ea8e5 [file] [log] [blame]
Behdad Esfahbod32c10ee2013-11-27 17:46:17 -05001from __future__ import print_function, division
Behdad Esfahbod7ed91ec2013-11-27 15:16:28 -05002from fontTools.misc.py23 import *
Just7842e561999-12-16 21:34:53 +00003
4class DefaultTable:
5
6 dependencies = []
7
8 def __init__(self, tag):
9 self.tableTag = tag
10
11 def decompile(self, data, ttFont):
12 self.data = data
13
14 def compile(self, ttFont):
15 return self.data
16
17 def toXML(self, writer, ttFont):
Justf8fd4772000-01-03 23:00:10 +000018 if hasattr(self, "ERROR"):
19 writer.comment("An error occurred during the decompilation of this table")
20 writer.newline()
21 writer.comment(self.ERROR)
22 writer.newline()
Just7842e561999-12-16 21:34:53 +000023 writer.begintag("hexdata")
24 writer.newline()
25 writer.dumphex(self.compile(ttFont))
26 writer.endtag("hexdata")
27 writer.newline()
28
Behdad Esfahbod3a9fd302013-11-27 03:19:32 -050029 def fromXML(self, name, attrs, content, ttFont):
Just7842e561999-12-16 21:34:53 +000030 from fontTools.misc.textTools import readHex
31 from fontTools import ttLib
Behdad Esfahbod180ace62013-11-27 02:40:30 -050032 if name != "hexdata":
Behdad Esfahbodcd5aad92013-11-27 02:42:28 -050033 raise ttLib.TTLibError("can't handle '%s' element" % name)
Just7842e561999-12-16 21:34:53 +000034 self.decompile(readHex(content), ttFont)
35
36 def __repr__(self):
37 return "<'%s' table at %x>" % (self.tableTag, id(self))
38
39 def __cmp__(self, other):
Behdad Esfahbodac1b4352013-11-27 04:15:34 -050040 if not isinstance(self, type(other)): return cmp(type(self), type(other))
Behdad Esfahbod0ba7aa72013-10-28 12:07:15 +010041 if self.__class__ != other.__class__: return cmp(self.__class__, other.__class__)
Behdad Esfahbod96b321c2013-08-17 11:11:22 -040042
Just7842e561999-12-16 21:34:53 +000043 return cmp(self.__dict__, other.__dict__)
44