/** Creates a vehicle of specific Class based on the user input: A,B,C,E,S * @param String $className * @return Automobile */ public function createVehicle($inputVehicleClass) { $vehicleClass = ucfirst($inputVehicleClass); // return new Vehicle\AClass(); $vehicle = $vehicleClass . "Class"; switch ($vehicle) { case "AClass": return new Vehicle\AClass(); case "BClass": return new Vehicle\BClass(); case "CClass": return new Vehicle\CClass(); case "EClass": return new Vehicle\EClass(); case "SClass": return new Vehicle\SClass(); default: Helper::displayErrorMessage("The vehicle (" . $vehicle . ") couldn't be created."); return NULL; } }
/** * Adds multiple optional specifications to the Vehicle * @param Spec[] $optionalSpecsArray */ public function equipMultipleOptionalSpecs($optionalSpecsArray) { foreach ($optionalSpecsArray as $optionalSpec) { $specName = $optionalSpec->getNameSpec(); $isSpecAdded = array_key_exists($specName, $this->optionalSpecs); if (!$isSpecAdded) { $this->optionalSpecs[$specName] = $optionalSpec; } else { Helper::displayErrorMessage("The specification: " . $specName . " is already equipped"); } } }