/** * Validates the properties and constructs thereby Objects for the later animation generation * * @param animationPropertieses * @param stringObjectHashtable * @return false if the properties are not valid * @throws IllegalArgumentException */ @Override public boolean validateInput( AnimationPropertiesContainer animationPropertieses, Hashtable<String, Object> stringObjectHashtable) throws IllegalArgumentException { lang = new AnimalScript( "Ad-hoc Optimized Vector Routing", "Sascha Bleidner, Jan David Nose", 1200, 800); lang.setStepMode(true); routeDiscoveries = (String[][]) stringObjectHashtable.get("StartandEndnodes"); Graph loadedGraph = (Graph) stringObjectHashtable.get("graph"); controller = new GUIController(lang, loadedGraph, translator, animationPropertieses); aodvGraph = new AODVGraph(controller.getAnimalGraph(), controller); for (String[] startEndNodes : routeDiscoveries) { if (startEndNodes.length != 2) { showErrorMessage(translator.translateMessage("errorMessageWrongNumberNodes")); return false; } else { AODVNode startNode = aodvGraph.getNode(startEndNodes[0]); AODVNode destinationNode = aodvGraph.getNode(startEndNodes[1]); if (startNode == null || !aodvGraph.containsNode(startNode)) { showErrorMessage(translator.translateMessage("errorMessageStartNodeNotFound")); return false; } else { if (destinationNode == null || !aodvGraph.containsNode(destinationNode)) { showErrorMessage(translator.translateMessage("errorMessageDestinationNodeNotFound")); return false; } } } } return true; }