Commit 824ddf74 authored by Florian Hölzl's avatar Florian Hölzl

finished plugin setup

added some .ecore meta models
defined kernel services and added empty implementations
parent f7168f0e
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="generated-src"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="build"/>
</classpath>
......@@ -7,8 +7,22 @@ Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: org.fortiss.af3.project.model,
Export-Package: org.fortiss.af3.project,
org.fortiss.af3.project.model,
org.fortiss.af3.project.model.configuration,
org.fortiss.af3.project.model.configuration.impl,
org.fortiss.af3.project.model.configuration.util,
org.fortiss.af3.project.model.development,
org.fortiss.af3.project.model.development.impl,
org.fortiss.af3.project.model.development.util,
org.fortiss.af3.project.model.domain,
org.fortiss.af3.project.model.domain.impl,
org.fortiss.af3.project.model.domain.util,
org.fortiss.af3.project.model.impl,
org.fortiss.af3.project.model.util
org.fortiss.af3.project.model.typesystem,
org.fortiss.af3.project.model.typesystem.impl,
org.fortiss.af3.project.model.typesystem.util,
org.fortiss.af3.project.model.util,
org.fortiss.af3.project.typesystem
Require-Bundle: org.fortiss.tooling.kernel;bundle-version="1.0.0";visibility:=reexport
Bundle-ActivationPolicy: lazy
......@@ -2,6 +2,108 @@
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model"
nsURI="http://www.fortiss.org/af3/project" nsPrefix="org-fortiss-af3">
<eClassifiers xsi:type="ecore:EClass" name="Dummy"/>
nsURI="http://www.fortiss.org/af3/project" nsPrefix="org-fortiss-af3-project">
<eClassifiers xsi:type="ecore:EClass" name="IProjectRootElement" abstract="true"
interface="true" eSuperTypes="#//INamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="IProjectRootElement is the super class of all root elements contained in AF3 projects."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProjectConfiguration" eSuperTypes="#//IProjectRootElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ProjectConfiguration is a singleton IProjectRootElement that collects all project configuration data."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="configurationElements"
upperBound="-1" eType="#//IProjectConfigurationElement" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="IProjectConfigurationElements contained in this project configuration."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IProjectConfigurationElement" abstract="true"
interface="true" eSuperTypes="#//INamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Parent class of configuration elements of an AF3 project."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="INamedElement" eSuperTypes="../../org.unicase.metamodel/model/metamodel.ecore#//ModelElementId">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Parent class of model objects with unique identifier and a name."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The model object's name."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eSubpackages name="configuration" nsURI="http://www.fortiss.org/af3/project/configuration"
nsPrefix="org-fortiss-af3-project-configuration">
<eClassifiers xsi:type="ecore:EClass" name="TypeSystemConfiguration" eSuperTypes="#//IProjectConfigurationElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Project configuration element for selecting a data type system."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="typesystem" eType="#//typesystem/ITypeSystem"
containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The selected type system."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DevelopmentProcessConfiguration" eSuperTypes="#//IProjectConfigurationElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Project configuration element for selecting a development process."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="development" eType="#//development/IDevelopmentProcess"
containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The selected development process."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DomainModelConfiguration" eSuperTypes="#//IProjectConfigurationElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Project configuration element for selecting a domain model."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="domainmodel" eType="#//domain/IDomainModel"
containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The selected domain model."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
</eSubpackages>
<eSubpackages name="typesystem" nsURI="http://www.fortiss.org/af3/project/typesystem"
nsPrefix="org-fortiss-af3-project-typesystem">
<eClassifiers xsi:type="ecore:EClass" name="ITypeSystem" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Parent interface of plugable type systems."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IType" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Parent interface of type specifications (e.g. variable type)."/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ITerm" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Parent interface of term instances (e.g. constants, operations, etc.)."/>
</eAnnotations>
</eClassifiers>
</eSubpackages>
<eSubpackages name="development" nsURI="http://www.fortiss.org/af3/project/development"
nsPrefix="org-fortiss-af3-project-development">
<eClassifiers xsi:type="ecore:EClass" name="IDevelopmentProcess" abstract="true"
interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Parent interface of plugable development processes."/>
</eAnnotations>
</eClassifiers>
</eSubpackages>
<eSubpackages name="domain" nsURI="http://www.fortiss.org/af3/project/domain" nsPrefix="org-fortiss-af3-project-domain">
<eClassifiers xsi:type="ecore:EClass" name="IDomainModel" abstract="true" interface="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Parent interface of plugable domain models."/>
</eAnnotations>
</eClassifiers>
</eSubpackages>
</ecore:EPackage>
<?xml version="1.0" encoding="UTF-8"?>
<genmodel:GenModel xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="(c) 2011 ForTISS GmbH"
xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="(c) 2011 ForTISS GmbH"
modelDirectory="/org.fortiss.af3.project/generated-src" editDirectory="org.fortiss.af3.project.edit/src"
editorDirectory="/org.fortiss.af3.project.editor/src" modelPluginID="org.fortiss.af3.project"
modelName="Model" modelPluginClass="" editPluginClass="org.fortiss.af3.project.model.provider.ModelEditPlugin"
editorPluginClass="org.fortiss.af3.project.model.presentation.ModelEditorPlugin"
testsDirectory="/org.fortiss.af3.project.tests/test-src" importerID="org.eclipse.emf.importer.ecore"
arrayAccessors="true" complianceLevel="5.0" copyrightFields="false">
containmentProxies="true" arrayAccessors="true" complianceLevel="5.0" copyrightFields="false">
<foreignModel>project.ecore</foreignModel>
<genPackages prefix="AF3Project" basePackage="org.fortiss.af3.project" disposableProviderFactory="true"
ecorePackage="project.ecore#/"/>
ecorePackage="project.ecore#/">
<genClasses image="false" ecoreClass="project.ecore#//IProjectRootElement"/>
<genClasses ecoreClass="project.ecore#//ProjectConfiguration">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference project.ecore#//ProjectConfiguration/configurationElements"/>
</genClasses>
<genClasses image="false" ecoreClass="project.ecore#//IProjectConfigurationElement"/>
<nestedGenPackages prefix="Configuration" disposableProviderFactory="true" ecorePackage="project.ecore#//configuration">
<genClasses ecoreClass="project.ecore#//configuration/TypeSystemConfiguration">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference project.ecore#//configuration/TypeSystemConfiguration/typesystem"/>
</genClasses>
<genClasses ecoreClass="project.ecore#//configuration/DevelopmentProcessConfiguration">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference project.ecore#//configuration/DevelopmentProcessConfiguration/typesystem"/>
</genClasses>
<genClasses ecoreClass="project.ecore#//configuration/DomainModelConfiguration">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference project.ecore#//configuration/DomainModelConfiguration/typesystem"/>
</genClasses>
</nestedGenPackages>
<nestedGenPackages prefix="Typesystem" disposableProviderFactory="true" ecorePackage="project.ecore#//typesystem">
<genClasses image="false" ecoreClass="project.ecore#//typesystem/ITypeSystem"/>
<genClasses image="false" ecoreClass="project.ecore#//typesystem/IType"/>
<genClasses image="false" ecoreClass="project.ecore#//typesystem/ITerm"/>
</nestedGenPackages>
<nestedGenPackages prefix="Development" disposableProviderFactory="true" ecorePackage="project.ecore#//development">
<genClasses image="false" ecoreClass="project.ecore#//development/IDevelopmentProcess"/>
</nestedGenPackages>
<nestedGenPackages prefix="Domain" disposableProviderFactory="true" ecorePackage="project.ecore#//domain">
<genClasses image="false" ecoreClass="project.ecore#//domain/IDomainModel"/>
</nestedGenPackages>
</genPackages>
</genmodel:GenModel>
......@@ -4,45 +4,36 @@ import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
/**
* The activator class controls the plug-in life cycle
* The activator class controls the plug-in life cycle.
*/
public class AF3ProjectActivator extends AbstractUIPlugin {
// The plug-in ID
/** The plug-in ID. */
public static final String PLUGIN_ID = "org.fortiss.af3.project"; //$NON-NLS-1$
// The shared instance
/** The shared instance. */
private static AF3ProjectActivator plugin;
/**
* The constructor
*/
/** Constructor. */
public AF3ProjectActivator() {
// do nothing
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
/** {@inheritDoc} */
@Override
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
/** {@inheritDoc} */
@Override
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
/** Returns the shared instance. */
public static AF3ProjectActivator getDefault() {
return plugin;
}
......
/*--------------------------------------------------------------------------+
$Id$
| |
| Copyright 2005-2010 Technische Universitaet Muenchen |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.project.typesystem;
import org.fortiss.af3.project.model.typesystem.ITerm;
import org.fortiss.af3.project.model.typesystem.IType;
/**
* Interface to be implemented by type system providers to check type
* consistency.
*
* @author hoelzlf
* @author $Author$
* @version $Rev$
* @levd.rating RED Rev:
*/
public interface ITypeChecker {
/**
* Type checks the given {@link ITerm} against the given expected
* {@link IType} using type system specific {@link ITypeContext}
* information.
*/
boolean typecheck(ITerm term, IType expected, ITypeContext context)
throws TypeCheckException;
}
/*--------------------------------------------------------------------------+
$Id$
| |
| Copyright 2005-2010 Technische Universitaet Muenchen |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.project.typesystem;
/**
* Interface for context information used during type checking.
*
* @author hoelzlf
* @author $Author$
* @version $Rev$
* @levd.rating RED Rev:
*/
public interface ITypeContext {
// TODO (FH): implement
}
/*--------------------------------------------------------------------------+
$Id$
| |
| Copyright 2005-2010 Technische Universitaet Muenchen |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.project.typesystem;
import org.fortiss.af3.project.model.typesystem.ITerm;
import org.fortiss.af3.project.model.typesystem.IType;
/**
* Interface to be implemented by type system providers to take care of type and
* term parsing.
*
* @author hoelzlf
* @author $Author$
* @version $Rev$
* @levd.rating RED Rev:
*/
public interface ITypeParser {
/**
* Parses the given String into an IType instance.
*/
IType parseType(String type);
/**
* Transforms the given String into an ITerm instance.
*/
ITerm parseTerm(String term);
}
/*--------------------------------------------------------------------------+
$Id$
| |
| Copyright 2005-2010 Technische Universitaet Muenchen |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.project.typesystem;
/**
* Generic type checker exception class.
*
* @author hoelzlf
* @author $Author$
* @version $Rev$
* @levd.rating RED Rev:
*/
public class TypeCheckException extends Exception {
// TODO (FH): implement
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment