NVelocity/Runtime/Parser/Node/ASTMap.cs

(完整代码) 1KB

namespace NVelocity.Runtime.Parser.Node
{
	using System;
	using System.Collections;
	using Context;

	/// <summary>
	/// AST Node for creating a map / dictionary.
	/// This class was originally generated from Parset.jjt.
	/// </summary>
	/// <version>$Id: ASTMap.cs,v 1.2 2004/12/27 05:50:11 corts Exp $</version>
	public class ASTMap : SimpleNode
	{
		public ASTMap(int id) : base(id)
		{
		}

		public ASTMap(Parser p, int id) : base(p, id)
		{
		}

		/// <summary>
		/// Accept the visitor. 
		/// </summary>
		public override Object Accept(IParserVisitor visitor, Object data)
		{
			return visitor.Visit(this, data);
		}

		/// <summary>
		/// Evaluate the node.
		/// </summary>
		public override Object Value(IInternalContextAdapter context)
		{
			int size = ChildrenCount;

			IDictionary objectMap = new Hashtable();

			for(int i = 0; i < size; i += 2)
			{
				SimpleNode keyNode = (SimpleNode) GetChild(i);
				SimpleNode valueNode = (SimpleNode) GetChild(i + 1);

				Object key = (keyNode == null ? null : keyNode.Value(context));
				Object value = (valueNode == null ? null : valueNode.Value(context));

				objectMap.Add(key, value);
			}

			return objectMap;
		}
	}
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。