public void set ( String line, boolean source, String date, String [] timepoint ) throws LineException
	{
		String [] lineSplit = line.split("\t");
		if( source )
		{
			this.imsi = lineSplit[0];
			this.position = lineSplit[3];
			this.time = lineSplit[4];
		}
		else
		{
			this.imsi = lineSplit[0];
			this.position = lineSplit[2];
			this.time = lineSplit[3];
		}
		
		//检查日期合法性
		if ( ! this.time.startsWith(date) )			//年月日必须与date一致
			throw new LineException("", -1);
		
		try
		{
			this.day = this.formatter.parse(this.time);
		}
		catch ( ParseException e )
		{
			throw new LineException("", 0);
		}
		
		//计算所属时间段
		int i = 0, n = timepoint.length;
		int hour = Integer.valueOf( this.time.split(" ")[1].split(":")[0] );
		while ( i < n && Integer.valueOf( timepoint[i] ) <= hour )
			i++;
		if ( i < n )
		{
			if ( i == 0 )
				this.timeFlag = ( "00-" + timepoint[i] );
			else
				this.timeFlag = ( timepoint[i-1] + "-" + timepoint[i] );
		}
		else 									//Hour大于最大的时间点
			throw new LineException("", -1);
	}