LPS-27530 Copying BookmarksFolder export - import logic into new BookmarksFolderDataHandlerImpl (copy/paste)
LPS-27530 Applying changes to BookmarksFolderDataHandlerImpl according to the new environment
LPS-27530 Changing portlet logic to utilize the new BookmarksFolderDataHandlerImpl - more changes will come for entries
LPS-27530 Remove path method which became obsolete so far from BookmarksPortletDataHandlerImpl - will remove rest when not needed
LPS-27530 Remove redundant implements (extends already takes care of it)
LPS-27530 Let's follow the pattern of XyzStagedModelDataHandler (without the trailing Impl, and with the *StagedModelDatahandler")
LPS-27530 Don't we need to register it in the XML?
LPS-27530 Follow new pattern
LPS-27530 Abstract out logic into StagedModelDataHandlerUtil , will make future calls a lot cleaner.
LPS-27530 Rename methods *ModelData* to *StagedModel*, everything is data :) and reorder parameters so they match PortletDataHandler and existing *PortletDataHandler implementations -> should be (PortletDataContext, path, model), and (PortletDataContext, Element..., model). We can get around Element... not being the last parameter by making it an actual array.
LPS-27530 Propagate changes
LPS-27530 Propagate changes again, and now see how the helper method and the method we're calling is nearly identical, with the same parameter order. You can imagine what the next commit will be now.
LPS-27530 Remove redundant method
LPS-27530 Param names should match. The other ones are "element" and "elements", so rename "stagedModelElement" to "element"
LPS-27530 I don't like it that StagedModelDataHandlerUtil has one method that passes in "className" first instead of "portletDataContext". The implementation in BaseStagedModelDataHandler should never change since every model should have a "path" in its element. Moving the implementation into the static util class actually makes things cleaner in this case (generally it's a bad idea).
LPS-27530 Sort
LPS-27530 Apply new naming pattern, the only exception is DDLPortletDataHandlerImpl because it has an interface DDLPortletDataHandler that can be used by plugins.