Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
newtyping [2017/04/14 08:58]
christian [Specifying the Attribute type]
newtyping [2017/10/12 14:09] (current)
christian [Implementation]
Line 1: Line 1:
 ====== PDF types in PDFtalk ====== ====== PDF types in PDFtalk ======
  
-A PDF consists of a network of objects which are connected through attributes of dictionaries or arrays. The PDF specifiction defines restrictions for which objects can be held by an attribute.+A PDF consists of a network of objects which are connected through their attributes. The PDF specifiction defines restrictions for what objects can be held by an attribute.
  
 The restrictions specify The restrictions specify
-  * which kind of object - its PDF type - including forms like ''Array of aType'' or ''Dictionary of aType''.+  * which type of object including forms like ''Array of aType'' or ''Dictionary of aType''.
   * whether it is or can be indirectly held by a reference   * whether it is or can be indirectly held by a reference
   * whether it is required or optional.   * whether it is required or optional.
Line 51: Line 51:
  
 The symbol in the declarations above is the PDF type name of the object. The symbol in the declarations above is the PDF type name of the object.
 +
 +===== PDF Object types =====
 +
 +The type hierarchy of PDF objects is shallow and oriented by the use of types in attributes, not by class membership. For example, there are no subtypes of Dictionary or Stream. 
 +
 +===== Implementation =====
 +
 +When PDF objects are read from a file, the are syntactically differentiated as primitive object (Number, String, Name, Boolean etc.) or as Array, Dictionary or Stream. These are raw unspecified objects.
 +
 +When such an object is assigned to an attribute of a Dictionary or Array with ''at:put:'', the types are checked and the raw object is specialized to a fitting subclass. The process can be explained best with a sequence diagram:
 +
 +{{:pdf:2017-04-13_typing_sequence.jpg?direct&200|}}
 +
 +(the picture has the wrong orientation...)
 +
 +(proper description to come...)
  • newtyping.1492153085.txt.gz
  • Last modified: 2017/04/14 08:58
  • by christian