public boolean matches(ValueEval x) {if (x instanceof BlankEval) {switch(getCode()) {case CmpOp.NONE:case CmpOp.EQ:return _value.length() == 0;case CmpOp.NE:return _value.length() != 0;}return false;}if(!(x instanceof StringEval)) {return false;}String testedValue = ((StringEval) x).getStringValue();if (testedValue.length() < 1 && _value.length() < 1) {switch(getCode()) {case CmpOp.NONE: return true;case CmpOp.EQ:   return false;case CmpOp.NE:   return true;}return false;}if (_pattern != null) {return evaluate(_pattern.matcher(testedValue).matches());}return evaluate(testedValue.compareToIgnoreCase(_value));}

public override bool Matches(ValueEval x){if (x is BlankEval){switch (_operator.Code){case CmpOp.NONE:case CmpOp.EQ:return _value.Length == 0;case CmpOp.NE:return _value.Length != 0;}return false;}if (!(x is StringEval)){return false;}String testedValue = ((StringEval)x).StringValue;if ((testedValue.Length < 1 && _value.Length < 1)){switch (_operator.Code){case CmpOp.NONE: return true;case CmpOp.EQ: return false;case CmpOp.NE: return true;}return false;}if (_pattern != null){return Evaluate(_pattern.IsMatch(testedValue));}return Evaluate(string.Compare(testedValue, _value, StringComparison.CurrentCultureIgnoreCase));}
