docs: def setUpMethods(self, port):
          '''set up all methods representing the port operations.
          Parameters:
              port -- Port that defines the operations.
          '''
          assert isinstance(port, WSDLTools.Port), \
              'expecting WSDLTools.Port not: ' %type(port)
  
          binding = port.getBinding()
          portType = port.getPortType()
          service = port.getService()
          s = self._services[service.name]
          for bop in binding.operations:
              try:
                  op = portType.operations[bop.name]
              except KeyError, ex:
                  raise WsdlGeneratorError,\
                      'Port(%s) PortType(%s) missing operation(%s) defined in Binding(%s)' \
                      %(port.name, portType.name, op.name, binding.name)
  
              soap_action = wsaction_in = wsaction_out = None
              if op.input is not None:
                  wsaction_in = op.getInputAction()
              if op.output is not None:
                  wsaction_out = op.getOutputAction()
  
              for ext in bop.extensions:
                  if isinstance(ext, WSDLTools.SoapOperationBinding) is False: continue
                  soap_action = ext.soapAction
                  if not soap_action: break
                  if wsaction_in is None: break
                  if wsaction_in == soap_action: break
                  if self.strict is False:
                      warnings.warn(\
                          'Port(%s) operation(%s) in Binding(%s) soapAction(%s) != WS-Action(%s)' \
                           %(port.name, op.name, binding.name, soap_action, wsaction_in),
                      )
                      break
                  raise WsdlGeneratorError,\
                      'Port(%s) operation(%s) in Binding(%s) soapAction(%s) MUST match WS-Action(%s)' \
                       %(port.name, op.name, binding.name, soap_action, wsaction_in)
  
              method_name = self.getMethodName(op.name)
  
              m = s.newMethod()
              print >>m, '%sdef %s(self, ps, address):' %(self.getIndent(level=1), method_name)
              
              msgin_name = msgout_name = None
              msgin,msgout = op.getInputMessage(),op.getOutputMessage()
              if msgin is not None: 
                  msgin_name = TextProtect(msgin.name)
              if msgout is not None: 
                  msgout_name = TextProtect(msgout.name)
          
              indent = self.getIndent(level=2)
              for l in self.createMethodBody(msgin_name, msgout_name):
                  print >>m, indent + l
  
              print >>m, ''
              print >>m, '%ssoapAction[\'%s\'] = \'%s\'' %(self.getIndent(level=1), wsaction_in, method_name)
              print >>m, '%swsAction[\'%s\'] = \'%s\'' %(self.getIndent(level=1), method_name, wsaction_out)
              print >>m, '%sroot[(%s.typecode.nspname,%s.typecode.pname)] = \'%s\'' \
                       %(self.getIndent(level=1), msgin_name, msgin_name, method_name)