You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			99 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| // Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
 | |
| 
 | |
| namespace System.Json
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Provide data for the <see cref="System.Json.JsonValue.Changing"/> and <see cref="System.Json.JsonValue.Changed"/> events.
 | |
|     /// </summary>
 | |
|     public class JsonValueChangeEventArgs : EventArgs
 | |
|     {
 | |
|         private JsonValue child;
 | |
|         private JsonValueChange change;
 | |
|         private int index;
 | |
|         private string key;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Initializes a new instance of the <see cref="System.Json.JsonValueChangeEventArgs"/> class for
 | |
|         /// changes in a <see cref="System.Json.JsonArray"/>.
 | |
|         /// </summary>
 | |
|         /// <param name="child">The <see cref="System.Json.JsonValue"/> instance which will be or has been modified.</param>
 | |
|         /// <param name="change">The type of change of the <see cref="System.Json.JsonValue"/> event.</param>
 | |
|         /// <param name="index">The index of the element being changed in a <see cref="System.Json.JsonArray"/>.</param>
 | |
|         public JsonValueChangeEventArgs(JsonValue child, JsonValueChange change, int index)
 | |
|         {
 | |
|             if (index < 0)
 | |
|             {
 | |
|                 throw new ArgumentOutOfRangeException("index", RS.Format(Properties.Resources.ArgumentMustBeGreaterThanOrEqualTo, index, 0));
 | |
|             }
 | |
| 
 | |
|             this.child = child;
 | |
|             this.change = change;
 | |
|             this.index = index;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Initializes a new instance of the <see cref="System.Json.JsonValueChangeEventArgs"/> class for
 | |
|         /// changes in a <see cref="System.Json.JsonObject"/>.
 | |
|         /// </summary>
 | |
|         /// <param name="child">The <see cref="System.Json.JsonValue"/> instance which will be or has been modified.</param>
 | |
|         /// <param name="change">The type of change of the <see cref="System.Json.JsonValue"/> event.</param>
 | |
|         /// <param name="key">The key of the element being changed in a <see cref="System.Json.JsonObject"/>.</param>
 | |
|         public JsonValueChangeEventArgs(JsonValue child, JsonValueChange change, string key)
 | |
|         {
 | |
|             if (change != JsonValueChange.Clear)
 | |
|             {
 | |
|                 if (key == null)
 | |
|                 {
 | |
|                     throw new ArgumentNullException("key");
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             this.child = child;
 | |
|             this.change = change;
 | |
|             index = -1;
 | |
|             this.key = key;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the child which will be or has been modified.
 | |
|         /// </summary>
 | |
|         /// <remarks><p>This property is <code>null</code> for <see cref="System.Json.JsonValueChange.Clear"/> event types
 | |
|         /// raised by <see cref="System.Json.JsonValue"/> instances.</p>
 | |
|         /// <p>For <see cref="System.Json.JsonValueChange">Replace</see> events, this property contains the new value in
 | |
|         /// the <see cref="System.Json.JsonValue.Changing"/> event, and the old value (the one being replaced) in the
 | |
|         /// <see cref="System.Json.JsonValue.Changed"/> event.</p></remarks>
 | |
|         public JsonValue Child
 | |
|         {
 | |
|             get { return child; }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the type of change.
 | |
|         /// </summary>
 | |
|         public JsonValueChange Change
 | |
|         {
 | |
|             get { return change; }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the index in the <see cref="System.Json.JsonArray"/> where the change happened, or
 | |
|         /// <code>-1</code> if the change happened in a <see cref="System.Json.JsonValue"/> of a different type.
 | |
|         /// </summary>
 | |
|         public int Index
 | |
|         {
 | |
|             get { return index; }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the key in the <see cref="System.Json.JsonObject"/> where the change happened, or
 | |
|         /// <code>null</code> if the change happened in a <see cref="System.Json.JsonValue"/> of a different type.
 | |
|         /// </summary>
 | |
|         /// <remarks>This property can also be <code>null</code> if the event type is
 | |
|         /// <see cref="System.Json.JsonValueChange">Clear</see>.</remarks>
 | |
|         public string Key
 | |
|         {
 | |
|             get { return key; }
 | |
|         }
 | |
|     }
 | |
| }
 |