@Override public void dispose() { super.dispose(); for (final IVariable v : variables.values()) { v.dispose(); } variables.clear(); for (final AspectStatement ac : aspects.values()) { ac.dispose(); } aspects.clear(); for (final ActionStatement ac : actions.values()) { ac.dispose(); } actions.clear(); for (final IStatement c : behaviors) { c.dispose(); } behaviors.clear(); macroSpecies = null; parentSpecies = null; // TODO dispose micro_species first??? microSpecies.clear(); }