/*******************************************************************************
* Copyright (c) 2012-2015 INRIA.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Generoso Pagano - initial API and implementation
******************************************************************************/
/**
*
*/
package fr.inria.soctrace.test.junit.utils;
import fr.inria.soctrace.lib.model.Tool;
import fr.inria.soctrace.lib.model.Trace;
import fr.inria.soctrace.lib.model.utils.SoCTraceException;
import fr.inria.soctrace.lib.search.ITraceSearch;
import fr.inria.soctrace.lib.search.TraceSearch;
import fr.inria.soctrace.test.junit.utils.importer.VirtualImporter;
/**
* Loader for resources generated by the PrepareTestResource
* program.
*
* @author "Generoso Pagano <generoso.pagano@inria.fr>"
*/
public class ResourceLoader {
private static Tool virtualImporterTool = null;
private static Tool junitTool = null;
private static Trace processedTrace = null;
private static Trace testTrace = null;
/**
* Static getter for Virtual Importer Tool
*/
public static Tool getVirtualImporterTool() {
if (virtualImporterTool != null)
return virtualImporterTool;
loadAll();
return virtualImporterTool;
}
/**
* Static getter for JUnit Dummy Tool
*/
public static Tool getJunitTestTool() {
if (junitTool != null)
return junitTool;
loadAll();
return junitTool;
}
/**
* Static getter for JUnit Dummy Processed Trace
*/
public static Trace getJunitProcessedTrace() {
if (processedTrace != null)
return processedTrace;
loadAll();
return processedTrace;
}
/**
* Static getter for JUnit Test Virtual Trace
*/
public static Trace getVirtualTrace() {
if (testTrace != null)
return testTrace;
loadAll();
return testTrace;
}
/**
* Load all default model elements from DBs.
* Do it once to minimize search interface overhead.
*/
private static void loadAll() {
try {
ITraceSearch search = new TraceSearch().initialize();
if (testTrace == null)
testTrace = search.getTraceByDBName(VirtualImporter.DB_NAME);
if (processedTrace == null)
processedTrace = search.getTraceByDBName(TestConstants.PROCESSED_TRACE_DB_NAME);
if (virtualImporterTool == null)
virtualImporterTool = search.getToolByName(TestConstants.VIRTUAL_IMPORTER_TOOL_NAME);
if (junitTool == null)
junitTool = search.getToolByName(TestConstants.JUNIT_TEST_TOOL_NAME);
search.uninitialize();
} catch (SoCTraceException e) {
e.printStackTrace();
}
}
}