We've got lots of freedom and independence, but you are never on your own when you encounter problems.
API
There are two sources of complexity in the design of the fmp plug-in: extensible metamodel and constraint propagation & resolution.
Overview of the API
- Metamodel - explains the metacircular design of the fmp metamodel
- Constraints - explains the use of the JavaBDD package for constraint propagation and conflict resolution
- Role Query - a utility class used to determine location of the element (i.e., model, metamodel, properties), element type (i.e., root feature, solitary feature, grouped feature) and property role (i.e., name, min occur, type)
- Model Navigation - a utility class used to navigate through a feature model tree
- Model Manipulation - a utility class implementing common operation on the feature model (i.e., copy, configure, remove, and support for direct editing).
- Commands - frequently used commands.
- Model access - accessing feature models without the fmp plug-in.


