} // getChar()

        public NInteger getInt(string key)
        {
            object obj = get(key);

            if (obj == null)
            {
                return(null);
            }
            return(NumberComparator.toNumber(obj).asInt());
        } // getInt()
        } // select()

        protected object createOperand(string token, SelectItem leftSelectItem, bool searchSelectItems)
        {
            if (token.Equals("NULL", StringComparison.CurrentCultureIgnoreCase))
            {
                return(null);
            }

            if (token.StartsWith("'") && token.EndsWith("'") && token.Length > 2)
            {
                string stringOperand = token.Substring(1, token.Length - 1);
                //[J2N] replaceAll <=>  Replace
                stringOperand = stringOperand.Replace("\\\\'", "'");
                return(stringOperand);
            }

            if (searchSelectItems)
            {
                SelectItem selectItem = findSelectItem(token, false);
                if (selectItem != null)
                {
                    return(selectItem);
                }
            }

            ColumnType expectedColumnType = leftSelectItem.getExpectedColumnType();
            object     result             = null;

            if (expectedColumnType == null)
            {
                // We're assuming number here, but it could also be boolean or a
                // time based type. But anyways, this should not happen since
                // expected column type should be available.
                result = NumberComparator.toNumber(token);
            }
            else if (expectedColumnType.isBoolean())
            {
                result = BooleanComparator.toBoolean(token);
            }
            //    else if (expectedColumnType.isTimeBased())
            //    {
            //        result = FormatHelper.parseSqlTime(expectedColumnType, token);
            //    }
            //    else
            //    {
            //        result = NumberComparator.toNumber(token);
            //    }

            //    if (result == null)
            //    {
            //        // shouldn't happen since only "NULL" is parsed as null.
            //        throw new QueryParserException("Could not parse operand: " + token);
            //    }

            return(result);
        } // createOperand()