Porting example
Step 1 Choose an object to port
I randomly picked the Filter object e.g. XFilter in the helperapi ( of course you also want to make sure this object isn't already implemented in oovbaapi ). Browse the helperapi code to find where XFilter is implemented. It's implemented by FilterImpl.java and it expects to be initialised by an XAutoFilter implementation object AutoFilterImpl
so already an implementation not only for XFilter need to be provided but also and implementation for XAutoFilter as well.
looking at XAutoFilter.idl you see that there is a Filters() attribute/method that returns a Collection of Filters, so additionally an implementation of the XFilters object is needed. The XAutoFilter implementation is the key object that the others are accessed/provided from. Searching through the source code you find this is an attribute of the SheetImpl object
so, to summarize, after initially choosing one object to have a crack at porting, you actually need to provide implementations for the following interfaces
- XFilter
- XAutoFilter
- XFilters
and also you need to add a new attribute to return an XAutoFilter implementation
Step 2 Port the idl files
It's worth taking a look at the idl section in the porting notes and examples of the ported idl files
also modifications to existing files
- makefile.mk add new idl file
- XWorksheet.idl add new AutoFilter attribute
Step 3 Prepare and provide implementation code
It's probably an idea just start with a stub implementation and then build on that. Thats precisely what I will show here, once the stub implementation is in place you can get deeper into the implementation.