IPluginModelBase - represents the state of the data (is the data loaded, is it in sync, get the timestamp, etc). IPluginModel - like the IPluginModelBase, this represents that state of the data. The different being that IPluginModel contains data about plug-in's (or bundles). IFragmentModel - like the IPluginModelBase, this represents that state of the data. The different being that IFragmentModel contains data about fragments.
- IPluginBase - represents an object which stores data that is used in both plug-ins or fragments
- IPlugin - represents an object which stores data for a plug-in
- IFragment - represents an object which stores data for a fragment.
All the above models have a "Bundle" equivalent for models with manifests. For instance, IFragmentModel has IBundleFragmentModel.
Rules of Thumb
- So, when looking at a class, if the class has "Model" in the name, it represents not the data from the file, but the state of the data in the file (isLoaded())
- If the class name has "Base", it is a parent class used to contain functions for both fragment and plug-in models
- If it has Bundle in the name, it represents the object used for MANIFEST.MF files. Contains the same information as the non-bundle equivalent. Many contain bundle specific information (ie. getManifestHeader())