CyberXML::Node *ActionRequest::getActionNode() {
  CyberXML::Node *bodyNode = getBodyNode();
  if (bodyNode == NULL)
    return NULL;
  if (bodyNode->hasNodes() == false)
    return NULL;
  return bodyNode->getNode(0);
}
示例#2
0
void Action::initArgumentList() {
  argumentList = new ArgumentList(true);
  argumentInList = new ArgumentList(false);
  argumentOutList = new ArgumentList(false);

  CyberXML::Node *serviceNode = getServiceNode();
  CyberXML::Node *argumentListNode = getActionNode()->getNode(ArgumentList::ELEM_NAME);
  if (serviceNode == NULL || argumentListNode == NULL)
    return;

  int nodeCnt = argumentListNode->getNNodes();
  for (int n = 0; n < nodeCnt; n++) {
    CyberXML::Node *argNode = argumentListNode->getNode(n);
    if (Argument::isArgumentNode(argNode) == false)
      continue;
    Argument *arg = new Argument(serviceNode, argNode);
    argumentList->add(arg);
    if (arg->isInDirection() == true) 
      argumentInList->add(arg);
    if (arg->isOutDirection() == true)
      argumentOutList->add(arg);
  } 
}