public function addOperation(Operation $operation)
 {
     $this->operations[$operation->getOperation()->getName()] = $operation;
 }
 public function onBindingOperation(BindingOperationEvent $event)
 {
     $operation = new Operation($event->getOperation());
     if ($message = $event->getOperation()->getInput()) {
         $operation->setInput(new OperationMessage($message));
     }
     if ($message = $event->getOperation()->getOutput()) {
         $operation->setOutput(new OperationMessage($message));
     }
     $skip = true;
     foreach ($event->getNode()->childNodes as $node) {
         if ($node->namespaceURI == self::SOAP_NS && $node->localName == 'operation') {
             $skip = false;
             if ($node->getAttribute("soapAction")) {
                 $operation->setAction($node->getAttribute("soapAction"));
             }
             if ($node->getAttribute("style")) {
                 $operation->setStyle($node->getAttribute("style"));
             }
         }
     }
     $service = $this->getServiceByBinding($event->getOperation()->getBinding());
     if ($service && !$skip) {
         $this->operations[spl_object_hash($event->getOperation())] = $operation;
         $service->addOperation($operation);
     }
 }