protected void compareRootDefinitions(RootModuleDefinition originalDefinition, RootModuleDefinition newDefinition, List<ModuleStateChange> transitions) {
//FIXME is this not assuming that new and original will only differ if a context location has been added?
if (!newDefinition.equals(originalDefinition) && newDefinition.containsAll(originalDefinition)) {
//new definition contains locations not in original definition
transitions.add(new ModuleStateChange(Transition.CONTEXT_LOCATIONS_ADDED, newDefinition));
checkNewAndOriginal(originalDefinition, newDefinition, transitions);
}
else if (!newDefinition.equals(originalDefinition) && originalDefinition.containsAll(newDefinition)) {
newDefinition.addContextLocations(originalDefinition);