blob: c745b5ce4930bccbe86078cceddee94ecc185512 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012 EclipseSource Muenchen GmbH.
*
* 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:
******************************************************************************/
package org.eclipse.emf.emfstore.fuzzy.emf.diff;
import java.io.IOException;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.emfstore.fuzzy.emf.config.TestConfig;
import org.eclipse.emf.emfstore.fuzzy.emf.config.TestRun;
/**
* Abstract TestRunProvider to provide the {@link TestRun}s needed in the {@link DiffGenerator}.
*
* @author Julian Sommerfeldt
*
*/
public abstract class TestRunProvider {
/**
* The config for which to provide testruns.
*/
private TestConfig config;
/**
* @return The two {@link TestRun}s specified by the config and this provider.
* @throws IOException If there is an error reading the {@link TestRun}s.
*/
public abstract TestRun[] getTestRuns() throws IOException;
/**
* @param config The new {@link TestConfig} to use.
*/
public void setConfig(TestConfig config) {
this.config = config;
}
/**
* @param resource The {@link Resource} where to get a {@link TestRun} out.
* @return The {@link TestRun} out of the {@link Resource}.
*/
protected TestRun getTestRun(Resource resource) {
for (EObject obj : resource.getContents()) {
if (obj instanceof TestRun) {
return (TestRun) obj;
}
}
throw new RuntimeException("Could not load TestRuns from config!");
}
/**
* @return The current {@link TestConfig}.
*/
protected TestConfig getTestConfig() {
return config;
}
}