text: /**
  	* \file WdbeQModMdl1NPort.cpp
  	* API code for table TblWdbeQModMdl1NPort (implementation)
  	* \copyright (C) 2016-2020 MPSI Technologies GmbH
  	* \author Alexander Wirthmueller (auto-generation)
  	* \date created: 5 Dec 2020
    */
  // IP header --- ABOVE
  
  #include "WdbeQModMdl1NPort.h"
  
  using namespace std;
  using namespace Sbecore;
  using namespace Xmlio;
  
  /******************************************************************************
   class WdbeQModMdl1NPort
   ******************************************************************************/
  
  WdbeQModMdl1NPort::WdbeQModMdl1NPort(
  			const uint jnum
  			, const string stubRef
  		) {
  	this->jnum = jnum;
  	this->stubRef = stubRef;
  };
  
  bool WdbeQModMdl1NPort::readXML(
  			xmlXPathContext* docctx
  			, string basexpath
  			, bool addbasetag
  		) {
  	bool basefound;
  
  	if (addbasetag)
  		basefound = checkUclcXPaths(docctx, basexpath, basexpath, "WdbeQModMdl1NPort");
  	else
  		basefound = checkXPath(docctx, basexpath);
  
  	if (basefound) {
  		extractStringUclc(docctx, basexpath, "stubRef", "ref", stubRef);
  	};
  
  	return basefound;
  };
  
  /******************************************************************************
   class ListWdbeQModMdl1NPort
   ******************************************************************************/
  
  ListWdbeQModMdl1NPort::ListWdbeQModMdl1NPort() {
  };
  
  ListWdbeQModMdl1NPort::ListWdbeQModMdl1NPort(
  			const ListWdbeQModMdl1NPort& src
  		) {
  	nodes.resize(src.nodes.size(), NULL);
  	for (unsigned int i = 0; i < nodes.size(); i++) nodes[i] = new WdbeQModMdl1NPort(*(src.nodes[i]));
  };
  
  ListWdbeQModMdl1NPort& ListWdbeQModMdl1NPort::operator=(
  			const ListWdbeQModMdl1NPort& src
  		) {
  	nodes.resize(src.nodes.size(), NULL);
  	for (unsigned int i = 0; i < nodes.size(); i++) nodes[i] = new WdbeQModMdl1NPort(*(src.nodes[i]));
  
  	return *this;
  };
  
  ListWdbeQModMdl1NPort::~ListWdbeQModMdl1NPort() {
  	clear();
  };
  
  void ListWdbeQModMdl1NPort::clear() {
  	for (unsigned int i = 0; i < nodes.size(); i++) if (nodes[i]) delete nodes[i];
  	nodes.resize(0);
  };
  
  bool ListWdbeQModMdl1NPort::readXML(
  			xmlXPathContext* docctx
  			, string basexpath
  			, bool addbasetag
  		) {
  	bool basefound;
  
  	vector<unsigned int> ics;
  	vector<bool> shorttags;
  
  	WdbeQModMdl1NPort* rec = NULL;
  
  	string s;
  
  	if (addbasetag)
  		basefound = checkUclcXPaths(docctx, basexpath, basexpath, "ListWdbeQModMdl1NPort");
  	else
  		basefound = checkXPath(docctx, basexpath);
  
  	extractList(docctx, basexpath, "WdbeQModMdl1NPort", "row", "jnum", ics, shorttags);
  
  	clear();
  
  	for (unsigned int i = 0; i < ics.size(); i++) {
  		rec = new WdbeQModMdl1NPort(ics[i]);
  
  		if (shorttags[i]) s = basexpath + "/row[@jnum='" + to_string(ics[i]) + "']";
  		else s = basexpath + "/WdbeQModMdl1NPort[@jnum='" + to_string(ics[i]) + "']";
  
  		if (rec->readXML(docctx, s)) nodes.push_back(rec);
  		else delete rec;
  	};
  
  	return basefound;
  };
  