1402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/*******************************************************************************
2402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Copyright (c) 2000, 2006 IBM Corporation and others.
3402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * All rights reserved. This program and the accompanying materials
4402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * are made available under the terms of the Eclipse Public License v1.0
5402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * which accompanies this distribution, and is available at
6402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * http://www.eclipse.org/legal/epl-v10.html
7402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *
8402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Contributors:
9402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *     IBM Corporation - initial API and implementation
10402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *******************************************************************************/
11402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpackage org.eclipse.releng.generators;
12402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
13402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.io.IOException;
14402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.util.Enumeration;
15402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.util.Hashtable;
16402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.io.File;
17402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
18402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.util.Vector;
19402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport javax.xml.parsers.DocumentBuilderFactory;
20402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport javax.xml.parsers.DocumentBuilder;
21402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport javax.xml.parsers.ParserConfigurationException;
22402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
23402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.w3c.dom.Document;
24402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.w3c.dom.Element;
25402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.w3c.dom.Node;
26402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.w3c.dom.NodeList;
27402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.xml.sax.SAXException;
28402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
29402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/**
30402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * @version 	1.0
31402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * @author
32402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll */
33402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpublic class ErrorTracker {
34402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
35402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	// List of test logs expected at end of build
36402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	private Vector testLogs = new Vector();
37402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
38402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
39402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	// Platforms keyed on
40402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	private Hashtable platforms = new Hashtable();
41402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	private Hashtable logFiles = new Hashtable();
42402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	private Hashtable typesMap = new Hashtable();
43402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	private Vector typesList = new Vector();
44402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
45402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public static void main(String[] args) {
46402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
47402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// For testing only.  Should not be invoked
48402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
49402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		ErrorTracker anInstance = new ErrorTracker();
50402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		anInstance.loadFile("C:\\junk\\testManifest.xml");
51402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		String[] theTypes = anInstance.getTypes();
52402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		for (int i=0; i < theTypes.length; i++) {
53402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// System.out.println("Type: " + theTypes[i]);
54402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			PlatformStatus[] thePlatforms = anInstance.getPlatforms(theTypes[i]);
55402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			for (int j=0; j < thePlatforms.length; j++) {
56402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				// System.out.println("Out ID: " + thePlatforms[j].getId());
57402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			}
58402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
59402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
60402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
61402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public void loadFile(String fileName) {
62402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
63402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		DocumentBuilder parser=null;
64402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		try {
65402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			parser = docBuilderFactory.newDocumentBuilder();
66402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		} catch (ParserConfigurationException e1) {
67402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			e1.printStackTrace();
68402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
69402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		try {
70402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
71402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			Document document = parser.parse(fileName);
72402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			NodeList elements = document.getElementsByTagName("platform");
73402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			int elementCount = elements.getLength();
74402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			for (int i = 0; i < elementCount; i++) {
75402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				PlatformStatus aPlatform = new PlatformStatus((Element) elements.item(i));
76402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				//System.out.println("ID: " + aPlatform.getId());
77402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				platforms.put(aPlatform.getId(), aPlatform);
78402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
79402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				Node zipType = elements.item(i).getParentNode();
80402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				String zipTypeName = (String) zipType.getAttributes().getNamedItem("name").getNodeValue();
81402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
82402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				Vector aVector = (Vector) typesMap.get(zipTypeName);
83402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				if (aVector == null) {
84402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					typesList.add(zipTypeName);
85402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					aVector = new Vector();
86402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					typesMap.put(zipTypeName, aVector);
87402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				}
88402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				aVector.add(aPlatform.getId());
89402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
90402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			}
91402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
92402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			NodeList effectedFiles = document.getElementsByTagName("effectedFile");
93402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			int effectedFilesCount = effectedFiles.getLength();
94402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			for (int i = 0; i < effectedFilesCount; i++) {
95402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				Node anEffectedFile = effectedFiles.item(i);
96402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				Node logFile = anEffectedFile.getParentNode();
97402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				String logFileName = (String) logFile.getAttributes().getNamedItem("name").getNodeValue();
98402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				logFileName=convertPathDelimiters(logFileName);
99402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				String effectedFileID = (String) anEffectedFile.getAttributes().getNamedItem("id").getNodeValue();
100402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				//System.out.println(logFileName);
101402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				Vector aVector = (Vector) logFiles.get(logFileName);
102402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				if (aVector == null) {
103402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					aVector = new Vector();
104402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					logFiles.put(logFileName, aVector);
105402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
106402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				}
107402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				PlatformStatus ps=(PlatformStatus) platforms.get(effectedFileID);
108402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				if (ps!=null)
109402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					aVector.addElement(ps);
110402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			}
111402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
112402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// store a list of the test logs expected after testing
113402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			NodeList testLogList = document.getElementsByTagName("logFile");
114402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				int testLogCount = testLogList.getLength();
115402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				for (int i = 0; i < testLogCount; i++) {
116402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
117402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					Node testLog = testLogList.item(i);
118402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					String testLogName = (String) testLog.getAttributes().getNamedItem("name").getNodeValue();
119402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					Node typeNode=testLog.getAttributes().getNamedItem("type");
120402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					String type="test";
121402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					if (typeNode!=null){
122402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll						type = typeNode.getNodeValue();
123402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					}
124402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					if (testLogName.endsWith(".xml")&&type.equals("test")){
125402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll						testLogs.add(testLogName);
126402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll						//System.out.println(testLogName);
127402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					}
128402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
129402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			}
130402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
131402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
132402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//			// Test this mess.
133402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//			Object[] results = platforms.values().toArray();
134402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//			for (int i=0; i < results.length; i++) {
135402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//				PlatformStatus ap = (PlatformStatus) results[i];
136402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//				System.out.println("ID: " + ap.getId() + " passed: " + ap.getPassed());
137402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//			}
138402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//
139402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//			Enumeration anEnumeration = logFiles.keys();
140402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//			while (anEnumeration.hasMoreElements()) {
141402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//				String aKey = (String) anEnumeration.nextElement();
142402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//				System.out.println("Whack a key: " + aKey);
143402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//				((PlatformStatus) logFiles.get(aKey)).setPassed(false);
144402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//			}
145402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//
146402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//			results = platforms.values().toArray();
147402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//			for (int i=0; i < results.length; i++) {
148402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//				PlatformStatus ap = (PlatformStatus) results[i];
149402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//				System.out.println("ID: " + ap.getId() + " passed: " + ap.getPassed());
150402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll//			}
151402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
152402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
153402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
154402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
155402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
156402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		} catch (IOException e) {
157402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			System.out.println("IOException: " + fileName);
158402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// e.printStackTrace();
159402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
160402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		} catch (SAXException e) {
161402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			System.out.println("SAXException: " + fileName);
162402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			e.printStackTrace();
163402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
164402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
165402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
166402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
167402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public void registerError(String fileName) {
168402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		// System.out.println("Found an error in: " + fileName);
169402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		if (logFiles.containsKey(fileName)) {
170402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			Vector aVector = (Vector) logFiles.get(fileName);
171402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			for (int i = 0; i < aVector.size(); i++) {
172402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				((PlatformStatus) aVector.elementAt(i)).registerError();
173402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			}
174402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		} else {
175402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
176402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// If a log file is not specified explicitly it effects
177402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			// all "platforms" except JDT
178402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
179402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			Enumeration values = platforms.elements();
180402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			while (values.hasMoreElements()) {
181402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				PlatformStatus aValue = (PlatformStatus) values.nextElement();
182402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				if (!aValue.getId().equals("JA") &&
183402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					!aValue.getId().equals("EW") &&
184402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll					!aValue.getId().equals("EA")) {
185402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll						aValue.registerError();
186402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll				}
187402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			}
188402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
189402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
190402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
191402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public boolean hasErrors(String id) {
192402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		return ((PlatformStatus) platforms.get(id)).hasErrors();
193402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
194402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
195402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	// Answer a string array of the zip type names in the order they appear in
196402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	// the .xml file.
197402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public String[] getTypes() {
198402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		return (String[]) typesList.toArray(new String[typesList.size()]);
199402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
200402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
201402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	// Answer an array of PlatformStatus objects for a given type.
202402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
203402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public PlatformStatus[] getPlatforms(String type) {
204402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		Vector platformIDs = (Vector) typesMap.get(type);
205402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		PlatformStatus[] result = new PlatformStatus[platformIDs.size()];
206402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		for (int i = 0; i < platformIDs.size(); i++) {
207402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll			result[i] = (PlatformStatus) platforms.get((String) platformIDs.elementAt(i));
208402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		}
209402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		return  result;
210402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
211402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
212402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	/**
213402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	 * Returns the testLogs.
214402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	 * @return Vector
215402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	 */
216402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	public Vector getTestLogs() {
217402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		return testLogs;
218402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
219402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
220402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	private String convertPathDelimiters(String path){
221402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll		return new File(path).getPath();
222402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll	}
223402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
224402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll}
225