//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); }
//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); }