private void parseValue(String value)
	{
		if(value == null) throw new IllegalArgumentException("value is null");
		srcValue = value.trim();
		resultValue = srcValue;
		
		isExpCalc = true;
		
		if(srcValue.equals("")){
			resultValue = "";
			cellType      = ValueType.STRING;
			expResultType = ValueType.STRING;
			return;
		}
		
		try 
		{
			resultValueLong = Long.parseLong(srcValue);
			cellType        = ValueType.LONG;
			expResultType   = ValueType.LONG;
		}
		catch (NumberFormatException e)
		{
			try
			{
				resultValueDouble = ParseValue.parseDouble(srcValue);
				cellType          = ValueType.DOUBLE;
				expResultType     = ValueType.DOUBLE;
			}
			catch (NumberFormatException e1)
			{
				// LOG.debug("srcValue = " + srcValue);
				if(srcValue.substring(0, 1).equals("="))
				{
					cellType = ValueType.EXPRESSION;
					
					try {
						isExpCalc = false;
						exp = new Expression(srcValue.substring(1));
						expResultType = ValueType.EXPRESSION;
					}
					catch (ExpressionException e2) {
						isExpCalc = true;
						resultValue = "#";
						expResultType = ValueType.STRING;
					}
				}
				else {
					cellType      = ValueType.STRING;
					expResultType = ValueType.STRING;
				}
			}
		}		
	}