You are here

API changes

To maximize code reuse and minimize incompatibility, I work hard to ensure that the APIs rarely change. The core API has been fairly stable for some years now, but has finally required a bit of tinkering.

  1. The adapter pattern is now used extensively throughout the system and should be used instead of instanceof checks when you want a particular slice/instance of an object that you are referencing as an interface. All theoretic objects and their symbolic/subsymbolic components use this pattern.
  2. The ICondition, IAction, and IProduction.instantiateAll() contracts have changed slightly. No longer are variables stored in a Map<String,Object>, but instead a new class, VariableBindings. This allows us to backtrack the source of a variable binding. This is really useful for the optimized conflict resolution.
  3. A deletion event has been added to the declarative module, but the default listener is unaffected.

If you only extend abstract or base classes already provided by the architecture, you should be fine.