Refactoring of EasySetup Android implementation
[platform/upstream/iotivity.git] / service / easy-setup / sdk / mediator / android / EasySetupCore / src / main / java / org / iotivity / service / easysetup / core / EnrolleeDevice.java
1 package org.iotivity.service.easysetup.core;
2
3 public abstract class EnrolleeDevice {
4
5     protected EnrolleeState mState;
6     private EnrolleeSetupError mError;
7
8     protected  ConnectionInterface mConnection;
9     protected final ProvisioningConfig mProvConfig;
10     protected final OnBoardingConfig mOnBoardingConfig;
11
12     protected OnBoardingCallback mOnBoardingCallback;
13     protected ProvisioningCallback mProvisioningCallback;
14
15     protected EnrolleeDevice(OnBoardingConfig onBoardingConfig, ProvisioningConfig provConfig) {
16         mProvConfig = provConfig;
17         mOnBoardingConfig = onBoardingConfig;
18     }
19
20
21     // Application can override this API to provide their own implementation for on boarding.
22     protected abstract void startOnBoardingProcess();
23     protected abstract void stopOnBoardingProcess();
24
25     protected abstract void startProvisioningProcess(ConnectionInterface conn);
26
27     public void setConnection(ConnectionInterface conn) {
28         mConnection = conn;
29     }
30
31     // Not accessible by the Application
32     void startOnBoarding(OnBoardingCallback onBoardingCallback){
33         mOnBoardingCallback = onBoardingCallback;
34         startOnBoardingProcess();
35     }
36
37     // Not accessible by the Application
38     void startProvisioning(ProvisioningCallback provisioningCallback){
39         mProvisioningCallback = provisioningCallback;
40         startProvisioningProcess(mConnection);
41     }
42
43
44     public boolean isSetupSuccessful(){
45         return (mState == EnrolleeState.DEVICE_PROVISIONING_SUCCESS_STATE) ? true : false;
46     }
47
48     public EnrolleeSetupError getError() {
49         return mError;
50     }
51
52     public EnrolleeState getState() {
53         return mState;
54     }
55
56     public boolean onBoarded(){
57         return ( mState == EnrolleeState.DEVICE_PROVISIONING_STATE ) ? true : false;
58     }
59
60 }