private boolean calculate(Double number) {
		LOG.debug("START_METHOD calculate().");
		
		boolean ret = true;
		
		switch ( operation ) {
		
			case OPERATION_ADD: 
				{ 
					result += number;
					LOG.info("Execute operation ADD for number < " + number + " >. Result operation is " + result);					
					break;
				}
			
			case OPERATION_SUB:      
				{
					result -= number;
					LOG.info("Execute operation SUB for number < " + number + " >. Result operation is " + result);					
					break;
				}

			case OPERATION_MUL:      
				{
					result *= number;
					LOG.info("Execute operation MUL for number < " + number + " >. Result operation is " + result);					
					break; 
				}
		
			case OPERATION_DIV:
				{
					if ( number == 0.0 ) {
						LOG.warn("Opearation DIV by zero is not illegal.");
						ret = false;
						break;
					}
					result /= number;
					LOG.info("Execute operation DIV for number < " + number + " >. Result operation is " + result);					
					break; 
				}
		
			case OPERATION_NOT_OPER:
				{
					result = number;
					LOG.info("Initialization calculation. Result is " + result);					
					break;
				}
		
			default: 
				{
					LOG.warn("Execute operation which not support this calculator!");
					break;
				}
		}		
		LOG.debug("END_METHOD calculate().");
		
		return ret;
	}