File:  [parser3project] / parser3 / src / classes / xnode.h
Revision 1.25: download - view: text, annotated - select for diffs - revision graph
Fri Dec 16 10:15:12 2005 UTC (20 years, 6 months ago) by paf
Branches: MAIN
CVS tags: release_3_2_1, paf_left, HEAD
. started killing gdome

/** @file
	Parser: @b dnode methods class - MDnode class decl.

	Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com)
	Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
*/

#ifndef XNODE_H
#define XNODE_H

static const char * const IDENT_XNODE_H="$Date: 2005/12/16 10:15:12 $";

class MXnode: public Methoded {
public: // Value

	/// MXnode: +$const
	Value* get_element(const String& aname, Value& aself, bool looking_up) {
		// $method
		if(Value* result=Methoded::get_element(aname, aself, looking_up))
			return result;

		// $const
		if(Value* result=consts.get(aname))
			return result;
		
		return 0;
	}


public: // VStateless_class
	Value* create_new_value(Pool&, HashStringValue&) { 
		throw Exception("parser.runtime",
			0,
			"no constructors available, use CreateXXX DOM methods to create nodes instead"); 
	}

public:
	MXnode(const char* aname=0, VStateless_class* abase=0);

public: // Methoded
	bool used_directly() { return true; }

private:

	HashStringValue consts;
};

xmlNode& as_node(MethodParams& params, int index, const char* msg);
xmlChar* as_xmlchar(Request& r, MethodParams& params, int index, const char* msg);
xmlNs& pa_xmlMapNs(xmlDoc& doc, const xmlChar* href, const xmlChar* prefix);

#endif

E-mail: