blob: f6b1660348e15933d7435cf66ba6a8d21bb31941 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2018 Borland Software Corporation and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Christopher Gerking - initial API and implementation
*******************************************************************************/
package org.eclipse.m2m.tests.qvt.oml.transform;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.m2m.tests.qvt.oml.TestProject;
public class ReferencedProjectData extends FilesToFilesData {
private TestTransformation referencedProjectTestCase;
protected boolean isUseCycleReferences;
public ReferencedProjectData(String myName, String referencedName, boolean useCycleReferences) {
super(myName);
ModelTestData referencedProjectTestData = new FilesToFilesData(referencedName) {
@Override
public boolean isUseCompiledXmi() {
return ReferencedProjectData.this.isUseCompiledXmi();
}
};
referencedProjectTestCase = new TestTransformation(referencedProjectTestData) {
@Override
protected String getProjectName() {
return "ReferencedTransformationTest"; //$NON-NLS-1$
}
};
isUseCycleReferences = useCycleReferences;
}
@Override
public String toString() {
return getName() + " cycle: " + isUseCycleReferences;
}
@Override
public void prepare(TestProject project) throws Exception {
referencedProjectTestCase.setUp();
super.prepare(project);
IProject referencedProject = referencedProjectTestCase.getProject();
IProject myProject = project.getProject();
IProjectDescription desc = myProject.getDescription();
desc.setReferencedProjects(new IProject[] {referencedProject});
myProject.setDescription(desc, null);
if (isUseCycleReferences) {
IProjectDescription referencedDesc = referencedProject.getDescription();
referencedDesc.setReferencedProjects(new IProject[] {myProject});
referencedProject.setDescription(referencedDesc, null);
}
}
@Override
public void dispose(TestProject project) throws Exception {
super.dispose(project);
IProject myProject = project.getProject();
IProjectDescription desc = myProject.getDescription();
desc.setReferencedProjects(new IProject[] {});
myProject.setDescription(desc, null);
if (isUseCycleReferences) {
IProject referencedProject = referencedProjectTestCase.getProject();
IProjectDescription referencedDesc = referencedProject.getDescription();
referencedDesc.setReferencedProjects(new IProject[] {});
referencedProject.setDescription(referencedDesc, null);
}
}
}