replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / service / easy-setup / mediator / richsdk / android / EasySetupCore / src / main / java / org / iotivity / service / easysetup / mediator / EnrolleeConf.java
index dca0ef5..fa4cfb2 100755 (executable)
@@ -39,7 +39,7 @@ import java.util.List;
 public class EnrolleeConf
 {
     private static final String TAG = EnrolleeConf.class.getName();
-    private OcRepresentation mProvRep = null, mWiFiRep = null, mDevConfRep = null, mCloudRep = null;
+    protected OcRepresentation mEasySetupRep = null;
     /**
      * Constructor
      *
@@ -48,44 +48,92 @@ public class EnrolleeConf
      */
     public EnrolleeConf(OcRepresentation rep)
     {
-        mProvRep = rep;
+        mEasySetupRep = rep;
+    }
 
-        List<OcRepresentation> children = rep.getChildren();
+    public EnrolleeConf(EnrolleeConf enrolleeConf)
+    {
+        mEasySetupRep = enrolleeConf.getEasySetupRep();
+    }
 
-        for (OcRepresentation child : children) {
-            List<String> rts = child.getResourceTypes();
+    /**
+     * Get Device Name property in DevConf resource
+     *
+     * @return deviceName
+     */
+    public String getDeviceName()
+    {
+        if(mEasySetupRep == null)
+        {
+            return null;
+        }
 
-            if(child.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_WIFI) != -1)
-            {
-                mWiFiRep = child;
-            }
-            else if(child.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_DEVCONF) != -1)
-            {
-                mDevConfRep = child;
-            }
-            else if(child.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_CLOUDSERVER) != -1)
+        List<OcRepresentation> children = mEasySetupRep.getChildren();
+
+        for (OcRepresentation child : children) {
+            if(child.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_DEVCONF) != -1)
             {
-                mCloudRep = child;
+                try
+                {
+                    OcRepresentation rep;
+                    if(child.hasAttribute(ESConstants.OC_RSRVD_REPRESENTATION))
+                    {
+                        rep = (OcRepresentation)child.getValue(ESConstants.OC_RSRVD_REPRESENTATION);
+                    }
+                    else
+                    {
+                        return null;
+                    }
+
+                    if(rep.hasAttribute(ESConstants.OC_RSRVD_ES_DEVNAME)) {
+                        return (String) rep.getValue(ESConstants.OC_RSRVD_ES_DEVNAME);
+                    }
+                } catch (OcException e) {
+                    Log.e(TAG, "getWiFiModes is failed.");
+                }
             }
         }
+        return null;
     }
 
     /**
-     * Get Device Name property in DevConf resource
+     * Get Model Number property in DevConf resource
      *
-     * @return deviceName
+     * @return modelNumber
      */
-    public String getDeviceName()
+    public String getModelNumber()
     {
-        try
+        if(mEasySetupRep == null)
         {
-            if(mDevConfRep != null && mDevConfRep.hasAttribute(ESConstants.OC_RSRVD_ES_DEVNAME)) {
-                return (String) mDevConfRep.getValue(ESConstants.OC_RSRVD_ES_DEVNAME);
+            return null;
+        }
+
+        List<OcRepresentation> children = mEasySetupRep.getChildren();
+
+        for (OcRepresentation child : children) {
+            if(child.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_DEVCONF) != -1)
+            {
+                try
+                {
+                    OcRepresentation rep;
+                    if(child.hasAttribute(ESConstants.OC_RSRVD_REPRESENTATION))
+                    {
+                        rep = (OcRepresentation)child.getValue(ESConstants.OC_RSRVD_REPRESENTATION);
+                    }
+                    else
+                    {
+                        return null;
+                    }
+
+                    if(rep.hasAttribute(ESConstants.OC_RSRVD_ES_MODELNUMBER)) {
+                        return (String) rep.getValue(ESConstants.OC_RSRVD_ES_MODELNUMBER);
+                    }
+                } catch (OcException e) {
+                    Log.e(TAG, "getModelNumber is failed.");
+                }
             }
-        } catch (OcException e) {
-                Log.e(TAG, "getWiFiModes is failed.");
         }
-        return new String("");
+        return null;
     }
 
     /**
@@ -95,16 +143,37 @@ public class EnrolleeConf
      */
     public ArrayList<WIFI_MODE> getWiFiModes()
     {
+        if(mEasySetupRep == null)
+        {
+            return null;
+        }
+
+        List<OcRepresentation> children = mEasySetupRep.getChildren();
         ArrayList<WIFI_MODE> modes = new ArrayList<WIFI_MODE>();
-        try {
-            if (mWiFiRep != null && mWiFiRep.hasAttribute(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIMODE)) {
-                int modes_int[] = mWiFiRep.getValue(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIMODE);
-                for (int i = 0 ; i < modes_int.length ; ++i) {
-                    modes.add(WIFI_MODE.fromInt(modes_int[i]));
+        for (OcRepresentation child : children) {
+            if(child.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_WIFICONF) != -1)
+            {
+                try {
+                    OcRepresentation rep;
+                    if(child.hasAttribute(ESConstants.OC_RSRVD_REPRESENTATION))
+                    {
+                        rep = (OcRepresentation)child.getValue(ESConstants.OC_RSRVD_REPRESENTATION);
+                    }
+                    else
+                    {
+                        return null;
+                    }
+
+                    if (rep.hasAttribute(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIMODE)) {
+                        int modes_int[] = rep.getValue(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIMODE);
+                        for (int i = 0 ; i < modes_int.length ; ++i) {
+                            modes.add(WIFI_MODE.fromInt(modes_int[i]));
+                        }
+                    }
+                } catch (OcException e) {
+                    Log.e(TAG, "getWiFiModes is failed.");
                 }
             }
-        } catch (OcException e) {
-            Log.e(TAG, "getWiFiModes is failed.");
         }
         return modes;
     }
@@ -116,14 +185,36 @@ public class EnrolleeConf
      */
     public WIFI_FREQ getWiFiFreq()
     {
-        try{
-            if(mWiFiRep != null && mWiFiRep.hasAttribute(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIFREQ))
-                return WIFI_FREQ.fromInt(
-                        (int)mWiFiRep.getValue(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIFREQ));
-        } catch (OcException e) {
-            Log.e(TAG, "getWiFiFreq is failed.");
+        if(mEasySetupRep == null)
+        {
+            return WIFI_FREQ.WIFI_FREQ_NONE;
+        }
+
+        List<OcRepresentation> children = mEasySetupRep.getChildren();
+
+        for (OcRepresentation child : children) {
+            if(child.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_WIFICONF) != -1)
+            {
+                try{
+                    OcRepresentation rep;
+                    if(child.hasAttribute(ESConstants.OC_RSRVD_REPRESENTATION))
+                    {
+                        rep = (OcRepresentation)child.getValue(ESConstants.OC_RSRVD_REPRESENTATION);
+                    }
+                    else
+                    {
+                        return null;
+                    }
+
+                    if(rep.hasAttribute(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIFREQ))
+                        return WIFI_FREQ.fromInt(
+                                (int)rep.getValue(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIFREQ));
+                } catch (OcException e) {
+                    Log.e(TAG, "getWiFiFreq is failed.");
+                }
+            }
         }
-        return WIFI_FREQ.WIFI_FREQ_NONE;
+        return null;
     }
 
     /**
@@ -134,11 +225,26 @@ public class EnrolleeConf
      */
     public boolean isCloudAccessible()
     {
-        if(mCloudRep != null && mCloudRep.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_CLOUDSERVER) != -1)
-            return true;
+        if(mEasySetupRep == null)
+        {
+            return false;
+        }
+
+        List<OcRepresentation> children = mEasySetupRep.getChildren();
 
+        for (OcRepresentation child : children) {
+            if(child.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_COAPCLOUDCONF) != -1)
+            {
+                return true;
+            }
+        }
         return false;
     }
+
+    public  OcRepresentation getEasySetupRep()
+    {
+        return mEasySetupRep;
+    }
 }