package com.clj.fastble.exception.hanlder; 
 | 
  
 | 
import com.clj.fastble.exception.BleException; 
 | 
import com.clj.fastble.exception.BlueToothNotEnableException; 
 | 
import com.clj.fastble.exception.ConnectException; 
 | 
import com.clj.fastble.exception.GattException; 
 | 
import com.clj.fastble.exception.NotFoundDeviceException; 
 | 
import com.clj.fastble.exception.OtherException; 
 | 
import com.clj.fastble.exception.ScanFailedException; 
 | 
import com.clj.fastble.exception.TimeoutException; 
 | 
  
 | 
  
 | 
public abstract class BleExceptionHandler { 
 | 
  
 | 
    public BleExceptionHandler handleException(BleException exception) { 
 | 
  
 | 
        if (exception != null) { 
 | 
  
 | 
            if (exception instanceof ConnectException) { 
 | 
                onConnectException((ConnectException) exception); 
 | 
  
 | 
            } else if (exception instanceof GattException) { 
 | 
                onGattException((GattException) exception); 
 | 
  
 | 
            } else if (exception instanceof TimeoutException) { 
 | 
                onTimeoutException((TimeoutException) exception); 
 | 
  
 | 
            } else if (exception instanceof NotFoundDeviceException) { 
 | 
                onNotFoundDeviceException((NotFoundDeviceException) exception); 
 | 
  
 | 
            } else if (exception instanceof BlueToothNotEnableException) { 
 | 
                onBlueToothNotEnableException((BlueToothNotEnableException) exception); 
 | 
  
 | 
            } else if (exception instanceof ScanFailedException) { 
 | 
                onScanFailedException((ScanFailedException) exception); 
 | 
  
 | 
            } else { 
 | 
                onOtherException((OtherException) exception); 
 | 
            } 
 | 
        } 
 | 
        return this; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * connect failed 
 | 
     */ 
 | 
    protected abstract void onConnectException(ConnectException e); 
 | 
  
 | 
    /** 
 | 
     * gatt error status 
 | 
     */ 
 | 
    protected abstract void onGattException(GattException e); 
 | 
  
 | 
    /** 
 | 
     * operation timeout 
 | 
     */ 
 | 
    protected abstract void onTimeoutException(TimeoutException e); 
 | 
  
 | 
    /** 
 | 
     * not found device error 
 | 
     */ 
 | 
    protected abstract void onNotFoundDeviceException(NotFoundDeviceException e); 
 | 
  
 | 
    /** 
 | 
     * bluetooth not enable error 
 | 
     */ 
 | 
    protected abstract void onBlueToothNotEnableException(BlueToothNotEnableException e); 
 | 
  
 | 
    /** 
 | 
     * scan failed error 
 | 
     */ 
 | 
    protected abstract void onScanFailedException(ScanFailedException e); 
 | 
  
 | 
    /** 
 | 
     * other exceptions 
 | 
     */ 
 | 
    protected abstract void onOtherException(OtherException e); 
 | 
} 
 |