apicompatanamdw/compatanalysercmd/libraryanalyser/inc/xmlsaxHandler.hpp
author Maciej Seroka <maciejs@symbian.org>
Thu, 11 Nov 2010 14:03:20 +0000
changeset 26 26ffa9d5444d
parent 0 638b9c697799
permissions -rw-r--r--
Updated knownissues.xml - wk_45_2010
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     1
/*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     3
* All rights reserved.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     6
* which accompanies this distribution, and is available
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     8
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     9
* Initial Contributors:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    11
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    12
* Contributors:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    13
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    14
* Description: 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    15
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    16
*/
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    17
#include <xercesc/sax/HandlerBase.hpp>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    18
#include <xercesc/sax/AttributeList.hpp>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    19
#include <xercesc/util/PlatformUtils.hpp>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    20
#include "xmlstringtostlstring.hpp"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    21
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    22
#if !defined XMLSAXHANDLER
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    23
	#define  XMLSAXHANDLER
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    24
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    25
// Forward Reference
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    26
//class AttributeList;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    27
class XMLNode;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    28
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    29
// T - Domain Map
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    30
template<typename T>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    31
class XMLSAXHandler : public HandlerBase
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    32
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    33
	typedef T*	root;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    34
public:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    35
	XMLSAXHandler();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    36
	virtual ~XMLSAXHandler();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    37
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    38
	T& getDomainMap() { return dataMap; }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    39
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    40
	XMLNode& getRootElement() { return dataMap.root(); }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    41
	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    42
	// Handlers for the SAX DocumentHandler interface
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    43
	virtual void startElement(const XMLCh* const name, AttributeList& attributes);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    44
	virtual void characters(const XMLCh* const chars, const unsigned int length);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    45
	virtual void ignorableWhitespace(const XMLCh* const chars, const unsigned int length);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    46
	virtual void endElement(const XMLCh* const name);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    47
//	void ignoreElement(const XMLCh* const aName);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    48
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    49
private:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    50
	// Private data members
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    51
	T		dataMap;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    52
//	T name ;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    53
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    54
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    55
template<typename T>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    56
XMLSAXHandler<T>::XMLSAXHandler()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    57
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    58
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    59
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    60
template<typename T>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    61
XMLSAXHandler<T>::~XMLSAXHandler()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    62
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    63
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    64
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    65
//  SAXParser: Implementation of the SAX DocumentHandler interface
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    66
template<typename T>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    67
void XMLSAXHandler<T>::startElement(const XMLCh* const name, AttributeList&  attributes)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    68
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    69
	XMLStringToSTLString str(name);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    70
	const XMLCh* value = NULL;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    71
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    72
		int length = attributes.getLength();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    73
		for(int i=0;i<length;i++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    74
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    75
			value = attributes.getValue(i);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    76
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    77
		if (value)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    78
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    79
                        XMLStringToSTLString val(value);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    80
			dataMap.create(str.data(),val.data());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    81
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    82
		else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    83
			dataMap.create(str.data());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    84
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    85
//	}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    86
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    87
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    88
template<typename T>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    89
void XMLSAXHandler<T>::endElement(const XMLCh* const name)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    90
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    91
	XMLStringToSTLString str(name);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    92
	dataMap.add(str.data());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    93
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    94
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    95
template<typename T>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    96
void XMLSAXHandler<T>::characters(const XMLCh* const chars, const unsigned length)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    97
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    98
        XMLStringToSTLString str(chars);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    99
	dataMap.updateAttribute(str.data());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   100
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   101
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   102
template<typename T>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   103
void XMLSAXHandler<T>::ignorableWhitespace( const XMLCh* const chars, const unsigned int length)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   104
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   105
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   106
/*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   107
template<typename T>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   108
void XMLSAXHandler<T>::ignoreElement(const XMLCh* const aName)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   109
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   110
	name = aName;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   111
}*/
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   112
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   113
#endif // XMLSAXHANDLER