@Override public void movePDP(PDP pdp, PDPGroup newGroup) throws PAPException { if (newGroup == null) { throw new NullPointerException("You must specify which group the PDP will belong to."); } PDPGroup currentGroup = this.getPDPGroup(pdp); if (currentGroup == null) { throw new PAPException("PDP must already belong to a group."); } if (currentGroup.equals(newGroup)) { logger.warn("Already in that group."); return; } if (currentGroup instanceof StdPDPGroup && newGroup instanceof StdPDPGroup) { if (((StdPDPGroup) currentGroup).removePDP(pdp)) { boolean result = ((StdPDPGroup) newGroup).addPDP(pdp); if (result) { // // Save the configuration // this.doSave(); } else { logger.error("Failed to add to new group, putting back into original group."); if (!((StdPDPGroup) currentGroup).removePDP(pdp)) { logger.error("Failed to put PDP back into original group."); } } } } else { String message = "Unknown PDP group class: " + newGroup.getClass().getCanonicalName() + " and " + currentGroup.getClass().getCanonicalName(); logger.warn(message); throw new PAPException(message); } }