public override void Skip(ObjectReader reader) { MemberValueType type = reader.PeekValueType(); if (type == MemberValueType.Object) { ReadStartObject(reader); } else if (type == MemberValueType.Array) { ReadStartArray(reader); } else if (type == MemberValueType.Primitive) { ReadPrimitiveValue(reader); reader.SkipPrimitiveValue(); } else { throw new NotSupportedException("Unsupported value type."); } }
public override bool ReadStartArray(ObjectReader reader) { reader.SetState(EndArrayValueState.State); if (reader.ReadStartArrayToken()) { // Start of a new array reader.PushState(StartArrayState.State); return true; } else { // No array (null) return false; } }
public override void ReadPrimitiveValue(ObjectReader reader) { reader.SetState(EndArrayValueState.State); }
public override void Skip(ObjectReader reader) { MoveToNextObjectMember(reader); }
public override bool ReadStartObject(ObjectReader reader) { reader.SetState(EndArrayValueState.State); return InitialState.State.ReadStartObject(reader); }
public override void ReadEndArray(ObjectReader reader) { reader.ReadEndArrayToken(); reader.PopState(); }
public virtual bool ReadStartArray( ObjectReader reader) { throw new InvalidOperationException(); }
public override void Skip(ObjectReader reader) { ReadStartObject(reader); }
public override void ReadPrimitiveValue(ObjectReader reader) { reader.SetState(MemberValueState.State); }
public abstract void Skip( ObjectReader reader);
public override bool ReadStartObject( ObjectReader reader) { if (reader.ReadStartObjectToken()) { // Start of a new object reader.PushState(StartObjectState.State); return true; } else { // No object (null) return false; } }
public virtual void ReadPrimitiveValue( ObjectReader reader) { throw new InvalidOperationException(); }
public virtual void ReadEndArray( ObjectReader reader) { throw new InvalidOperationException(); }
public virtual bool MoveToNextArrayValue( ObjectReader reader) { throw new InvalidOperationException(); }
public override bool MoveToNextArrayValue(ObjectReader reader) { // Check for the end of the array if (reader.ReadToNextArrayValue()) { reader.SetState(StartArrayValueState.State); return true; } else { reader.SetState(EndArrayState.State); return false; } }
public override bool MoveToNextObjectMember(ObjectReader reader) { // Skip the current value reader.SkipValue(); // Move to the next member return MemberValueState.State.MoveToNextObjectMember(reader); }
public override void Skip(ObjectReader reader) { MoveToNextArrayValue(reader); }
public override bool MoveToNextObjectMember(ObjectReader reader) { // Try to read the next member key if (reader.ReadNextObjectMemberKey()) { // Next member key reader.SetState(MemberKeyState.State); return true; } else { // No more members (end of object) reader.SetState(EndObjectState.State); return false; } }
public override void Skip(ObjectReader reader) { ReadEndArray(reader); }
public virtual bool MoveToNextObjectMember( ObjectReader reader) { throw new InvalidOperationException(); }