
/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
 ***************************************************************************/

/*  This code generated by: 
 *      Author : thomas
 *      Date   : Wed Jun 18 2003
 */

#include "codeblock.h"
#include "codedocument.h"

#include "hierarchicalcodeblock.h"

// Constructors/Destructors
//  

CodeBlock::CodeBlock ( HierarchicalCodeBlock * hblock , const QString & body )
    : TextBlock ( hblock->getParentDocument(), body )
{
	initFields ( );
}

CodeBlock::CodeBlock ( CodeDocument * doc, const QString & body ) 
   : TextBlock ( doc, body ) 
{
	initFields( );
} 

CodeBlock::~CodeBlock ( ) { }

//  
// Methods
//  


// Accessor methods
//  


// Public attribute accessor methods
//  


/**
 * Set the value of m_contentType
 * specifies whether the content (text) of this object was generated by the code
 * generator or was supplied by the user.
 * @param new_var the new value of m_contentType
 */
void CodeBlock::setContentType ( ContentType new_var ) {
	m_contentType = new_var;
}

/**
 * Get the value of m_contentType
 * specifies whether the content (text) of this object was generated by the code
 * generator or was supplied by the user.
 * @return the value of m_contentType
 */
CodeBlock::ContentType CodeBlock::getContentType ( ) {
	return m_contentType;
}

/**
 * Get the value of m_dialog
 * @return the value of m_dialog
 */
/*
CodeBlockDialog * CodeBlock::getDialog ( ) {
	return m_dialog;
}
*/

// Other methods
//  

/**
 * Save the XMI representation of this object
 */
void CodeBlock::saveToXMI ( QDomDocument & doc, QDomElement & root ) {
	QDomElement blockElement = doc.createElement( "codeblock" );

	// set attributes
	setAttributesOnNode(doc, blockElement);

	root.appendChild( blockElement );
}

void CodeBlock::setAttributesOnNode( QDomDocument & doc, QDomElement & blockElement)
{

	// call super-class
	TextBlock::setAttributesOnNode(doc, blockElement);

	// local attributes
	if(m_contentType != AutoGenerated)
		blockElement.setAttribute("contentType",getContentType());

}

/**
 * load params from the appropriate XMI element node.
 */
void CodeBlock::loadFromXMI ( QDomElement & root ) {

	setAttributesFromNode(root);

}

void CodeBlock::setAttributesFromNode (QDomElement & elem) {

	// set attributes from the XMI in super-class 
	TextBlock::setAttributesFromNode(elem);

	// set local fields now
	setContentType(((ContentType) elem.attribute("contentType","0").toInt()));

}

void CodeBlock::setAttributesFromObject(TextBlock * obj)
{

	TextBlock::setAttributesFromObject(obj);

	CodeBlock * cb = dynamic_cast<CodeBlock*>(obj);
	if(cb) 
		setContentType(cb->getContentType());

}

void CodeBlock::initFields ( ) {
	m_contentType = AutoGenerated;
//	m_dialog = new CodeBlockDialog( );
}

#include "codeblock.moc"
