From: William Victor Mote
The PLB handles loops through each attribute in the list, finds an appropriate "Maker" for it, then calls the Maker to convert the attribute value into a Property object of the correct type, and stores that Property in the PropertyList.
+The PLB loops through each attribute in the list, finds an appropriate "Maker" for it, then calls the Maker to convert the attribute value into a Property object of the correct type, and stores that Property in the PropertyList.
Because the properties defined in the standard are basically static, FOP currently builds the source code for the related Property classes from an XML data file. +All properties are specified in src/codegen/foproperties.xml. +The related classes are created automatically during the build process by applying an XSLT stylesheet to the foproperties.xml file.
In the properties xml files, one can define generic property @@ -350,16 +353,11 @@ the result is a Property object, and the actual value may be accessed
The Refinement step is part of reading and using the properties which may happen immediately or during the layout process.
+The Refinement step is part of reading and using the properties which may happen immediately or during the layout process. FOP does not currently use a separate Refinement process, but tends to handle refining steps as the FO Tree is built.
The Refined FO Tree is the result of the Refinement process.
All properties are specified in src/codegen/foproperties.xml. -The related classes are created automatically during the build process.
-The base class for all properties is fo.Property, and the base class for all the property makers is the inner class Property.Maker.