You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
4.2 KiB
167 lines
4.2 KiB
|
|
/***************************************************************************
|
|
* *
|
|
* 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 <uml-devel@uml.sf.net> *
|
|
***************************************************************************/
|
|
|
|
/* This code generated by:
|
|
* Author : thomas
|
|
* Date : Wed Sep 26 2003
|
|
*/
|
|
|
|
// own header
|
|
#include "xmlelementcodeblock.h"
|
|
|
|
// qt/kde includes
|
|
#include <kdebug.h>
|
|
|
|
// 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"<<endl;
|
|
else {
|
|
startText.append(" " +at->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 = "</" + nodeName + '>';
|
|
} 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"
|