Node dev = new Node(Device.ELEM_NAME);
root.addNode(dev);
DeviceData dd = new DeviceData();
dd.setDescriptionURI("/gen-desc.xml");
dev.setUserData(dd);
Device devUPnP = new Device(root,dev);
Object aux = sr.getProperty(UPnPDevice.TYPE);
if(aux==null){
devUPnP.setDeviceType(null);
}else if(aux instanceof String){
devUPnP.setDeviceType((String) aux);
}else if(aux instanceof String[]){
//The property key UPnP.device.type should be a String
String[] v = (String[]) aux;
int maxindex=0;
int max=Integer.parseInt(v[0].substring(v[0].lastIndexOf(":")+1));
int tmp;
for (int i = 1; i < v.length; i++) {
tmp=Integer.parseInt(v[i].substring(v[i].lastIndexOf(":")+1));
if(max<tmp){
max=tmp;
maxindex=i;
}
}
devUPnP.setDeviceType(v[maxindex]);
}
devUPnP.setFriendlyName((String) sr.getProperty(UPnPDevice.FRIENDLY_NAME));
devUPnP.setManufacture((String) sr.getProperty(UPnPDevice.MANUFACTURER));
devUPnP.setManufactureURL((String) sr.getProperty(UPnPDevice.MANUFACTURER_URL));
devUPnP.setModelDescription((String) sr.getProperty(UPnPDevice.MODEL_DESCRIPTION));
devUPnP.setModelName((String) sr.getProperty(UPnPDevice.MODEL_NAME));
devUPnP.setModelNumber((String) sr.getProperty(UPnPDevice.MODEL_NUMBER));
devUPnP.setModelURL((String) sr.getProperty(UPnPDevice.MODEL_URL));
devUPnP.setSerialNumber((String) sr.getProperty(UPnPDevice.SERIAL_NUMBER));
devUPnP.setUDN((String) sr.getProperty(UPnPDevice.UDN));
devUPnP.setUPC((String) sr.getProperty(UPnPDevice.UPC));
devUPnP.setLocation("/gen-desc.xml");
addServices("",devUPnP,sr);
addDevices("",devUPnP,sr);
devUPnP.setPresentationURL((String) sr.getProperty(UPnPDevice.PRESENTATION_URL));
return devUPnP;
}