DefaultTable.py revision 960280bbd6277b56be45595a050a720a49fd5917
132c10eecffb4923e0721c395e4b80fb732543f18Behdad Esfahbodfrom __future__ import print_function, division
27ed91eca1eaa96b79eae780778e89bb9ec44c1eeBehdad Esfahbodfrom fontTools.misc.py23 import *
37842e56b97ce677b83bdab09cda48bc2d89ac75aJust
47842e56b97ce677b83bdab09cda48bc2d89ac75aJustclass DefaultTable:
57842e56b97ce677b83bdab09cda48bc2d89ac75aJust
67842e56b97ce677b83bdab09cda48bc2d89ac75aJust	dependencies = []
77842e56b97ce677b83bdab09cda48bc2d89ac75aJust
87842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def __init__(self, tag):
9960280bbd6277b56be45595a050a720a49fd5917Behdad Esfahbod		self.tableTag = Tag(tag)
107842e56b97ce677b83bdab09cda48bc2d89ac75aJust
117842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def decompile(self, data, ttFont):
127842e56b97ce677b83bdab09cda48bc2d89ac75aJust		self.data = data
137842e56b97ce677b83bdab09cda48bc2d89ac75aJust
147842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def compile(self, ttFont):
157842e56b97ce677b83bdab09cda48bc2d89ac75aJust		return self.data
167842e56b97ce677b83bdab09cda48bc2d89ac75aJust
177842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def toXML(self, writer, ttFont):
18f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust		if hasattr(self, "ERROR"):
19f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust			writer.comment("An error occurred during the decompilation of this table")
20f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust			writer.newline()
21f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust			writer.comment(self.ERROR)
22f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust			writer.newline()
237842e56b97ce677b83bdab09cda48bc2d89ac75aJust		writer.begintag("hexdata")
247842e56b97ce677b83bdab09cda48bc2d89ac75aJust		writer.newline()
257842e56b97ce677b83bdab09cda48bc2d89ac75aJust		writer.dumphex(self.compile(ttFont))
267842e56b97ce677b83bdab09cda48bc2d89ac75aJust		writer.endtag("hexdata")
277842e56b97ce677b83bdab09cda48bc2d89ac75aJust		writer.newline()
287842e56b97ce677b83bdab09cda48bc2d89ac75aJust
293a9fd301808f5a8991ca9ac44028d1ecb22d307fBehdad Esfahbod	def fromXML(self, name, attrs, content, ttFont):
307842e56b97ce677b83bdab09cda48bc2d89ac75aJust		from fontTools.misc.textTools import readHex
317842e56b97ce677b83bdab09cda48bc2d89ac75aJust		from fontTools import ttLib
32180ace6a5ff1399ec53bc696e8bef7cce6eef39aBehdad Esfahbod		if name != "hexdata":
33cd5aad92f23737ff93a110d5c73d624658a28da8Behdad Esfahbod			raise ttLib.TTLibError("can't handle '%s' element" % name)
347842e56b97ce677b83bdab09cda48bc2d89ac75aJust		self.decompile(readHex(content), ttFont)
357842e56b97ce677b83bdab09cda48bc2d89ac75aJust
367842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def __repr__(self):
377842e56b97ce677b83bdab09cda48bc2d89ac75aJust		return "<'%s' table at %x>" % (self.tableTag, id(self))
387842e56b97ce677b83bdab09cda48bc2d89ac75aJust
397842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def __cmp__(self, other):
40ac1b4359467ca3deab03186a15eae1d55eb35567Behdad Esfahbod		if not isinstance(self, type(other)): return cmp(type(self), type(other))
410ba7aa7ab5153e6a490425dd0f859cc5947360f4Behdad Esfahbod		if self.__class__ != other.__class__: return cmp(self.__class__, other.__class__)
4296b321c8aea4dc64110d15a541c6f85152ae19cfBehdad Esfahbod
437842e56b97ce677b83bdab09cda48bc2d89ac75aJust		return cmp(self.__dict__, other.__dict__)
447842e56b97ce677b83bdab09cda48bc2d89ac75aJust
45