コード例 #1
0
 protected override void NodeEnd(JsonFormatContext context, string key, string leftKey, DeltaType type, NodeType nodeType, bool isLast)
 {
     if (context.Path.Count > 0)
     {
         context.Path.RemoveAt(context.Path.Count - 1);
     }
 }
コード例 #2
0
        protected override void Format(DeltaType type, JsonFormatContext context, JToken delta, JToken leftValue, string key, string leftKey, MoveDestination movedFrom)
        {
            switch (type)
            {
            case DeltaType.Added:
                FormatAdded(context, delta);
                break;

            case DeltaType.Node:
                FormatNode(context, delta, leftValue);
                break;

            case DeltaType.Modified:
                FormatModified(context, delta);
                break;

            case DeltaType.Deleted:
                FormatDeleted(context);
                break;

            case DeltaType.Moved:
                FormatMoved(context, delta);
                break;

            case DeltaType.Unknown:
            case DeltaType.Unchanged:
            case DeltaType.MoveDestination:
                break;

            case DeltaType.TextDiff:
                throw new InvalidOperationException("JSON RFC 6902 does not support TextDiff.");
            }
        }
コード例 #3
0
 private void FormatMoved(JsonFormatContext context, JToken delta)
 {
     context.PushMoveOp(delta[1].ToString());
 }
コード例 #4
0
 private void FormatDeleted(JsonFormatContext context)
 {
     context.PushCurrentOp(OperationTypes.Remove);
 }
コード例 #5
0
 private void FormatModified(JsonFormatContext context, JToken delta)
 {
     context.PushCurrentOp(OperationTypes.Replace, delta[1]);
 }
コード例 #6
0
 private void FormatAdded(JsonFormatContext context, JToken delta)
 {
     context.PushCurrentOp(OperationTypes.Add, delta[0]);
 }
コード例 #7
0
 private void FormatNode(JsonFormatContext context, JToken delta, JToken left)
 {
     FormatDeltaChildren(context, delta, left);
 }
コード例 #8
0
 protected override void RootEnd(JsonFormatContext context, DeltaType type, NodeType nodeType)
 {
 }
コード例 #9
0
 protected override void NodeBegin(JsonFormatContext context, string key, string leftKey, DeltaType type, NodeType nodeType, bool isLast)
 {
     context.Path.Add(leftKey);
 }
コード例 #10
0
 private void FormatDeleted(JsonFormatContext context, JToken delta)
 {
     context.PushCurrentOp(OperationTypes.Remove, delta[1]);
 }