root / trunk / Libraries / Json40r2 / Source / Src / Newtonsoft.Json / JsonConverter.cs @ ed0be341
History | View | Annotate | Download (3.6 kB)
1 | d78cbf09 | Panagiotis Kanavos | #region License |
---|---|---|---|
2 | d78cbf09 | Panagiotis Kanavos | // Copyright (c) 2007 James Newton-King |
3 | d78cbf09 | Panagiotis Kanavos | // |
4 | d78cbf09 | Panagiotis Kanavos | // Permission is hereby granted, free of charge, to any person |
5 | d78cbf09 | Panagiotis Kanavos | // obtaining a copy of this software and associated documentation |
6 | d78cbf09 | Panagiotis Kanavos | // files (the "Software"), to deal in the Software without |
7 | d78cbf09 | Panagiotis Kanavos | // restriction, including without limitation the rights to use, |
8 | d78cbf09 | Panagiotis Kanavos | // copy, modify, merge, publish, distribute, sublicense, and/or sell |
9 | d78cbf09 | Panagiotis Kanavos | // copies of the Software, and to permit persons to whom the |
10 | d78cbf09 | Panagiotis Kanavos | // Software is furnished to do so, subject to the following |
11 | d78cbf09 | Panagiotis Kanavos | // conditions: |
12 | d78cbf09 | Panagiotis Kanavos | // |
13 | d78cbf09 | Panagiotis Kanavos | // The above copyright notice and this permission notice shall be |
14 | d78cbf09 | Panagiotis Kanavos | // included in all copies or substantial portions of the Software. |
15 | d78cbf09 | Panagiotis Kanavos | // |
16 | d78cbf09 | Panagiotis Kanavos | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
17 | d78cbf09 | Panagiotis Kanavos | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
18 | d78cbf09 | Panagiotis Kanavos | // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
19 | d78cbf09 | Panagiotis Kanavos | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
20 | d78cbf09 | Panagiotis Kanavos | // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
21 | d78cbf09 | Panagiotis Kanavos | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
22 | d78cbf09 | Panagiotis Kanavos | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
23 | d78cbf09 | Panagiotis Kanavos | // OTHER DEALINGS IN THE SOFTWARE. |
24 | d78cbf09 | Panagiotis Kanavos | #endregion |
25 | d78cbf09 | Panagiotis Kanavos | |
26 | d78cbf09 | Panagiotis Kanavos | using System; |
27 | d78cbf09 | Panagiotis Kanavos | using System.Collections.Generic; |
28 | d78cbf09 | Panagiotis Kanavos | using System.Text; |
29 | d78cbf09 | Panagiotis Kanavos | using Newtonsoft.Json.Utilities; |
30 | d78cbf09 | Panagiotis Kanavos | using Newtonsoft.Json.Schema; |
31 | d78cbf09 | Panagiotis Kanavos | |
32 | d78cbf09 | Panagiotis Kanavos | namespace Newtonsoft.Json |
33 | d78cbf09 | Panagiotis Kanavos | { |
34 | d78cbf09 | Panagiotis Kanavos | /// <summary> |
35 | d78cbf09 | Panagiotis Kanavos | /// Converts an object to and from JSON. |
36 | d78cbf09 | Panagiotis Kanavos | /// </summary> |
37 | d78cbf09 | Panagiotis Kanavos | public abstract class JsonConverter |
38 | d78cbf09 | Panagiotis Kanavos | { |
39 | d78cbf09 | Panagiotis Kanavos | /// <summary> |
40 | d78cbf09 | Panagiotis Kanavos | /// Writes the JSON representation of the object. |
41 | d78cbf09 | Panagiotis Kanavos | /// </summary> |
42 | d78cbf09 | Panagiotis Kanavos | /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param> |
43 | d78cbf09 | Panagiotis Kanavos | /// <param name="value">The value.</param> |
44 | d78cbf09 | Panagiotis Kanavos | /// <param name="serializer">The calling serializer.</param> |
45 | d78cbf09 | Panagiotis Kanavos | public abstract void WriteJson(JsonWriter writer, object value, JsonSerializer serializer); |
46 | d78cbf09 | Panagiotis Kanavos | |
47 | d78cbf09 | Panagiotis Kanavos | /// <summary> |
48 | d78cbf09 | Panagiotis Kanavos | /// Reads the JSON representation of the object. |
49 | d78cbf09 | Panagiotis Kanavos | /// </summary> |
50 | d78cbf09 | Panagiotis Kanavos | /// <param name="reader">The <see cref="JsonReader"/> to read from.</param> |
51 | d78cbf09 | Panagiotis Kanavos | /// <param name="objectType">Type of the object.</param> |
52 | d78cbf09 | Panagiotis Kanavos | /// <param name="existingValue">The existing value of object being read.</param> |
53 | d78cbf09 | Panagiotis Kanavos | /// <param name="serializer">The calling serializer.</param> |
54 | d78cbf09 | Panagiotis Kanavos | /// <returns>The object value.</returns> |
55 | d78cbf09 | Panagiotis Kanavos | public abstract object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer); |
56 | d78cbf09 | Panagiotis Kanavos | |
57 | d78cbf09 | Panagiotis Kanavos | /// <summary> |
58 | d78cbf09 | Panagiotis Kanavos | /// Determines whether this instance can convert the specified object type. |
59 | d78cbf09 | Panagiotis Kanavos | /// </summary> |
60 | d78cbf09 | Panagiotis Kanavos | /// <param name="objectType">Type of the object.</param> |
61 | d78cbf09 | Panagiotis Kanavos | /// <returns> |
62 | d78cbf09 | Panagiotis Kanavos | /// <c>true</c> if this instance can convert the specified object type; otherwise, <c>false</c>. |
63 | d78cbf09 | Panagiotis Kanavos | /// </returns> |
64 | d78cbf09 | Panagiotis Kanavos | public abstract bool CanConvert(Type objectType); |
65 | d78cbf09 | Panagiotis Kanavos | |
66 | d78cbf09 | Panagiotis Kanavos | /// <summary> |
67 | d78cbf09 | Panagiotis Kanavos | /// Gets the <see cref="JsonSchema"/> of the JSON produced by the JsonConverter. |
68 | d78cbf09 | Panagiotis Kanavos | /// </summary> |
69 | d78cbf09 | Panagiotis Kanavos | /// <returns>The <see cref="JsonSchema"/> of the JSON produced by the JsonConverter.</returns> |
70 | d78cbf09 | Panagiotis Kanavos | public virtual JsonSchema GetSchema() |
71 | d78cbf09 | Panagiotis Kanavos | { |
72 | d78cbf09 | Panagiotis Kanavos | return null; |
73 | d78cbf09 | Panagiotis Kanavos | } |
74 | d78cbf09 | Panagiotis Kanavos | |
75 | d78cbf09 | Panagiotis Kanavos | /// <summary> |
76 | d78cbf09 | Panagiotis Kanavos | /// Gets a value indicating whether this <see cref="JsonConverter"/> can read JSON. |
77 | d78cbf09 | Panagiotis Kanavos | /// </summary> |
78 | d78cbf09 | Panagiotis Kanavos | /// <value><c>true</c> if this <see cref="JsonConverter"/> can read JSON; otherwise, <c>false</c>.</value> |
79 | d78cbf09 | Panagiotis Kanavos | public virtual bool CanRead |
80 | d78cbf09 | Panagiotis Kanavos | { |
81 | d78cbf09 | Panagiotis Kanavos | get { return true; } |
82 | d78cbf09 | Panagiotis Kanavos | } |
83 | d78cbf09 | Panagiotis Kanavos | |
84 | d78cbf09 | Panagiotis Kanavos | /// <summary> |
85 | d78cbf09 | Panagiotis Kanavos | /// Gets a value indicating whether this <see cref="JsonConverter"/> can write JSON. |
86 | d78cbf09 | Panagiotis Kanavos | /// </summary> |
87 | d78cbf09 | Panagiotis Kanavos | /// <value><c>true</c> if this <see cref="JsonConverter"/> can write JSON; otherwise, <c>false</c>.</value> |
88 | d78cbf09 | Panagiotis Kanavos | public virtual bool CanWrite |
89 | d78cbf09 | Panagiotis Kanavos | { |
90 | d78cbf09 | Panagiotis Kanavos | get { return true; } |
91 | d78cbf09 | Panagiotis Kanavos | } |
92 | d78cbf09 | Panagiotis Kanavos | } |
93 | d78cbf09 | Panagiotis Kanavos | } |