张海江
2017-07-26 8dcf4645301af81d39bbcb936b52eb8f904352e8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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);
}