Adrian,

The ApacheFopFactory also handles some stuff like fopPath, fop config file, 
base fonts defaults, etc.

Such attributes should be tied to the FopFactory. They certainly are not 
attributes of a Worker class.

The point of having a FopFactory class distinct from a Worker class is to cleanly encapsulate Factory-related attributes inside a single entity. If we start putting Factory-related attributes into the Worker class, we'd have a Worker that is overworked with a gigantic scope of maybe these 2 things:

1. Manage setup and calls to the Factory.

2. Manage Factory attributes.

The singleton thing can be achieved with a static member "fopFactory" inside the Worker. The FopFactory must be a singleton in OFBiz, true. But that's not the point here about separating Factory and Worker. It's about clean (and intuitive and logical) delegation of responsibilities to Factory and Worker.

Jonathon

Adrian Crum wrote:
Jacopo Cappellato wrote:
Adrian,

I've not followed the details of your design, and so sorry if my comment is out of scope here... the main reason for the ApacheFopFactory class is that it implements a singleton. Maybe you have already addressed this in another class but it was worth of a mention.

Jacopo

Yes, that is addressed in the new class. To summarize: I created a worker class that eliminates a lot of redundant FOP code, and that worker class includes the singleton FopFactory instance.

-Adrian



Reply via email to