https://issues.apache.org/bugzilla/show_bug.cgi?id=50703

           Summary: [PATCH] Parametrize PropertyCache
           Product: Fop
           Version: 1.1dev
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: fo tree
        AssignedTo: fop-dev@xmlgraphics.apache.org
        ReportedBy: adelme...@apache.org


Created an attachment (id=26590)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=26590)
proposed patch

Attached patch parametrizes fop.fo.properties.PropertyCache.
As a result, all the different public fetch() overloads can be rolled into one,
and suddenly this class seems to have the potential for more general usage. Any
class offering reliable implementations for equals() and hashCode() is now a
candidate to store its canonical instances in the cache.

The idiom becomes:

PropertyCache<Type> cache = new PropertyCache<Type>(Type.class);

The constructor parameter is still needed, as I could not immediately find a
way to derive the class name (for debugging) from the type parameter. Don't
know if there even is one... At any rate, the correspondence between
constructor and type parameter is enforced by the constructor, so it would not
be possible to write:

new PropertyCache<TypeA>(TypeB.class)

not even if TypeB is a subclass of TypeA.

If I judge correctly, applying this patch by itself should, at worst, cause a
few unchecked warnings to pop up in the fo.properties package. Locally, I have
already adapted all the properties that use it (and added a few new classes),
but I kept these changes out of the patch for now, to focus on the main change.

Suggestions welcome. Would it be useful outside of the fo.properties package as
well? Could it migrate to fop.util?

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Reply via email to