Update a payload format to be compatible to OIC spec in easysetup
[platform/upstream/iotivity.git] / service / easy-setup / mediator / richsdk / android / EasySetupCore / src / main / java / org / iotivity / service / easysetup / mediator / EnrolleeConf.java
index d7a8862..becbe52 100755 (executable)
@@ -63,6 +63,11 @@ public class EnrolleeConf
      */
     public String getDeviceName()
     {
+        if(mProvRep == null)
+        {
+            return null;
+        }
+
         List<OcRepresentation> children = mProvRep.getChildren();
 
         for (OcRepresentation child : children) {
@@ -70,16 +75,25 @@ public class EnrolleeConf
             {
                 try
                 {
-                    if(child.hasAttribute(ESConstants.OC_RSRVD_ES_DEVNAME)) {
-                        return (String) child.getValue(ESConstants.OC_RSRVD_ES_DEVNAME);
+                    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 new String("");
+        return null;
     }
 
     /**
@@ -89,6 +103,11 @@ public class EnrolleeConf
      */
     public String getModelNumber()
     {
+        if(mProvRep == null)
+        {
+            return null;
+        }
+
         List<OcRepresentation> children = mProvRep.getChildren();
 
         for (OcRepresentation child : children) {
@@ -96,16 +115,25 @@ public class EnrolleeConf
             {
                 try
                 {
-                    if(child.hasAttribute(ESConstants.OC_RSRVD_ES_MODELNUMBER)) {
-                        return (String) child.getValue(ESConstants.OC_RSRVD_ES_MODELNUMBER);
+                    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.");
                 }
             }
         }
-
-        return new String("");
+        return null;
     }
 
     /**
@@ -115,14 +143,29 @@ public class EnrolleeConf
      */
     public ArrayList<WIFI_MODE> getWiFiModes()
     {
+        if(mProvRep == null)
+        {
+            return null;
+        }
+
         List<OcRepresentation> children = mProvRep.getChildren();
         ArrayList<WIFI_MODE> modes = new ArrayList<WIFI_MODE>();
         for (OcRepresentation child : children) {
             if(child.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_WIFI) != -1)
             {
                 try {
-                    if (child.hasAttribute(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIMODE)) {
-                        int modes_int[] = child.getValue(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIMODE);
+                    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]));
                         }
@@ -132,7 +175,6 @@ public class EnrolleeConf
                 }
             }
         }
-
         return modes;
     }
 
@@ -143,21 +185,36 @@ public class EnrolleeConf
      */
     public WIFI_FREQ getWiFiFreq()
     {
+        if(mProvRep == null)
+        {
+            return WIFI_FREQ.WIFI_FREQ_NONE;
+        }
+
         List<OcRepresentation> children = mProvRep.getChildren();
 
         for (OcRepresentation child : children) {
             if(child.getUri().indexOf(ESConstants.OC_RSRVD_ES_URI_WIFI) != -1)
             {
                 try{
-                    if(child.hasAttribute(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIFREQ))
+                    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)child.getValue(ESConstants.OC_RSRVD_ES_SUPPORTEDWIFIFREQ));
+                                (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;
     }
 
     /**
@@ -168,6 +225,11 @@ public class EnrolleeConf
      */
     public boolean isCloudAccessible()
     {
+        if(mProvRep == null)
+        {
+            return false;
+        }
+
         List<OcRepresentation> children = mProvRep.getChildren();
 
         for (OcRepresentation child : children) {