Ejemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="collection"></param>
 /// <returns></returns>
 public override bool AddAll(ICollection <E> collection)
 {
     if (0 == collection.Count || this == collection)
     {
         return(false);
     }
     if (collection is EnumSet <E> )
     {
         EnumSet <E> set = (EnumSet <E>)collection;
         if (!IsValidType(set.elementClass))
         {
             throw new Exception("ClassCastException");
         }
         HugeEnumSet <E> hugeSet       = (HugeEnumSet <E>)set;
         bool            addSuccessful = false;
         for (int i = 0; i < bits.Length; i++)
         {
             oldBits  = bits[i];
             bits[i] |= hugeSet.bits[i];
             if (oldBits != bits[i])
             {
                 addSuccessful = true;
                 size          = size - Int64Helper.BitCount(oldBits)
                                 + Int64Helper.BitCount(bits[i]);
             }
         }
         return(addSuccessful);
     }
     return(base.AddAll(collection));
 }
Ejemplo n.º 2
0
 public HugeEnumSetIterator(HugeEnumSet <E> outer)
 {
     this.outer      = outer;
     unProcessedBits = new long[outer.bits.Length];
     Array.Copy(outer.bits, 0, unProcessedBits, 0, outer.bits.Length);
     bitsPosition = unProcessedBits.Length;
     FindNextNoneZeroPosition(0);
     if (bitsPosition == unProcessedBits.Length)
     {
         canProcess = false;
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="collection"></param>
 /// <returns></returns>
 public override bool ContainsAll(ICollection <E> collection)
 {
     if (collection.Count == 0)
     {
         return(true);
     }
     if (collection is HugeEnumSet <E> )
     {
         HugeEnumSet <E> set = (HugeEnumSet <E>)collection;
         if (IsValidType(set.elementClass))
         {
             for (int i = 0; i < bits.Length; i++)
             {
                 if ((bits[i] & set.bits[i]) != set.bits[i])
                 {
                     return(false);
                 }
             }
             return(true);
         }
     }
     return(!(collection is EnumSet <E>) && base.ContainsAll(collection));
 }