handler = $handler; } public function geo(GeoMessage $message) { $message->validateInput(); $this->handler->geo($message); $message->validateOutput(); return $message->getResponse(); } public function regeo(RegeoMessage $message) { $message->validateInput(); $this->handler->regeo($message); $message->validateOutput(); return $message->getResponse(); } public function district(DistrictMessage $message) { $message->validateInput(); $this->handler->district($message); $message->validateOutput(); return $message->getResponse(); } public function ip(IpMessage $message) { $message->validateInput(); $this->handler->ip($message); $message->validateOutput(); return $message->getResponse(); } }