How to best deal with XSLFTextParagraph, XSSFTextParagraph and XDDFTextParagraph?

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

How to best deal with XSLFTextParagraph, XSSFTextParagraph and XDDFTextParagraph?

Alain FAGOT BÉAREZ
Hi,

Currently I am trying to find a path between maintaining some source
compatibility and throwing it completely away.

To better illustrate my concerns, please take a look at the latest
commit on my working branch:
https://github.com/cuali/poi/commit/dc6523f1df00fd10c11eef863c6c9a24e45e9905

On one hand, I break code compatibility renaming *etLineSpacing to
*etLineSpacingValue in order to merge these functions into
XDDFTextParagraph:
https://github.com/cuali/poi/commit/dc6523f1df00fd10c11eef863c6c9a24e45e9905#diff-e99644263dc7f4a47e813d54a36c272be278fa8e39c85d4ce4c4357f5223d674R280

On the other hand, I introduce bridges between legacy enumeration and
the XDDF enumeration:
https://github.com/cuali/poi/commit/dc6523f1df00fd10c11eef863c6c9a24e45e9905#diff-d6d7d40b89c121304c594a27abcd97e36a5e479d6aa87f500145412dfe29b680R52-R76

In this effort, I am dancing between the constraints of existing common
interface between HSLFTextParagraph and XSLFTextParagraph on one side,
and duplicated code, which I mostly copied into XDDFTextParagraph in the
past years, in XSLFTextParagraph and XSSFTextParagraph on the other
side.
The origin of the whole XDDF package is due to the fact that both XSLF
and XSSF use the same underlying drawingml schema to represent text
bodies,
but two distinct implementations had been derived for text bodies in
slides and in spreadsheets before I joined the project.

Maybe the right approach would be to simply throw away both XSLF and
XSSF specific implementations and keep only the XDDFTextParagaph
instead?
But then, what would occur with the common interface shared between
HSLFTextParagraph and XSLFTextParagraph, when replacing with
XDDFTextParagaph?
Should it be extended to HSSFTextParagraph and XDDFTextParagaph as well?
I never touched any class on the H**F side of the force!

I would have liked to finish this code cleanup before the wrapping up of
the 5.0.0 release otherwise we would have yet another major break to
6.0.0 with that.

Could you provide some kind of sane advices?

Kind regards,
Alain FAGOT BÉAREZ

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]