void *NclPresentationControlParser::posCompileSwitch( DOMElement *parentElement, void *parentObject) { wclog << "posCompileSwitch" << endl; DOMNodeList *elementNodeList; int i, size; DOMNode *node; void *elementObject; elementNodeList = parentElement->getChildNodes(); size = elementNodeList->getLength(); for (i = 0; i < size; i++) { node = elementNodeList->item(i); if (node->getNodeType() == DOMNode::ELEMENT_NODE && XMLString::compareIString( ((DOMElement*)node)->getTagName(), XMLString::transcode("switchPort")) == 0) { elementObject = getInterfacesParser()->parseSwitchPort( (DOMElement*)node, parentObject); if (elementObject != NULL) { addSwitchPortToSwitch(parentObject, elementObject); } } } return parentObject; }
void *NclStructureParser::parseBody( DOMElement *parentElement, void *objGrandParent) { void *parentObject; DOMNodeList *elementNodeList; int i, size; DOMNode *node; DOMElement *element; string elementTagName; void *elementObject; parentObject = createBody(parentElement, objGrandParent); if (parentObject == NULL) { return NULL; } elementNodeList = parentElement->getChildNodes(); size = elementNodeList->getLength(); for (i = 0; i < size; i++) { node = elementNodeList->item(i); if(node->getNodeType()==DOMNode::ELEMENT_NODE){ element = (DOMElement*)node; elementTagName = XMLString::transcode(element->getTagName()); if (XMLString::compareIString( elementTagName.c_str(), "media")==0) { elementObject = getComponentsParser()->parseMedia( element, parentObject); if (elementObject != NULL) { addMediaToBody(parentObject, elementObject); } } else if (XMLString::compareIString( elementTagName.c_str(), "context")==0) { elementObject = getComponentsParser()->parseContext( element, parentObject); if (elementObject != NULL) { addContextToBody(parentObject, elementObject); } } else if (XMLString::compareIString( elementTagName.c_str(), "switch")==0) { elementObject = getPresentationControlParser()-> parseSwitch(element, parentObject); if (elementObject != NULL) { addSwitchToBody(parentObject, elementObject); } } } } for (i = 0; i < size; i++) { node = elementNodeList->item(i); if (node->getNodeType()==DOMNode::ELEMENT_NODE && XMLString::compareIString(((DOMElement*)node)-> getTagName(), XMLString::transcode("property"))==0) { elementObject = getInterfacesParser()->parseProperty( (DOMElement*)node, parentObject); if (elementObject != NULL) { addPropertyToBody(parentObject, elementObject); } } } return parentObject; }