Package Plugins

From CoreASM Wiki

Jump to: navigation, search

After some discussions we have the following framework for package plugins:

  • Package plugins implement org.coreasm.engine.plugin.PackagePlugin and provide a list of the names of the plugins they contain as a package.
  • All the listed plugins in a package must themselves be listed in the catalog (they must be loadable individually).
  • Loading of enclosed plugins occurs in org.coreasm.engine.Engine#loadSpecPlugins().
  • Engine#loadPlugin(p) is modified to prevent multiple loading of the same plugin.

Trident


Additionally, a number of services must be provided to external users of the Engine API to (optionally) make package plugins "invisible". These include:

  • an API to get the list/ordered multiset/set of plugins mentioned in a Specification (here package plugins would appear as such).
  • an API to get the list/ordered set of plugins loaded in a Specification (here package plugins would be hidden and replaced by their contents, recursively).
  • an API to inquire from a plugin whether it is a package plugin or not (possibly an instanceof is enough).
  • an API to inquire from a package plugin which plugins it contains.

Among other uses, one could imagine an IDE trying to provide tooltip help on a use line...

--Vincenzo 07:39, 29 September 2006 (PDT)

Personal tools