code: public boolean compare(Object o) {
  		if (!basicEquals(o))
  			return false;
  
  		QueryParameter that = (QueryParameter) o;
  
  		// compare sources to have the same select no matter of letter-case and
  		// white spaces
  		if (!StringUtil.equalsText(source, that.source))
  			return false;
  		if (!StringUtil.equalsText(defaultSource, that.defaultSource))
  			return false;
  
  		return true;
  	}
docs: functional comparison