/// <summary> /// Determines if this SXCM of T equals another SXCM of T /// </summary> public bool Equals(SXCM <T> other) { bool result = false; if (other != null) { result = base.Equals((PDV <T>)other) && other.Operator == this.Operator; } return(result); }
/// <summary> /// Translate this QSET to an SXPR /// </summary> /// <exception cref="T:System.InvalidOperationException">When a member of the set cannot be translated to an SXCM expression</exception> public SXPR <T> TranslateToSXPR() { SXPR <T> retVal = new SXPR <T>(); if (this.NullFlavor != null) { retVal.NullFlavor = this.NullFlavor.Clone() as CS <NullFlavor>; } else if (this is IEnumerable) { IEnumerator ienum = (this as IEnumerable).GetEnumerator(); while (ienum.MoveNext()) { IAny current = ienum.Current as IAny; if (current is QSET <T> ) { var sxpr = (current as QSET <T>).TranslateToSXPR(); sxpr.Operator = this.GetEquivalentSetOperator(); retVal.Add(sxpr); } else if (current is SXCM <T> ) { var sxcm = current.Clone() as SXCM <T>; sxcm.Operator = this.GetEquivalentSetOperator(); // This is a shallow clone, but that is ok since we only want to modify the SetOperator which is immutable retVal.Add(sxcm); } else if (current is T) { SXCM <T> sxcm = null; if (current is IImplicitInterval <T> ) { sxcm = (current as IImplicitInterval <T>).ToIVL(); } else { throw new InvalidOperationException("Cannot interpret the member of the set with type '{0}' as it cannot be converted to a union of interval"); } sxcm.Operator = this.GetEquivalentSetOperator(); retVal.Add(sxcm); } } } return(retVal); }
/// <summary> /// Remove an item from the collection /// </summary> public bool Remove(SXCM <T> item) { return(Terms.Remove(item)); }
/// <summary> /// Returns if the component collection contains the specified item /// </summary> public bool Contains(SXCM <T> item) { return(Terms.Contains(item)); }
/// <summary> /// Add an item to the component collection /// </summary> public void Add(SXCM <T> item) { Terms.Add(item); }
/// <summary> /// Insert an item /// </summary> public void Insert(int index, SXCM <T> item) { Terms.Insert(index, item); }
/// <summary> /// Index of an item in the component collection /// </summary> public int IndexOf(SXCM <T> item) { return(Terms.IndexOf(item)); }
/// <summary> /// Create a new instance of the GTS class with the specified <paramref name="hull"/> /// </summary> /// <param name="hull"></param> public GTS(SXCM <TS> hull) : base() { this.Hull = hull; }
/// <summary> /// Gets just the value type from the SXCM /// </summary> internal static T ToValueType(SXCM <T> value) { return(value.Value); }