package info.androiddevice.deviceinventory;
import org.json.JSONException;
import org.json.JSONObject;
import info.androiddevice.deviceinventory.info.DirProperty;
import info.androiddevice.deviceinventory.info.NameProperty;
import info.androiddevice.deviceinventory.info.OtacertsProperty;
import info.androiddevice.deviceinventory.info.PackageSigProperty;
import info.androiddevice.deviceinventory.info.CpuinfoProperty;
import info.androiddevice.deviceinventory.info.DisplayProperty;
import info.androiddevice.deviceinventory.info.EnvironmentProperty;
import info.androiddevice.deviceinventory.info.FeaturesProperty;
import info.androiddevice.deviceinventory.info.GetPropProperty;
import info.androiddevice.deviceinventory.info.JavaSystemProperty;
import info.androiddevice.deviceinventory.info.MeminfoProperty;
import info.androiddevice.deviceinventory.info.MountsProperty;
import info.androiddevice.deviceinventory.info.Property;
import info.androiddevice.deviceinventory.info.SharedLibraryNamesProperty;
import info.androiddevice.deviceinventory.info.UsbProperty;
import info.androiddevice.deviceinventory.info.VersionProperty;
public class DeviceInformation {
private static DeviceInformation singleton = null;
public static DeviceInformation getInstance() {
if(singleton==null)
singleton = new DeviceInformation();
return singleton;
}
private DeviceInformation() {
}
public JSONObject getDeviceInformation() {
JSONObject jsonObject = new JSONObject();
addProperty(jsonObject, new MeminfoProperty());
addProperty(jsonObject, new MountsProperty());
addProperty(jsonObject, new CpuinfoProperty());
addProperty(jsonObject, new EnvironmentProperty());
addProperty(jsonObject, new JavaSystemProperty());
addProperty(jsonObject, new FeaturesProperty());
addProperty(jsonObject, new DisplayProperty());
addProperty(jsonObject, new UsbProperty());
addProperty(jsonObject, new GetPropProperty());
addProperty(jsonObject, new PackageSigProperty());
addProperty(jsonObject, new OtacertsProperty());
addProperty(jsonObject, new DirProperty());
addProperty(jsonObject, new VersionProperty());
addProperty(jsonObject, new SharedLibraryNamesProperty());
addProperty(jsonObject, new NameProperty());
return jsonObject;
}
private void addProperty(JSONObject jsonObject, Property property) {
if(jsonObject.has(property.getName())) {
throw new RuntimeException("property already exists");
}
try {
jsonObject.put(property.getName(), property.getProperty());
} catch (JSONException e) {
try {
jsonObject.put(property.getName(), JSONObject.NULL);
} catch (JSONException e1) {
e1.printStackTrace();
}
}
}
}