Пример #1
0
 //Returns true if two tuples are the same and false otherwise
 public bool Equals(TupleClass tupler)
 {
     if (_size != tupler.Size)
     {
         return(false);
     }
     for (int i = 0; i < _size; i++)
     {
         ArrayList tuple = tupler.tuple;
         if (_tuple[i].GetType() != tuple[i].GetType())
         {
             return(false);
         }
         if ((_tuple[i].GetType() == typeof(System.String)) && (tuple[i].GetType() == typeof(System.String)))
         {
             if (!((string)_tuple[i]).Equals(((string)tuple[i])))
             {
                 return(false);
             }
             continue;
         }
         else
         {
             if (_tuple[i].GetType() == typeof(DADTestA) && tuple[i].GetType() == typeof(DADTestA))
             {
                 DADTestA tuplei = (DADTestA)_tuple[i];
                 DADTestA eli    = (DADTestA)tuple[i];
                 if (!tuplei.Equals(eli))
                 {
                     return(false);
                 }
             }
             else if (_tuple[i].GetType() == typeof(DADTestB) && tuple[i].GetType() == typeof(DADTestB))
             {
                 DADTestB tuplei = (DADTestB)_tuple[i];
                 DADTestB eli    = (DADTestB)tuple[i];
                 if (!tuplei.Equals(eli))
                 {
                     return(false);
                 }
             }
             else if (_tuple[i].GetType() == typeof(DADTestC) && tuple[i].GetType() == typeof(DADTestC))
             {
                 DADTestC tuplei = (DADTestC)_tuple[i];
                 DADTestC eli    = (DADTestC)tuple[i];
                 if (!tuplei.Equals(eli))
                 {
                     return(false);
                 }
             }
             else
             {
                 return(false);
             }
         }
     }
     return(true);
 }
Пример #2
0
 //returns true if two tuples match;
 //takes care of wildcards
 public bool Matches(TupleClass tupler)
 {
     if (_size != tupler.Size)
     {
         return(false);
     }
     for (int i = 0; i < _size; i++)
     {
         ArrayList tuple = tupler.tuple;
         //if request is null and we are seeing object
         if (tuple[i] == null && _tuple[i].GetType() != typeof(System.String))
         {
             continue;
         }
         //if request is not null, they are either both strings or both types/objects, false otherwise
         if (tuple[i] != null && !((tuple[i].GetType() == typeof(System.String)) && (_tuple[i].GetType() == typeof(System.String)) ||
                                   (tuple[i].GetType() != typeof(System.String)) && (_tuple[i].GetType() != typeof(System.String))))
         {
             return(false);
         }
         //if one is string the other is string
         if (_tuple[i].GetType() == typeof(System.String))
         {
             if (!matchStrs(_tuple[i], tuple[i]))
             {
                 return(false);
             }
         }
         else if (tuple[i] == typeof(DADTestA) && _tuple[i].GetType() == typeof(DADTestA))
         {
         }
         else if (tuple[i] == typeof(DADTestB) && _tuple[i].GetType() == typeof(DADTestB))
         {
         }
         else if (tuple[i] == typeof(DADTestC) && _tuple[i].GetType() == typeof(DADTestC))
         {
         }
         else if (tuple[i].GetType() == typeof(DADTestA) && _tuple[i].GetType() == typeof(DADTestA))
         {
             DADTestA tuplei = (DADTestA)tuple[i];
             DADTestA eli    = (DADTestA)_tuple[i];
             if (!tuplei.Equals(eli))
             {
                 return(false);
             }
         }
         else if (tuple[i].GetType() == typeof(DADTestB) && _tuple[i].GetType() == typeof(DADTestB))
         {
             DADTestB tuplei = (DADTestB)tuple[i];
             DADTestB eli    = (DADTestB)_tuple[i];
             if (!tuplei.Equals(eli))
             {
                 return(false);
             }
         }
         else if (tuple[i].GetType() == typeof(DADTestC) && _tuple[i].GetType() == typeof(DADTestC))
         {
             DADTestC tuplei = (DADTestC)tuple[i];
             DADTestC eli    = (DADTestC)_tuple[i];
             if (!tuplei.Equals(eli))
             {
                 return(false);
             }
         }
         else
         {
             return(false);
         }
     }
     return(true);
 }