Json.NET
Code Coverage Statistics for Source File

Newtonsoft.Json\Serialization\JsonSerializerProxy.cs

Symbol Coverage: 26.25% (21 of 80)

Branch Coverage: 18.92% (7 of 37)

Cyclomatic Complexity Avg: 1.09 Max:2

Code Lines: 51


L V Source
1
#region License
2
// Copyright (c) 2007 James Newton-King
3
//
4
// Permission is hereby granted, free of charge, to any person
5
// obtaining a copy of this software and associated documentation
6
// files (the "Software"), to deal in the Software without
7
// restriction, including without limitation the rights to use,
8
// copy, modify, merge, publish, distribute, sublicense, and/or sell
9
// copies of the Software, and to permit persons to whom the
10
// Software is furnished to do so, subject to the following
11
// conditions:
12
//
13
// The above copyright notice and this permission notice shall be
14
// included in all copies or substantial portions of the Software.
15
//
16
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
// OTHER DEALINGS IN THE SOFTWARE.
24
#endregion
25

  
26
using System;
27
using System.Runtime.Serialization.Formatters;
28
using Newtonsoft.Json.Utilities;
29
using System.Runtime.Serialization;
30

  
31
namespace Newtonsoft.Json.Serialization
32
{
33
  internal class JsonSerializerProxy : JsonSerializer
34
  {
35
    private readonly JsonSerializerInternalReader _serializerReader;
36
    private readonly JsonSerializerInternalWriter _serializerWriter;
37
    private readonly JsonSerializer _serializer;
38

  
39
    public override event EventHandler<ErrorEventArgs> Error
40
    {
41
 0
      add { _serializer.Error += value; }
42
 0
      remove { _serializer.Error -= value; }
43
    }
44

  
45
    public override IReferenceResolver ReferenceResolver
46
    {
47
 4
      get { return _serializer.ReferenceResolver; }
48
 0
      set { _serializer.ReferenceResolver = value; }
49
    }
50

  
51
    public override JsonConverterCollection Converters
52
    {
53
 0
      get { return _serializer.Converters; }
54
    }
55

  
56
    public override DefaultValueHandling DefaultValueHandling
57
    {
58
 0
      get { return _serializer.DefaultValueHandling; }
59
 0
      set { _serializer.DefaultValueHandling = value; }
60
    }
61

  
62
    public override IContractResolver ContractResolver
63
    {
64
 0
      get { return _serializer.ContractResolver; }
65
 0
      set { _serializer.ContractResolver = value; }
66
    }
67

  
68
    public override MissingMemberHandling MissingMemberHandling
69
    {
70
 0
      get { return _serializer.MissingMemberHandling; }
71
 0
      set { _serializer.MissingMemberHandling = value; }
72
    }
73

  
74
    public override NullValueHandling NullValueHandling
75
    {
76
 0
      get { return _serializer.NullValueHandling; }
77
 0
      set { _serializer.NullValueHandling = value; }
78
    }
79

  
80
    public override ObjectCreationHandling ObjectCreationHandling
81
    {
82
 0
      get { return _serializer.ObjectCreationHandling; }
83
 0
      set { _serializer.ObjectCreationHandling = value; }
84
    }
85

  
86
    public override ReferenceLoopHandling ReferenceLoopHandling
87
    {
88
 0
      get { return _serializer.ReferenceLoopHandling; }
89
 0
      set { _serializer.ReferenceLoopHandling = value; }
90
    }
91

  
92
    public override PreserveReferencesHandling PreserveReferencesHandling
93
    {
94
 0
      get { return _serializer.PreserveReferencesHandling; }
95
 0
      set { _serializer.PreserveReferencesHandling = value; }
96
    }
97

  
98
    public override TypeNameHandling TypeNameHandling
99
    {
100
 0
      get { return _serializer.TypeNameHandling; }
101
 0
      set { _serializer.TypeNameHandling = value; }
102
    }
103

  
104
    public override FormatterAssemblyStyle TypeNameAssemblyFormat
105
    {
106
 0
      get { return _serializer.TypeNameAssemblyFormat; }
107
 0
      set { _serializer.TypeNameAssemblyFormat = value; }
108
    }
109

  
110
    public override ConstructorHandling ConstructorHandling
111
    {
112
 0
      get { return _serializer.ConstructorHandling; }
113
 0
      set { _serializer.ConstructorHandling = value; }
114
    }
115

  
116
    public override SerializationBinder Binder
117
    {
118
 0
      get { return _serializer.Binder; }
119
 0
      set { _serializer.Binder = value; }
120
    }
121

  
122
    public override StreamingContext Context
123
    {
124
 0
      get { return _serializer.Context; }
125
 0
      set { _serializer.Context = value; }
126
    }
127

  
128
 64
    public JsonSerializerProxy(JsonSerializerInternalReader serializerReader)
129
    {
130
 64
      ValidationUtils.ArgumentNotNull(serializerReader, "serializerReader");
131

  
132
 64
      _serializerReader = serializerReader;
133
 64
      _serializer = serializerReader.Serializer;
134
 64
    }
135

  
136
 85
    public JsonSerializerProxy(JsonSerializerInternalWriter serializerWriter)
137
    {
138
 85
      ValidationUtils.ArgumentNotNull(serializerWriter, "serializerWriter");
139

  
140
 85
      _serializerWriter = serializerWriter;
141
 85
      _serializer = serializerWriter.Serializer;
142
 85
    }
143

  
144
    internal override object DeserializeInternal(JsonReader reader, Type objectType)
145
    {
146
 20
      if (_serializerReader != null)
147
 20
        return _serializerReader.Deserialize(reader, objectType);
148
      else
149
 0
        return _serializer.Deserialize(reader, objectType);
150
 20
    }
151

  
152
    internal override void PopulateInternal(JsonReader reader, object target)
153
    {
154
 6
      if (_serializerReader != null)
155
 6
        _serializerReader.Populate(reader, target);
156
      else
157
 0
        _serializer.Populate(reader, target);
158
 6
    }
159

  
160
    internal override void SerializeInternal(JsonWriter jsonWriter, object value)
161
    {
162
 39
      if (_serializerWriter != null)
163
 39
        _serializerWriter.Serialize(jsonWriter, value);
164
      else
165
 0
        _serializer.Serialize(jsonWriter, value);
166
 39
    }
167
  }
168
}