/*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * copyright (C) 2004-2007 * * Umbrello UML Modeller Authors * ***************************************************************************/ /* This code generated by: * Author : thomas * Date : Wed Sep 26 2003 */ // own header #include "xmlelementcodeblock.h" // qt/kde includes #include // local includes #include "xmlcodecomment.h" #include "../attribute.h" #include "../codedocument.h" // Constructors/Destructors // XMLElementCodeBlock::XMLElementCodeBlock ( CodeDocument * parentDoc, const TQString & nodeName, const TQString & comment) : HierarchicalCodeBlock(parentDoc) { init(parentDoc, nodeName, comment); } XMLElementCodeBlock::~XMLElementCodeBlock ( ) { } // // Methods // /** * Save the XMI representation of this object */ void XMLElementCodeBlock::saveToXMI ( TQDomDocument & doc, TQDomElement & root ) { TQDomElement blockElement = doc.createElement( "xmlelementblock" ); setAttributesOnNode(doc, blockElement); root.appendChild( blockElement ); } /** * load params from the appropriate XMI element node. */ void XMLElementCodeBlock::loadFromXMI ( TQDomElement & root ) { setAttributesFromNode(root); } /** set attributes of the node that represents this class * in the XMI document. */ void XMLElementCodeBlock::setAttributesOnNode ( TQDomDocument & doc, TQDomElement & docElement) { // superclass call HierarchicalCodeBlock::setAttributesOnNode(doc,docElement); // now set local attributes/fields docElement.setAttribute("nodeName",getNodeName()); } /** set the class attributes of this object from * the passed element node. */ void XMLElementCodeBlock::setAttributesFromNode ( TQDomElement & root) { // superclass call HierarchicalCodeBlock::setAttributesFromNode(root); // now set local attributes setNodeName(root.attribute("nodeName","UNKNOWN")); } // Accessor methods // void XMLElementCodeBlock::setNodeName (const TQString &name) { m_nodeName = name; } TQString XMLElementCodeBlock::getNodeName () { return m_nodeName; } void XMLElementCodeBlock::addAttribute (UMLAttribute * at) { m_attList.append(at); } UMLAttributeList * XMLElementCodeBlock::getAttributeList() { return & m_attList; } // Other methods // /** * update the start and end text for this ownedhierarchicalcodeblock. */ void XMLElementCodeBlock::updateContent ( ) { TQString endLine = getNewLineEndingChars(); TQString nodeName = getNodeName(); // Now update START/ENDING Text TQString startText = '<' + nodeName; TQString endText = ""; UMLAttributeList * alist = getAttributeList(); for (UMLAttribute *at = alist->first(); at; at=alist->next()) { if(at->getInitialValue().isEmpty()) kWarning()<<" XMLElementCodeBlock : cant print out attribute that lacks an initial value"<getName()+"=\""); startText.append(at->getInitialValue()+"\""); } } // now set close of starting/ending node, the style depending on whether we have child text or not if(getTextBlockList()->count()) { startText.append(">"); endText = "'; } else { startText.append("/>"); endText = ""; } setStartText(startText); setEndText(endText); } void XMLElementCodeBlock::init (CodeDocument *parentDoc, const TQString &nodeName, const TQString &comment) { setComment(new XMLCodeComment(parentDoc)); getComment()->setText(comment); m_nodeName = nodeName; updateContent(); } #include "xmlelementcodeblock.moc"