protected boolean analyzeForNonContainment(Command command) { if (command instanceof AddCommand) { return isNonContainment(((AddCommand)command).getFeature()); } else if (command instanceof SetCommand) { return isNonContainment(((SetCommand)command).getFeature()); } else if (command instanceof CommandWrapper) { return analyzeForNonContainment(((CommandWrapper)command).getCommand()); } else if (command instanceof CompoundCommand) { for (Command childCommand : ((CompoundCommand)command).getCommandList()) { if (analyzeForNonContainment(childCommand)) { return true; } } } return false; }