Updates referencesource to .NET 4.7
[mono-project.git] / mcs / class / referencesource / System.Xml / System / Xml / Xslt / XsltArgumentList.cs
blobbc33f89cb3765a51e6930ef9ea0f17600bc83e31
1 //------------------------------------------------------------------------------
2 // <copyright file="XsltArgumentList.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 // </copyright>
5 // <owner current="true" primary="true">Microsoft</owner>
6 //------------------------------------------------------------------------------
8 using System.Collections;
9 using System.Security.Permissions;
11 namespace System.Xml.Xsl {
13 public abstract class XsltMessageEncounteredEventArgs : EventArgs {
14 public abstract string Message { get; }
17 public delegate void XsltMessageEncounteredEventHandler(object sender, XsltMessageEncounteredEventArgs e);
19 public class XsltArgumentList {
20 private Hashtable parameters = new Hashtable();
21 private Hashtable extensions = new Hashtable();
23 // Used for reporting xsl:message's during execution
24 internal XsltMessageEncounteredEventHandler xsltMessageEncountered = null;
26 public XsltArgumentList() {}
28 public object GetParam(string name, string namespaceUri) {
29 return this.parameters[new XmlQualifiedName(name, namespaceUri)];
32 public object GetExtensionObject(string namespaceUri) {
33 return this.extensions[namespaceUri];
36 public void AddParam(string name, string namespaceUri, object parameter) {
37 CheckArgumentNull(name , "name" );
38 CheckArgumentNull(namespaceUri, "namespaceUri");
39 CheckArgumentNull(parameter , "parameter" );
41 XmlQualifiedName qname = new XmlQualifiedName(name, namespaceUri);
42 qname.Verify();
43 this.parameters.Add(qname, parameter);
46 public void AddExtensionObject(string namespaceUri, object extension) {
47 CheckArgumentNull(namespaceUri, "namespaceUri");
48 CheckArgumentNull(extension , "extension" );
49 this.extensions.Add(namespaceUri, extension);
52 public object RemoveParam(string name, string namespaceUri) {
53 XmlQualifiedName qname = new XmlQualifiedName(name, namespaceUri);
54 object parameter = this.parameters[qname];
55 this.parameters.Remove(qname);
56 return parameter;
59 public object RemoveExtensionObject(string namespaceUri) {
60 object extension = this.extensions[namespaceUri];
61 this.extensions.Remove(namespaceUri);
62 return extension;
65 public event XsltMessageEncounteredEventHandler XsltMessageEncountered {
66 add {
67 xsltMessageEncountered += value;
69 remove {
70 xsltMessageEncountered -= value;
74 public void Clear() {
75 this.parameters.Clear();
76 this.extensions.Clear();
77 xsltMessageEncountered = null;
80 private static void CheckArgumentNull(object param, string paramName) {
81 if (param == null) {
82 throw new ArgumentNullException(paramName);