lcl )
lcl.toLocale( ) )
	private final void detectTypeChange( Object oValue )			throws IllegalArgumentException	{		if ( iDataType == UNKNOWN )		{			if ( oValue == null )			{				return;			}			else if ( oValue instanceof Number )			{				iDataType = NUMBER;			}			else if ( oValue instanceof BigDecimal )			{				iDataType = BIGDECIMAL;			}			else if ( oValue instanceof Date )			{				iDataType = DATE;			}			else if ( oValue instanceof Calendar )			{				iDataType = CALENDAR;			}			else if ( oValue instanceof String )			{				iDataType = TEXT;			}			else			{				iDataType = CUSTOM;			}		}		else		{			final int iExistingType = iDataType;			if ( oValue == null )			{				return;			}			else if ( oValue instanceof Number )			{				iDataType = NUMBER;			}			else if ( oValue instanceof BigDecimal )			{				iDataType = BIGDECIMAL;			}			else if ( oValue instanceof Date )			{				iDataType = DATE;			}			else if ( oValue instanceof Calendar )			{				iDataType = CALENDAR;			}			else if ( oValue instanceof String )			{				iDataType = TEXT;			}			else			{				iDataType = CUSTOM;			}			if ( iExistingType != iDataType )			{				throw new IllegalArgumentException( MessageFormat.format( ResourceBundle.getBundle( Messages.ENGINE,						lcl )						.getString( "exception.mixed.data.types" ), //$NON-NLS-1$						new Object[]{							getClass( ).getName( )						} ) );			}		}	}