DefaultTable.py revision 81acddadbd0384e105becc1eac292e50e21084a5
16683745b5156220ed1a44aab3315afb6c0ff73bbJens Axboefrom __future__ import print_function, division
2bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriacfrom fontTools.misc.py23 import *
3bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac
4bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriacclass DefaultTable(object):
567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
6bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac	dependencies = []
7bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac
8bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac	def __init__(self, tag):
9bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac		self.tableTag = Tag(tag)
10bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac
11bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac	def decompile(self, data, ttFont):
12bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac		self.data = data
13bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac
14bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac	def compile(self, ttFont):
15bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac		return self.data
16bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac
17bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac	def toXML(self, writer, ttFont, progress=None):
18bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac		if hasattr(self, "ERROR"):
19bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac			writer.comment("An error occurred during the decompilation of this table")
20bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac			writer.newline()
21bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac			writer.comment(self.ERROR)
22bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac			writer.newline()
23bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac		writer.begintag("hexdata")
24bf2e821a55d8aa3de1cda7288a0e22883110fdc6Cigy Cyriac		writer.newline()
2567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe		writer.dumphex(self.compile(ttFont))
2667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe		writer.endtag("hexdata")
27		writer.newline()
28
29	def fromXML(self, name, attrs, content, ttFont):
30		from fontTools.misc.textTools import readHex
31		from fontTools import ttLib
32		if name != "hexdata":
33			raise ttLib.TTLibError("can't handle '%s' element" % name)
34		self.decompile(readHex(content), ttFont)
35
36	def __repr__(self):
37		return "<'%s' table at %x>" % (self.tableTag, id(self))
38
39	def __eq__(self, other):
40		if type(self) != type(other):
41			raise TypeError("unordered types %s() < %s()", type(self), type(other))
42		return self.__dict__ == other.__dict__
43