Changeset 706

Show
Ignore:
Timestamp:
01/27/06 10:24:02 (3 years ago)
Author:
mfenniak
Message:

Introduce PdfObject? base object for all generic types. Add eq and ne to IndirectObject?.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pypdf/trunk/pyPdf/generic.py

    r703 r706  
    7676            return NumberObject.readFromStream(stream) 
    7777 
    78  
    79 class BooleanObject(object): 
     78class PdfObject(object): 
     79    def getObject(self): 
     80        """Resolves indirect references.""" 
     81        return self 
     82 
     83 
     84class BooleanObject(PdfObject): 
    8085    def __init__(self, value): 
    8186        self.value = value 
     
    98103 
    99104 
    100 class ArrayObject(list): 
     105class ArrayObject(list, PdfObject): 
    101106    def writeToStream(self, stream): 
    102107        stream.write("[") 
     
    126131 
    127132 
    128 class IndirectObject(object): 
     133class IndirectObject(PdfObject): 
    129134    def __init__(self, idnum, generation, pdf): 
    130135        self.idnum = idnum 
     
    132137        self.pdf = pdf 
    133138 
     139    def getObject(self): 
     140        return self.pdf.getObject(self).getObject() 
     141 
    134142    def __repr__(self): 
    135143        return "IndirectObject(%r, %r)" % (self.idnum, self.generation) 
     144 
     145    def __eq__(self, other): 
     146        return ( 
     147            other != None and 
     148            isinstance(other, IndirectObject) and 
     149            self.idnum == other.idnum and 
     150            self.generation == other.generation and 
     151            self.pdf is other.pdf 
     152            ) 
     153 
     154    def __ne__(self, other): 
     155        return not self.__eq__(other) 
    136156 
    137157    def writeToStream(self, stream): 
     
    161181 
    162182 
    163 class FloatObject(float): 
     183class FloatObject(float, PdfObject): 
    164184    def writeToStream(self, stream): 
    165185        stream.write(repr(self)) 
    166186 
    167187 
    168 class NumberObject(int): 
     188class NumberObject(int, PdfObject): 
    169189    def __init__(self, value): 
    170190        int.__init__(self, value) 
     
    188208 
    189209 
    190 class StringObject(str): 
     210class StringObject(str, PdfObject): 
    191211    def writeToStream(self, stream): 
    192212        stream.write("(") 
     
    255275 
    256276 
    257 class NameObject(str): 
     277class NameObject(str, PdfObject): 
    258278    delimiterCharacters = "(", ")", "<", ">", "[", "]", "{", "}", "/", "%" 
    259279 
     
    277297 
    278298 
    279 class DictionaryObject(dict): 
     299class DictionaryObject(dict, PdfObject): 
    280300    def __init__(self): 
    281301        pass