blob: 2e64975620c30b70149138d9016a4087538287ae [file] [log] [blame]
/**
* <copyright>
*
* Copyright (c) 2011 See4sys and others.
* 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:
* See4sys - Initial API and implementation
*
* </copyright>
*/
package org.eclipse.sphinx.testutils.integration.referenceworkspace.xtendxpand;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.sphinx.emf.util.WorkspaceEditingDomainUtil;
import org.eclipse.sphinx.examples.hummingbird20.Hummingbird20MMDescriptor;
import org.eclipse.sphinx.examples.uml2.ide.metamodel.UML2MMDescriptor;
import org.eclipse.sphinx.testutils.integration.AbstractReferenceWorkspace;
import org.eclipse.sphinx.testutils.integration.referenceworkspace.xtendxpand.internal.Activator;
@SuppressWarnings("nls")
public class XtendXpandTestReferenceWorkspace extends AbstractReferenceWorkspace {
protected static final String DEFAULT_TEST_REFERENCE_WORKSPACE_ARCHIVE_FILE_NAME = "referenceWorkspace.zip";
// Xtend project.
//
public static final String HB_TRANSFORM_XTEND_PROJECT_NAME = "hummingbird20.transform.xtend";
public IProject transformXtendProject;
public static final String HB_TRANSFORM_XTEND_PROJECT_UML_MODEL_PATH = "model/sample.uml";
public static final String UML2_HB20_EXT_FILE_PATH = "extensions/UML2ToHummingbird20.ext";
public static final String XTEND_EXTENSION_NAME = "extensions::UML2ToHummingbird20::transform";
public static final String EXTENSION_FILE_NAME_TO_BE_LINK = "extensionFile.ext";
public static final String LINKED_XTEND_EXTENSION_NAME = "extensionFile::transform";
// Xpand project.
//
public static final String HB_CODEGEN_XPAND_PROJECT_NAME = "hummingbird20.codegen.xpand";
public IProject codegenXpandProject;
public static final String HB_CODEGEN_XPAND_PROJECT_HB_INSTANCE_MODEL_PATH = "model/sample.instancemodel";
public static final String HB_CODEGEN_XPAND_PROJECT_HB_TYPE_MODEL_PATH = "model/sampleType.typemodel";
public static final String HB_CODEGEN_XPAND_PROJECT_GEN_FILE_PATH = "HOUTLET/Config.h";
public static final String HB_CODEGEN_XPAND_PROJECT_HOUTLET_FOLDER_NAME = "HOUTLET";
public static final String CONFIGH_FILE_NAME = "Config.h";
public static final String CONFIGH_XPT_FILE_PATH = "templates/ConfigH.xpt";
public static final String CONFIGH_TO_HOUTLET_XPT_FILE_PATH = "templates/ConfigHToHoutlet.xpt";
public static final String CONFIGH_ASPECTS_XPT_FILE_PATH = "templates/ConfigHAspects.xpt";
public static final String PARAMETER_COMMENT_XPT_FILE_PATH = "templates/ParameterComment.xpt";
public static final String ROOT_XPT_FILE_PATH = "templates/Root.xpt";
public static final String XPAND_CONFIGH_DEFINITION_NAME = "templates::ConfigH::main";
public static final String XPAND_CONFIGH_TOHOUTLET_DEFINITION_NAME = "templates::ConfigHToHoutlet::main";
// Check model.
//
public static final String HB_CODEGEN_XPAND_PROJECT_CHECK_FILE_PATH = "checks/hb20Check.chk";
// Editing domains.
//
public TransactionalEditingDomain editingDomainUml2;
public TransactionalEditingDomain editingDomain20;
public XtendXpandTestReferenceWorkspace(String[] referenceProjectNames) {
super(referenceProjectNames);
}
public Plugin getReferenceWorkspacePlugin() {
return Activator.getPlugin();
}
public String getReferenceWorkspaceArchiveFileName() {
return DEFAULT_TEST_REFERENCE_WORKSPACE_ARCHIVE_FILE_NAME;
}
@Override
public void initContentAccessors() {
initReferenceProjectAccessors();
initReferenceEditingDomainAccessors();
}
protected void initReferenceProjectAccessors() {
transformXtendProject = getReferenceProject(HB_TRANSFORM_XTEND_PROJECT_NAME);
codegenXpandProject = getReferenceProject(HB_CODEGEN_XPAND_PROJECT_NAME);
}
protected void initReferenceEditingDomainAccessors() {
editingDomainUml2 = WorkspaceEditingDomainUtil.getEditingDomain(ResourcesPlugin.getWorkspace().getRoot(), UML2MMDescriptor.INSTANCE);
editingDomain20 = WorkspaceEditingDomainUtil.getEditingDomain(ResourcesPlugin.getWorkspace().getRoot(), Hummingbird20MMDescriptor.INSTANCE);
}
@Override
protected void initReferenceFileDescriptors() {
addFileDescriptors(HB_TRANSFORM_XTEND_PROJECT_NAME, new String[] { HB_TRANSFORM_XTEND_PROJECT_UML_MODEL_PATH }, UML2MMDescriptor.INSTANCE);
addFileDescriptors(HB_CODEGEN_XPAND_PROJECT_NAME, new String[] { HB_CODEGEN_XPAND_PROJECT_HB_INSTANCE_MODEL_PATH,
HB_CODEGEN_XPAND_PROJECT_HB_TYPE_MODEL_PATH }, Hummingbird20MMDescriptor.INSTANCE);
}
@Override
protected String[] getReferenceProjectsNames() {
return new String[] { HB_TRANSFORM_XTEND_PROJECT_NAME, HB_CODEGEN_XPAND_PROJECT_NAME };
}
}