crashanalysis/crashanalyser/com.nokia.s60tools.crashanalyser/src/com/nokia/s60tools/crashanalyser/containers/Summary.java
changeset 4 615035072f7e
parent 0 5ad7ad99af01
child 16 72f198be1c1d
--- a/crashanalysis/crashanalyser/com.nokia.s60tools.crashanalyser/src/com/nokia/s60tools/crashanalyser/containers/Summary.java	Tue Feb 23 17:04:33 2010 +0200
+++ b/crashanalysis/crashanalyser/com.nokia.s60tools.crashanalyser/src/com/nokia/s60tools/crashanalyser/containers/Summary.java	Tue Apr 20 14:41:43 2010 +0300
@@ -36,18 +36,21 @@
 	public static final String TAG_DATE = "date";
 	public static final String TAG_TIME = "time";
 	public static final String TAG_UPTIME = "uptime";
+	public static final String TAG_CRASH_SOURCE = "crash_source";
 	public static final String TAG_SEG_HW_INFO = "seg_hw_info";
 	public static final String TAG_VERSION = "version_text";
 	public static final String TAG_VERSIONS = "version_text_list";
 	public static final String TAG_PRODUCT_TYPE = "product_type";
 	public static final String TAG_PRODUCT_CODE = "product_code";
 	public static final String TAG_SERIAL_NUMBER = "serial_number";
+	public static final String TAG_PRODUCTION_MODE = "production_mode";
 	public static final String TAG_SEG_SW_INFO = "seg_sw_info";
 	public static final String TAG_LANGUAGE = "language";
 	public static final String TAG_CHECKSUM = "checksum";
 	public static final String TAG_IMEI = "imei";
 	public static final String TAG_SEG_MEMORY_INFO = "seg_memory_info";
 	public static final String TAG_RAM = "ram";
+	public static final String TAG_DRIVE = "drive";
 	public static final String TAG_FREE = "free";
 	
 	public static final String FORMAT = "%-15s: %s";
@@ -65,10 +68,13 @@
 	private final String summarySerialNumber;
 	private final String summaryImei;
 	private final String summaryFreeRam;
+	private final String summaryFreeDisk;
+	private final String summaryProductionMode;
+	private final String summaryCrashSource;
 	
 	private Summary(String crashTime, String crashDate, String upTime, String[] swVersion, String language,
 					String romId, String[] hwVersion, String productType, String productCode, 
-					String serialNumber, String imei, String freeRam) {
+					String serialNumber, String productionMode, String crashSource, String imei, String freeRam, String freeDisk) {
 		summaryCrashTime = crashTime;
 		summaryCrashDate = crashDate;
 		summaryUpTime = upTime;
@@ -81,6 +87,9 @@
 		summarySerialNumber = serialNumber;
 		summaryImei = imei;
 		summaryFreeRam = freeRam;
+		summaryFreeDisk = freeDisk;
+		summaryProductionMode = productionMode;
+		summaryCrashSource = crashSource;
 	}
 	
 	/**
@@ -109,6 +118,9 @@
 		writeLine(out, "Serial Number", summarySerialNumber);
 		writeLine(out, "Imei", summaryImei);
 		writeLine(out, "Free Ram", summaryFreeRam);
+		writeLine(out, "Free Disk Space", summaryFreeDisk);
+		writeLine(out, "Production Mode", summaryProductionMode);
+		writeLine(out, "Crash Source", summaryCrashSource);
 	}
 	
 	void writeLine(BufferedWriter out, String header, String value) throws IOException {
@@ -128,6 +140,7 @@
 			String crashTime = "";
 			String crashDate = "";
 			String upTime = "";
+			String crashSource = "";
 			
 			// read data under seg_header node
 			NodeList segHeader = rootElement.getElementsByTagName(TAG_SEG_HEADER);
@@ -161,12 +174,18 @@
 				} else {
 					upTime = convertUpTime(upTime);
 				}
+				
+				// read crash source
+				crashSource = XmlUtils.getTextValue((Element)segHeader.item(0), TAG_CRASH_SOURCE);
+				if(crashSource == null)
+					crashSource = "";
 			}
 			
 			List<String> hwVersions = new ArrayList<String>();
 			String productType = "";
 			String productCode = "";
 			String serialNumber = "";
+			String productionMode = "";
 			
 			// read data under seg_hw_info node
 			NodeList segHwInfo = rootElement.getElementsByTagName(TAG_SEG_HW_INFO);
@@ -197,6 +216,11 @@
 				serialNumber = XmlUtils.getTextValue((Element)segHwInfo.item(0), TAG_SERIAL_NUMBER);
 				if (serialNumber == null)
 					serialNumber = "";
+
+				// read production mode
+				productionMode = XmlUtils.getTextValue((Element)segHwInfo.item(0), TAG_PRODUCTION_MODE);
+				if (productionMode == null)
+					productionMode = "";
 			}
 			
 			List<String> swVersions = new ArrayList<String>();
@@ -237,6 +261,8 @@
 			}
 			
 			String freeRamAmount = "";
+			String freeDiskSpace = "";
+			
 			// read free ram amount
 			NodeList segMemoryInfo = rootElement.getElementsByTagName(TAG_SEG_MEMORY_INFO);
 			if (segMemoryInfo != null && segMemoryInfo.getLength() > 0) {
@@ -246,10 +272,17 @@
 					if (freeRamAmount == null)
 						freeRamAmount = "";
 				}
+				NodeList drive = ((Element)segMemoryInfo.item(0)).getElementsByTagName(TAG_DRIVE);
+				if (drive != null && drive.getLength() > 0) {
+					freeDiskSpace = XmlUtils.getTextValue((Element)drive.item(0), TAG_FREE);
+					if (freeDiskSpace == null)
+						freeDiskSpace = "";
+				}
 			}
 			
 			return new Summary(crashTime, crashDate, upTime, swVersions.toArray(new String[swVersions.size()]), 
-								language, romId, hwVersions.toArray(new String[hwVersions.size()]), productType, productCode, serialNumber, imei, freeRamAmount);
+								language, romId, hwVersions.toArray(new String[hwVersions.size()]), productType, 
+								productCode, serialNumber, productionMode, crashSource, imei, freeRamAmount, freeDiskSpace);
 		} catch (Exception e) {
 			return null;
 		}
@@ -302,6 +335,19 @@
 	public String getFreeRam() {
 		return summaryFreeRam;
 	}
+
+	public String getFreeDisk() {
+		return summaryFreeDisk;
+	}
+
+	public String getProductionMode() {
+		return summaryProductionMode;
+	}
+	
+	public String getCrashSource() {
+		return summaryCrashSource;
+	}
+
 	
 	static String convertUpTime(String uptime) {
 		try {