コード例 #1
0
        // Constructors

        /// <summary>
        /// Initializes a new instance of this type.
        /// </summary>
        /// <param name="origin">Initial <see cref="Origin"/> property value.</param>
        public DifferentialTuple(Tuple origin)
        {
            ArgumentValidator.EnsureArgumentNotNull(origin, "origin");
            this.origin        = origin;
            difference         = null;
            backupedDifference = null;
        }
コード例 #2
0
 internal void BackupDifference()
 {
     if (difference != null)
     {
         backupedDifference = (DifferentialTuple)this.Clone();
     }
 }
コード例 #3
0
 /// <summary>
 /// Initializes a new instance of this type.
 /// </summary>
 /// <param name="origin">Initial <see cref="Origin"/> property value.</param>
 /// <param name="difference">Initial <see cref="Difference"/> property value.</param>
 /// <exception cref="ArgumentException">Tuple descriptors mismatch.</exception>
 public DifferentialTuple(Tuple origin, Tuple difference)
 {
     ArgumentValidator.EnsureArgumentNotNull(origin, "origin");
     if (difference != null && origin.Descriptor != difference.Descriptor)
     {
         throw new ArgumentException(
                   string.Format(Strings.ExInvalidTupleDescriptorExpectedDescriptorIs, origin.Descriptor),
                   "difference");
     }
     this.origin        = origin;
     this.difference    = difference;
     backupedDifference = null;
 }
コード例 #4
0
 internal void RestoreDifference()
 {
     if (backupedDifference != null)
     {
         origin.MergeWith(backupedDifference.Origin, MergeBehavior.PreferDifference);
         if (difference == null)
         {
             difference = backupedDifference.Difference.Clone();
         }
         else
         {
             difference.MergeWith(backupedDifference, 0, MergeBehavior.PreferDifference);
         }
         backupedDifference = null;
     }
 }
コード例 #5
0
 private DifferentialTuple(Tuple origin, Tuple difference, DifferentialTuple backupedDifference)
     : this(origin, difference)
 {
     this.backupedDifference = backupedDifference;
 }
コード例 #6
0
 internal void DropBackedUpDifference()
 {
     backupedDifference = null;
 }