示例#1
0
        public static bool AreEqual(SequencePath lhs, SequencePath rhs)
        {
            if (ReferenceEquals(lhs, null) && ReferenceEquals(rhs, null))
            {
                return(true);
            }
            if (ReferenceEquals(lhs, null) || ReferenceEquals(rhs, null))
            {
                return(false);
            }
            if (ReferenceEquals(lhs, rhs))
            {
                return(true);
            }

            var result = lhs.selectionRoot == rhs.selectionRoot &&
                         lhs.subElements.Count == rhs.subElements.Count;

            if (!result)
            {
                return(false);
            }

            for (int i = 0, n = lhs.subElements.Count; i < n; ++i)
            {
                result = result && SequencePathSubElement.AreEqual(lhs.subElements[i], rhs.subElements[i]);
            }

            return(result);
        }
示例#2
0
        public static bool AreEqual(SequencePathSubElement lhs, SequencePathSubElement rhs)
        {
            if (ReferenceEquals(lhs, null) && ReferenceEquals(rhs, null))
            {
                return(true);
            }
            if (ReferenceEquals(lhs, null) || ReferenceEquals(rhs, null))
            {
                return(false);
            }
            if (ReferenceEquals(lhs, rhs))
            {
                return(true);
            }

            return(lhs.trackInstanceID == rhs.trackInstanceID &&
                   lhs.trackHash == rhs.trackHash &&
                   lhs.clipIndex == rhs.clipIndex &&
                   lhs.clipHash == rhs.clipHash &&
                   lhs.subDirectorIndex == rhs.subDirectorIndex);
        }
示例#3
0
 public void AddSubSequence(ISequenceState state, IExposedPropertyTable resolver)
 {
     subElements.Add(SequencePathSubElement.Create(state, resolver));
 }