diff -r 000000000000 -r 2e3d3ce01487 tzpcside/tzcompiler/Source/TZNode.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tzpcside/tzcompiler/Source/TZNode.cpp Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,88 @@ +// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// DST TZ Database Compiler +// +// + +#include "TZNode.h" +#include + +//============================================================================ +// CTZElement::~CTZElement +//============================================================================ +CTZElement::~CTZElement() + { + for (int i = 0; i < NodeList().size();++i) + { + delete NodeList()[i]; + } + } +//============================================================================ +// CTZElement::CheckNode +// Checks to see that the node actually contains information and is valid for +// assembly. Invalid nodes may be generated if a file contains a comment +// on a line beginning with empty tabs. If this happens, a node with empty +// tab elements will be generated. +//============================================================================ +bool CTZElement::CheckNode() const + { + char startChar; + int size = iNodeList.size(); + for (int x = 0; x < size;x++) + { + startChar = iNodeList[x]->iValue[0]; //First character of attribute + if ((startChar != '\t') && (startChar != KCharOlsonStartOfComment) && (startChar != ' ')) + { + return true; + } + } + return false; + } + +bool CTZAttribute::CheckNode() const + { + char startChar = iValue[0]; //First character of attribute + if ((startChar != '\t') && (startChar != KCharOlsonStartOfComment) && (startChar != ' ')) + { + return true; + } + return false; + } + +//============================================================================ +// CTZElement::AddAttribute +// Adds an attribute to the current node +//============================================================================ +void CTZElement::AddAttribute(const char* aValue) + { + CTZNode* aAttribute = new CTZAttribute(); + aAttribute->iParent = this; + aAttribute->iValue = aValue; + iNodeList.push_back(aAttribute); + } + +//============================================================================ +// CTZElement::AddChildElement +// Creates a new CTZElement as a child node of the current element. +//============================================================================ +CTZNode* CTZElement::CreateChildElement() + { + CTZElement* childElement = new CTZElement(); + childElement->iParent = this; + iNodeList.push_back(childElement); + return childElement; + } +//============================================================================ +// End of file +//============================================================================