/***************************************************************************
                            kde_NodeIterator.cpp -  description
                             -------------------
    begin                : Wed Feb  6 15:12:26 2002
    copyright            : (C) 2000-2001 Lost Highway Ltd. All rights reserved.
    email                : Lost_Highway@tipitina.demon.co.uk
    generated by         : duke@tipitina on Wed Feb  6 15:12:26 2002, using kalyptus 0.9.
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This library is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU Library General Public License as       *
 *   published by the Free Software Foundation; either version 2 of the    *
 *   License, or (at your option) any later version.                       *
 *                                                                         *
 ***************************************************************************/

extern "C" {
#include "kde_NodeIterator.h"
}

#include <dom/dom2_traversal.h>

class NodeIteratorBridge : public DOM::NodeIterator
{
public:
	NodeIteratorBridge() : NodeIterator() {}
	NodeIteratorBridge(const NodeIterator& other) : NodeIterator(other) {}
	~NodeIteratorBridge() {}
};

kde_NodeIterator * kde_new_NodeIterator(){
	return (kde_NodeIterator *) new NodeIteratorBridge();
}
kde_NodeIterator * kde_new_NodeIterator1(kde_NodeIterator* other){
	return (kde_NodeIterator *) new NodeIteratorBridge((DOM::NodeIterator&)* (DOM::NodeIterator*)other);
}
void kde_del_NodeIterator( kde_NodeIterator* p ){
	delete (NodeIteratorBridge*) p;
}
kde_DOMNode* kde_NodeIterator_root( kde_NodeIterator* instPointer){
	return (kde_DOMNode*)new DOM::Node(((NodeIteratorBridge*)instPointer)->root());
}
unsigned long kde_NodeIterator_whatToShow( kde_NodeIterator* instPointer){
	return (unsigned long) ((NodeIteratorBridge*)instPointer)->whatToShow();
}
kde_NodeFilter* kde_NodeIterator_filter( kde_NodeIterator* instPointer){
	return (kde_NodeFilter*)new DOM::NodeFilter(((NodeIteratorBridge*)instPointer)->filter());
}
int kde_NodeIterator_expandEntityReferences( kde_NodeIterator* instPointer){
	return (int) ((NodeIteratorBridge*)instPointer)->expandEntityReferences();
}
kde_DOMNode* kde_NodeIterator_nextNode( kde_NodeIterator* instPointer){
	return (kde_DOMNode*)new DOM::Node(((NodeIteratorBridge*)instPointer)->nextNode());
}
kde_DOMNode* kde_NodeIterator_previousNode( kde_NodeIterator* instPointer){
	return (kde_DOMNode*)new DOM::Node(((NodeIteratorBridge*)instPointer)->previousNode());
}
void kde_NodeIterator_detach( kde_NodeIterator* instPointer){
	((NodeIteratorBridge*)instPointer)->detach();
	return;
}
//kde_NodeIteratorImpl* kde_NodeIterator_handle( kde_NodeIterator* instPointer){
//	return (kde_NodeIteratorImpl*) ((NodeIteratorBridge*)instPointer)->handle();
//}
int kde_NodeIterator_isNull( kde_NodeIterator* instPointer){
	return (int) ((NodeIteratorBridge*)instPointer)->isNull();
}
