Skip to content
Snippets Groups Projects
Commit c63b2b07 authored by Michael Leuschel's avatar Michael Leuschel
Browse files

solve iUML-B statemachine problem and make compatible with new core

Comment from bodeveix:
I have made new changes to make Camille compatible with the new Rodin core. The iUML-B statemachine diagram problem is also solved. I attach the new project sources files. I have incremented the version number.
parent 41aee250
No related branches found
No related tags found
No related merge requests found
Showing
with 102 additions and 90 deletions
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?><target name="camille_target" sequenceNumber="89"> <?pde version="3.8"?><target name="camille_target" sequenceNumber="90">
<locations> <locations>
<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit"> <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.emf.compare.ide.ui.feature.group" version="3.3.2.201709090201"/> <unit id="org.eclipse.emf.compare.ide.ui.feature.group" version="3.3.2.201709090201"/>
...@@ -22,11 +22,11 @@ ...@@ -22,11 +22,11 @@
<repository location="https://www3.hhu.de/stups/buildlibs/org.rodinp.dev/"/> <repository location="https://www3.hhu.de/stups/buildlibs/org.rodinp.dev/"/>
</location> </location>
<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit"> <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.emf.compare.feature.group" version="3.3.2.201709090201"/> <unit id="org.eclipse.emf.compare.feature.group" version="3.3.4.201806221350"/>
<unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="3.3.2.201709090201"/> <unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="3.3.4.201806221350"/>
<unit id="org.eclipse.emf.compare.rcp.ui.feature.group" version="3.3.2.201709090201"/> <unit id="org.eclipse.emf.compare.rcp.ui.feature.group" version="3.3.4.201806221350"/>
<unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="3.3.2.201709090201"/> <unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="3.3.4.201806221350"/>
<unit id="org.eclipse.emf.compare.source.feature.group" version="3.3.2.201709090201"/> <unit id="org.eclipse.emf.compare.source.feature.group" version="3.3.4.201806221350"/>
<repository location="http://download.eclipse.org/modeling/emf/compare/updates/releases"/> <repository location="http://download.eclipse.org/modeling/emf/compare/updates/releases"/>
</location> </location>
</locations> </locations>
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?><target name="prob_target" sequenceNumber="75"> <?pde version="3.8"?><target name="prob_target" sequenceNumber="80">
<locations> <locations>
<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit"> <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.rodinp.platform.product" version="3.1.0.201412171041-e1a03f3"/> <unit id="org.rodinp.platform.product" version="3.2.0.201506220911-ecacdcb"/>
<repository location="http://rodin-b-sharp.sourceforge.net/core-updates/"/> <repository location="http://rodin-b-sharp.sourceforge.net/core-updates/"/>
</location> </location>
<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit"> <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.emf.sdk.feature.group" version="2.10.2.v20150123-0452"/> <unit id="ac.soton.eventb.roseEditor.feature.feature.group" version="1.7.0.release"/>
<unit id="org.eclipse.emf.compare.source.feature.group" version="3.0.2.201501201328"/> <unit id="org.eventb.emf.feature.feature.group" version="6.0.0.release"/>
<unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="3.0.2.201501201328"/> <repository location="http://rodin-b-sharp.sourceforge.net/updates/"/>
<repository location="http://download.eclipse.org/releases/luna"/>
</location> </location>
<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit"> <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eventb.emf.feature.feature.group" version="5.3.0"/> <unit id="org.eclipse.emf.compare.ide.ui.feature.group" version="3.3.2.201709090201"/>
<unit id="ac.soton.eventb.statemachines.feature.feature.group" version="3.2.0"/> <unit id="org.eclipse.emf.sdk.feature.group" version="2.13.0.v20170609-0928"/>
<unit id="ac.soton.eventb.roseEditor.feature.feature.group" version="1.6.0"/> <unit id="org.eclipse.pde.feature.group" version="3.13.4.v20180330-0640"/>
<unit id="org.eventb.theory.feature.feature.group" version="3.0.0"/> <unit id="org.eclipse.sdk.feature.group" version="4.7.3.v20180330-0919"/>
<unit id="ac.soton.eventb.emf.core.extension.feature.feature.group" version="5.1.0"/> <repository location="http://download.eclipse.org/releases/oxygen/201804111000"/>
<repository location="http://rodin-b-sharp.sourceforge.net/updates/"/>
</location> </location>
</locations> </locations>
</target> </target>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<site> <site>
<feature url="features/org.eventb.texteditor.feature_2.2.0.jar" id="org.eventb.texteditor.feature" version="2.2.0"> <feature url="features/org.eventb.texteditor.feature_3.3.0.qualifier.jar" id="org.eventb.texteditor.feature" version="3.3.0.qualifier">
<category name="camille"/> <category name="camille"/>
</feature> </feature>
<category-def name="camille" label="camille"/> <category-def name="camille" label="camille"/>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<feature <feature
id="org.eventb.texteditor.feature" id="org.eventb.texteditor.feature"
label="Camille TextEditor" label="Camille TextEditor"
version="3.2.0.qualifier" version="3.3.0.qualifier"
provider-name="Heinrich-Heine University Dusseldorf" provider-name="Heinrich-Heine University Dusseldorf"
plugin="org.eventb.texteditor.ui"> plugin="org.eventb.texteditor.ui">
...@@ -10,8 +10,10 @@ ...@@ -10,8 +10,10 @@
A text editor for the Rodin platform to edit Event-B models A text editor for the Rodin platform to edit Event-B models
----------------------------------------------------------- -----------------------------------------------------------
Release History: Release History:
3.3.0 - Compatibility with core 3.3
3.2.0 - Rodin 3.2 compatible release 3.2.0 - Rodin 3.2 compatible release
3.1.2 - Fix some more bugs regarding theory parsing, fix saving changes to seen contexts. 3.1.2 - Fix some more bugs regarding theory parsing, fix saving
changes to seen contexts.
3.1.1 - Fix parsing of theory operators with more than one operand 3.1.1 - Fix parsing of theory operators with more than one operand
3.1.0 - Initial release for Rodin 3.1 3.1.0 - Initial release for Rodin 3.1
3.0.3 - Fix bugs / regressions intruduces by the Rodin 3.0 migration 3.0.3 - Fix bugs / regressions intruduces by the Rodin 3.0 migration
...@@ -170,41 +172,53 @@ Inc. in the United States, other countries, or both. ...@@ -170,41 +172,53 @@ Inc. in the United States, other countries, or both.
</url> </url>
<requires> <requires>
<import plugin="org.eventb.texttools" version="3.0.0" match="greaterOrEqual"/> <import plugin="org.eventb.emf.formulas" version="1.4.0" match="compatible"/>
<import plugin="org.eventb.emf.formulas" version="1.3.2" match="greaterOrEqual"/> <import plugin="org.eventb.emf.persistence" version="3.1.1" match="compatible"/>
<import plugin="org.eventb.emf.persistence" version="3.1.0" match="greaterOrEqual"/> <import plugin="org.eventb.ui" version="3.0.0" match="compatible"/>
<import plugin="org.eventb.ui" version="3.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.jface.text" version="3.6.0" match="compatible"/> <import plugin="org.eclipse.jface.text" version="3.6.0" match="compatible"/>
<import plugin="org.eclipse.emf.edit.ui" version="2.5.0" match="compatible"/> <import plugin="org.eclipse.emf.edit.ui" version="2.5.0" match="compatible"/>
<import plugin="org.eventb.core.ast" version="3.0.0" match="greaterOrEqual"/> <import plugin="org.eventb.core.ast" version="3.1.0" match="compatible"/>
<import plugin="org.eclipse.ui.editors" version="3.8.0" match="compatible"/> <import plugin="org.eclipse.ui.editors" version="3.8.0" match="compatible"/>
<import plugin="org.eclipse.ui.ide" version="3.8.2" match="compatible"/> <import plugin="org.eclipse.ui.ide" version="3.8.2" match="compatible"/>
<import plugin="org.rodinp.keyboard.ui" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.ui.workbench.texteditor"/> <import plugin="org.eclipse.ui.workbench.texteditor"/>
<import plugin="org.eclipse.core.resources" version="3.8.1" match="greaterOrEqual"/>
<import plugin="org.eventb.emf.core" version="4.0.0"/>
<import plugin="org.eclipse.core.runtime" version="3.10.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.ecore.xmi" version="2.10.1" match="greaterOrEqual"/>
<import plugin="org.rodinp.core" version="1.7.0" match="greaterOrEqual"/>
<import plugin="org.eventb.core" version="3.1.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.edit"/>
<import plugin="org.eventb.texteditor.parsers"/>
<import plugin="org.rodinp.keyboard.core" version="2.0.0" match="compatible"/>
<import plugin="org.rodinp.keyboard.ui" version="2.0.0" match="compatible"/>
<import plugin="org.eclipse.core.resources" version="3.8.1" match="compatible"/> <import plugin="org.eclipse.core.resources" version="3.8.1" match="compatible"/>
<import plugin="org.eventb.emf.core" version="4.0.0" match="greaterOrEqual"/> <import plugin="org.eclipse.emf.ecore"/>
<import feature="org.eclipse.emf.compare" version="3.0.1" match="compatible"/> <import plugin="org.eclipse.emf.compare" version="3.1.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.compare.edit" version="4.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.compare.ide" version="3.1.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.emf.compare.rcp" version="2.2.0" match="greaterOrEqual"/>
<import plugin="org.eventb.core" version="3.1.0" match="compatible"/>
</requires> </requires>
<plugin <plugin
id="org.eventb.texteditor.ui" id="org.eventb.texteditor.ui"
download-size="0" download-size="0"
install-size="0" install-size="0"
version="3.2.0.qualifier" version="3.3.0.qualifier"
unpack="false"/> unpack="false"/>
<plugin <plugin
id="org.eventb.texttools" id="org.eventb.texttools"
download-size="0" download-size="0"
install-size="0" install-size="0"
version="3.2.0.qualifier" version="3.3.0.qualifier"
unpack="false"/> unpack="false"/>
<plugin <plugin
id="org.eventb.texteditor.parsers" id="org.eventb.texteditor.parsers"
download-size="0" download-size="0"
install-size="0" install-size="0"
version="3.2.0.qualifier" version="3.3.0.qualifier"
unpack="false"/> unpack="false"/>
</feature> </feature>
...@@ -6,11 +6,11 @@ ...@@ -6,11 +6,11 @@
<parent> <parent>
<groupId>org.eventb.texteditor</groupId> <groupId>org.eventb.texteditor</groupId>
<artifactId>org.eventb.texteditor.parent</artifactId> <artifactId>org.eventb.texteditor.parent</artifactId>
<version>3.2.0.qualifier</version> <version>3.3.0.qualifier</version>
<relativePath>../org.eventb.texteditor.parent/pom.xml</relativePath> <relativePath>../org.eventb.texteditor.parent/pom.xml</relativePath>
</parent> </parent>
<groupId>org.eventb.texteditor</groupId> <groupId>org.eventb.texteditor</groupId>
<artifactId>org.eventb.texteditor.feature</artifactId> <artifactId>org.eventb.texteditor.feature</artifactId>
<version>3.2.0.qualifier</version> <version>3.3.0.qualifier</version>
<packaging>eclipse-feature</packaging> <packaging>eclipse-feature</packaging>
</project> </project>
...@@ -2,7 +2,7 @@ Manifest-Version: 1.0 ...@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-Name: Parsers for Camille Bundle-Name: Parsers for Camille
Bundle-SymbolicName: org.eventb.texteditor.parsers Bundle-SymbolicName: org.eventb.texteditor.parsers
Bundle-Version: 3.2.0.qualifier Bundle-Version: 3.3.0.qualifier
Bundle-Activator: org.eventb.texteditor.parsers.Activator Bundle-Activator: org.eventb.texteditor.parsers.Activator
Require-Bundle: org.eclipse.core.runtime Require-Bundle: org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
......
...@@ -2,10 +2,10 @@ Manifest-Version: 1.0 ...@@ -2,10 +2,10 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-Name: Camille Texteditor Bundle-Name: Camille Texteditor
Bundle-SymbolicName: org.eventb.texteditor.ui;singleton:=true Bundle-SymbolicName: org.eventb.texteditor.ui;singleton:=true
Bundle-Version: 3.2.0.qualifier Bundle-Version: 3.3.0.qualifier
Bundle-Localization: plugin Bundle-Localization: plugin
Bundle-Activator: org.eventb.texteditor.ui.TextEditorPluginImplementation Bundle-Activator: org.eventb.texteditor.ui.TextEditorPluginImplementation
Require-Bundle: org.eventb.texttools;bundle-version="[3.1.0,3.3.0)";visibility:=reexport, Require-Bundle: org.eventb.texttools;bundle-version="[3.1.0,3.4.0)";visibility:=reexport,
org.eventb.emf.formulas;bundle-version="[1.4.0,2.0.0)", org.eventb.emf.formulas;bundle-version="[1.4.0,2.0.0)",
org.eventb.emf.persistence;bundle-version="[3.1.1,4.0.0)";visibility:=reexport, org.eventb.emf.persistence;bundle-version="[3.1.1,4.0.0)";visibility:=reexport,
org.eventb.ui;bundle-version="[3.0.0,4.0.0)";visibility:=reexport, org.eventb.ui;bundle-version="[3.0.0,4.0.0)";visibility:=reexport,
...@@ -16,7 +16,7 @@ Require-Bundle: org.eventb.texttools;bundle-version="[3.1.0,3.3.0)";visibility:= ...@@ -16,7 +16,7 @@ Require-Bundle: org.eventb.texttools;bundle-version="[3.1.0,3.3.0)";visibility:=
org.eclipse.ui.ide;bundle-version="[3.8.2,4.0.0)", org.eclipse.ui.ide;bundle-version="[3.8.2,4.0.0)",
org.eclipse.ui.workbench.texteditor, org.eclipse.ui.workbench.texteditor,
org.eclipse.core.resources;bundle-version="3.8.1", org.eclipse.core.resources;bundle-version="3.8.1",
org.eventb.emf.core;bundle-version="[4.0.0,5.0.0)", org.eventb.emf.core;bundle-version="[4.0.0,6.0.0)",
org.eclipse.core.runtime;bundle-version="3.10.0", org.eclipse.core.runtime;bundle-version="3.10.0",
org.eclipse.emf.ecore.xmi;bundle-version="2.10.1", org.eclipse.emf.ecore.xmi;bundle-version="2.10.1",
org.rodinp.core;bundle-version="1.7.0", org.rodinp.core;bundle-version="1.7.0",
......
...@@ -20,7 +20,6 @@ import org.eventb.emf.core.EventBObject; ...@@ -20,7 +20,6 @@ import org.eventb.emf.core.EventBObject;
import org.eventb.emf.core.context.Context; import org.eventb.emf.core.context.Context;
import org.eventb.emf.core.machine.Event; import org.eventb.emf.core.machine.Event;
import org.eventb.emf.core.machine.Machine; import org.eventb.emf.core.machine.Machine;
import org.eventb.emf.core.machine.Variant;
import org.eventb.texteditor.ui.TextEditorPlugin; import org.eventb.texteditor.ui.TextEditorPlugin;
import org.eventb.texteditor.ui.build.dom.DomManager; import org.eventb.texteditor.ui.build.dom.DomManager;
import org.eventb.texteditor.ui.build.dom.IParseResultListener; import org.eventb.texteditor.ui.build.dom.IParseResultListener;
...@@ -167,12 +166,7 @@ public class ContentProvider implements ITreeContentProvider, ...@@ -167,12 +166,7 @@ public class ContentProvider implements ITreeContentProvider,
final ArrayList<EventBObject> children = new ArrayList<EventBObject>(); final ArrayList<EventBObject> children = new ArrayList<EventBObject>();
children.addAll(machine.getVariables()); children.addAll(machine.getVariables());
children.addAll(machine.getInvariants()); children.addAll(machine.getInvariants());
children.addAll(machine.getVariants());
final Variant variant = machine.getVariant();
if (variant != null) {
children.add(variant);
}
children.addAll(machine.getEvents()); children.addAll(machine.getEvents());
machineChildren = children.toArray(); machineChildren = children.toArray();
......
...@@ -2,7 +2,7 @@ Manifest-Version: 1.0 ...@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-Name: Event-B EMF Texttools Bundle-Name: Event-B EMF Texttools
Bundle-SymbolicName: org.eventb.texttools;singleton:=true Bundle-SymbolicName: org.eventb.texttools;singleton:=true
Bundle-Version: 3.2.0.qualifier Bundle-Version: 3.3.0.qualifier
Bundle-Activator: org.eventb.texttools.TextToolsPlugin Bundle-Activator: org.eventb.texttools.TextToolsPlugin
Require-Bundle: org.eclipse.jface.text;bundle-version="[3.6.0,4.0.0)", Require-Bundle: org.eclipse.jface.text;bundle-version="[3.6.0,4.0.0)",
org.eventb.emf.formulas;bundle-version="[1.4.0,2.0.0)", org.eventb.emf.formulas;bundle-version="[1.4.0,2.0.0)",
...@@ -12,7 +12,7 @@ Require-Bundle: org.eclipse.jface.text;bundle-version="[3.6.0,4.0.0)", ...@@ -12,7 +12,7 @@ Require-Bundle: org.eclipse.jface.text;bundle-version="[3.6.0,4.0.0)",
org.eclipse.emf.ecore, org.eclipse.emf.ecore,
org.eventb.texteditor.parsers, org.eventb.texteditor.parsers,
org.eclipse.core.runtime;bundle-version="3.10.0", org.eclipse.core.runtime;bundle-version="3.10.0",
org.eventb.emf.core;bundle-version="[4.0.0,5.0.0)", org.eventb.emf.core;bundle-version="[4.0.0,6.0.0)",
org.rodinp.core;bundle-version="1.7.0", org.rodinp.core;bundle-version="1.7.0",
org.eclipse.emf.compare;bundle-version="3.1.1", org.eclipse.emf.compare;bundle-version="3.1.1",
org.eclipse.emf.compare.edit;bundle-version="4.0.0", org.eclipse.emf.compare.edit;bundle-version="4.0.0",
......
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
...@@ -27,7 +27,6 @@ import org.eclipse.emf.compare.DifferenceState; ...@@ -27,7 +27,6 @@ import org.eclipse.emf.compare.DifferenceState;
import org.eclipse.emf.compare.EMFCompare; import org.eclipse.emf.compare.EMFCompare;
import org.eclipse.emf.compare.diff.DefaultDiffEngine; import org.eclipse.emf.compare.diff.DefaultDiffEngine;
import org.eclipse.emf.compare.diff.IDiffEngine; import org.eclipse.emf.compare.diff.IDiffEngine;
import org.eclipse.emf.compare.internal.spec.ReferenceChangeSpec;
import org.eclipse.emf.compare.match.DefaultComparisonFactory; import org.eclipse.emf.compare.match.DefaultComparisonFactory;
import org.eclipse.emf.compare.match.DefaultEqualityHelperFactory; import org.eclipse.emf.compare.match.DefaultEqualityHelperFactory;
import org.eclipse.emf.compare.match.IComparisonFactory; import org.eclipse.emf.compare.match.IComparisonFactory;
...@@ -35,12 +34,9 @@ import org.eclipse.emf.compare.match.IMatchEngine; ...@@ -35,12 +34,9 @@ import org.eclipse.emf.compare.match.IMatchEngine;
import org.eclipse.emf.compare.match.eobject.IEObjectMatcher; import org.eclipse.emf.compare.match.eobject.IEObjectMatcher;
import org.eclipse.emf.compare.match.impl.MatchEngineFactoryImpl; import org.eclipse.emf.compare.match.impl.MatchEngineFactoryImpl;
import org.eclipse.emf.compare.match.impl.MatchEngineFactoryRegistryImpl; import org.eclipse.emf.compare.match.impl.MatchEngineFactoryRegistryImpl;
import org.eclipse.emf.compare.merge.BatchMerger;
import org.eclipse.emf.compare.merge.ConflictMerger;
import org.eclipse.emf.compare.merge.IMerger; import org.eclipse.emf.compare.merge.IMerger;
import org.eclipse.emf.compare.merge.IMerger.Registry; import org.eclipse.emf.compare.merge.IMerger.Registry;
import org.eclipse.emf.compare.merge.IMerger.RegistryImpl; import org.eclipse.emf.compare.merge.IMerger.RegistryImpl;
import org.eclipse.emf.compare.merge.PseudoConflictMerger;
import org.eclipse.emf.compare.scope.DefaultComparisonScope; import org.eclipse.emf.compare.scope.DefaultComparisonScope;
import org.eclipse.emf.compare.scope.IComparisonScope; import org.eclipse.emf.compare.scope.IComparisonScope;
import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClass;
...@@ -54,7 +50,6 @@ import org.eventb.emf.core.EventBNamedCommentedComponentElement; ...@@ -54,7 +50,6 @@ import org.eventb.emf.core.EventBNamedCommentedComponentElement;
import org.eventb.texttools.diffmerge.EventBDiffProcessor; import org.eventb.texttools.diffmerge.EventBDiffProcessor;
import org.eventb.texttools.diffmerge.EventBEObjectMatcher; import org.eventb.texttools.diffmerge.EventBEObjectMatcher;
import org.eventb.texttools.diffmerge.EventBMerger; import org.eventb.texttools.diffmerge.EventBMerger;
import org.eventb.texttools.diffmerge.EventBMerger;
import org.eventb.texttools.prettyprint.PrettyPrinter; import org.eventb.texttools.prettyprint.PrettyPrinter;
import de.be4.eventb.core.parser.BException; import de.be4.eventb.core.parser.BException;
...@@ -64,7 +59,6 @@ import de.be4.eventb.core.parser.node.AMachineParseUnit; ...@@ -64,7 +59,6 @@ import de.be4.eventb.core.parser.node.AMachineParseUnit;
import de.be4.eventb.core.parser.node.PParseUnit; import de.be4.eventb.core.parser.node.PParseUnit;
import de.be4.eventb.core.parser.node.Start; import de.be4.eventb.core.parser.node.Start;
//import org.eventb.texttools.merge.ModelMerge;
public class PersistenceHelper { public class PersistenceHelper {
...@@ -117,7 +111,6 @@ public class PersistenceHelper { ...@@ -117,7 +111,6 @@ public class PersistenceHelper {
public static void addTextAnnotation(final Resource resource, public static void addTextAnnotation(final Resource resource,
final String textRepresentation, final long timeStamp) final String textRepresentation, final long timeStamp)
throws CoreException { throws CoreException {
//System.out.println("TEXT1:"+textRepresentation);
final EventBNamedCommentedComponentElement component = getComponent(resource); final EventBNamedCommentedComponentElement component = getComponent(resource);
if (component != null) { if (component != null) {
addTextAnnotation(component, textRepresentation, timeStamp); addTextAnnotation(component, textRepresentation, timeStamp);
...@@ -133,7 +126,6 @@ public class PersistenceHelper { ...@@ -133,7 +126,6 @@ public class PersistenceHelper {
final EMap<String, Attribute> attributes = element.getAttributes(); final EMap<String, Attribute> attributes = element.getAttributes();
// update text representation // update text representation
//System.out.println("TEXT2:"+textRepresentation);
Attribute textAttribute = attributes Attribute textAttribute = attributes
.get(TextToolsPlugin.TYPE_TEXTREPRESENTATION.getId()); .get(TextToolsPlugin.TYPE_TEXTREPRESENTATION.getId());
if (textAttribute == null) { if (textAttribute == null) {
...@@ -176,7 +168,7 @@ public class PersistenceHelper { ...@@ -176,7 +168,7 @@ public class PersistenceHelper {
if (d.getState() != DifferenceState.MERGED) if (d.getState() != DifferenceState.MERGED)
evbMerger.copyRightToLeft(d,null); evbMerger.copyRightToLeft(d,null);
} catch(Exception e) { } catch(Exception e) {
System.out.println("SKIP:"+d); System.out.println("SKIPPED:"+d);
} }
} }
......
...@@ -17,27 +17,22 @@ public class EventBMerger extends AbstractMerger { ...@@ -17,27 +17,22 @@ public class EventBMerger extends AbstractMerger {
@Override @Override
public boolean isMergerFor(Diff target) { public boolean isMergerFor(Diff target) {
//FIXME: could return true in all cases??? String pack = "";
if (target instanceof ReferenceChange) { if (target instanceof ReferenceChange) {
ReferenceChange rtarget = (ReferenceChange) target; ReferenceChange rc = (ReferenceChange) target;
EReference reference = rtarget.getReference(); pack = rc.getReference().getEContainingClass().getEPackage().getName();
if (reference.getName().equals("extends") //System.out.println("REF PACK:"+pack);
|| reference.getName().equals("refines") } else if (target instanceof AttributeChange) {
|| reference.getName().equals("sees")) { AttributeChange ac = (AttributeChange) target;
return true; pack = ac.getAttribute().getEContainingClass().getEPackage().getName();
} //System.out.println("ATTR PACK:"+pack);
//FIXME: find a way to avoid naming all core MM attributes } else {
//but test seems useless ... => always returns true?
if (reference.getName().contains("extension")) {
System.out.println("REFERENCE:"+reference.getName());
return false;
}
return true;
} else if (target instanceof AttributeChange)
return true;
System.out.println("TARGET:"+target); System.out.println("TARGET:"+target);
return false; return false;
} }
return pack.equals("core") || pack.equals("machine") || pack.equals("context") || pack.equals("formulas");
}
//@Override //@Override
protected void accept(final Diff diff, boolean rightToLeft) { protected void accept(final Diff diff, boolean rightToLeft) {
...@@ -50,6 +45,11 @@ public class EventBMerger extends AbstractMerger { ...@@ -50,6 +45,11 @@ public class EventBMerger extends AbstractMerger {
// do we always merge right to left in Camille? // do we always merge right to left in Camille?
assert (rightToLeft); assert (rightToLeft);
if (!isMergerFor(diff)) {
super.reject(diff, rightToLeft);
return;
}
EObject left = diff.getMatch().getLeft(); EObject left = diff.getMatch().getLeft();
EObject right = diff.getMatch().getRight(); EObject right = diff.getMatch().getRight();
...@@ -65,6 +65,7 @@ public class EventBMerger extends AbstractMerger { ...@@ -65,6 +65,7 @@ public class EventBMerger extends AbstractMerger {
ReferenceChange d = (ReferenceChange) diff; ReferenceChange d = (ReferenceChange) diff;
//System.out.println("REF CHANGE:"+d.getReference()); //System.out.println("REF CHANGE:"+d.getReference());
//System.out.println("REF VALUE:"+ d.getValue()); //System.out.println("REF VALUE:"+ d.getValue());
rm.copyRightToLeft(diff,null); rm.copyRightToLeft(diff,null);
Object l = left.eGet(d.getReference()); Object l = left.eGet(d.getReference());
Object r = right.eGet(d.getReference()); Object r = right.eGet(d.getReference());
...@@ -77,6 +78,7 @@ public class EventBMerger extends AbstractMerger { ...@@ -77,6 +78,7 @@ public class EventBMerger extends AbstractMerger {
AttributeChange d = (AttributeChange) diff; AttributeChange d = (AttributeChange) diff;
//System.out.println("ATTR CHANGE:"+d.getAttribute()); //System.out.println("ATTR CHANGE:"+d.getAttribute());
//System.out.println("ATTR VALUE:"+ d.getValue()); //System.out.println("ATTR VALUE:"+ d.getValue());
am.copyRightToLeft(diff,null); am.copyRightToLeft(diff,null);
Object l = left.eGet(d.getAttribute()); Object l = left.eGet(d.getAttribute());
Object r = right.eGet(d.getAttribute()); Object r = right.eGet(d.getAttribute());
......
...@@ -17,7 +17,7 @@ import org.eventb.core.IMachineRoot; ...@@ -17,7 +17,7 @@ import org.eventb.core.IMachineRoot;
import org.eventb.core.ast.ASTProblem; import org.eventb.core.ast.ASTProblem;
import org.eventb.core.ast.FormulaFactory; import org.eventb.core.ast.FormulaFactory;
import org.eventb.core.ast.IParseResult; import org.eventb.core.ast.IParseResult;
import org.eventb.emf.core.EventBCommentedExpressionElement; import org.eventb.emf.core.EventBNamedCommentedExpressionElement;
import org.eventb.emf.core.EventBElement; import org.eventb.emf.core.EventBElement;
import org.eventb.emf.core.EventBNamedCommentedComponentElement; import org.eventb.emf.core.EventBNamedCommentedComponentElement;
import org.eventb.emf.core.EventBNamedCommentedPredicateElement; import org.eventb.emf.core.EventBNamedCommentedPredicateElement;
...@@ -92,7 +92,7 @@ public class FormulaResolver { ...@@ -92,7 +92,7 @@ public class FormulaResolver {
return exceptions; return exceptions;
} }
public static void resolve(final EventBCommentedExpressionElement emfExpr) public static void resolve(final EventBNamedCommentedExpressionElement emfExpr)
throws FormulaParseException { throws FormulaParseException {
final String expression = emfExpr.getExpression(); final String expression = emfExpr.getExpression();
resolve(emfExpr, expression, resolve(emfExpr, expression,
......
...@@ -9,7 +9,7 @@ package org.eventb.texttools.formulas; ...@@ -9,7 +9,7 @@ package org.eventb.texttools.formulas;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.eventb.emf.core.EventBCommentedExpressionElement; import org.eventb.emf.core.EventBNamedCommentedExpressionElement;
import org.eventb.emf.core.EventBNamedCommentedPredicateElement; import org.eventb.emf.core.EventBNamedCommentedPredicateElement;
import org.eventb.emf.core.EventBObject; import org.eventb.emf.core.EventBObject;
import org.eventb.emf.core.machine.Action; import org.eventb.emf.core.machine.Action;
...@@ -38,8 +38,8 @@ public class MachineResolveSwitch extends MachineSwitch<Boolean> { ...@@ -38,8 +38,8 @@ public class MachineResolveSwitch extends MachineSwitch<Boolean> {
} }
@Override @Override
public Boolean caseEventBCommentedExpressionElement( public Boolean caseEventBNamedCommentedExpressionElement(
final EventBCommentedExpressionElement object) { final EventBNamedCommentedExpressionElement object) {
try { try {
FormulaResolver.resolve(object); FormulaResolver.resolve(object);
} catch (final FormulaParseException e) { } catch (final FormulaParseException e) {
......
...@@ -107,9 +107,10 @@ public class TransformationVisitor extends DepthFirstAdapter { ...@@ -107,9 +107,10 @@ public class TransformationVisitor extends DepthFirstAdapter {
// variant // variant
if (node.getVariant() != null) { if (node.getVariant() != null) {
newNode.setVariant((Variant) stack.pop()); newNode.getVariants().add((Variant) stack.pop());
} }
// TODO theorems // TODO theorems
//final EList<Theorem> theorems = newNode.getTheorems(); //final EList<Theorem> theorems = newNode.getTheorems();
// handleList(theorems, node.getTheorems().size()); // handleList(theorems, node.getTheorems().size());
......
...@@ -71,13 +71,7 @@ public class MachinePrintSwitch extends MachineSwitch<Boolean> implements ...@@ -71,13 +71,7 @@ public class MachinePrintSwitch extends MachineSwitch<Boolean> implements
printInvariants(object.getInvariants(), newLine); printInvariants(object.getInvariants(), newLine);
// variant // variant
final Variant variant = object.getVariant(); printVariants(object.getVariants(), newLine);
if (variant != null) {
if (newLine) {
printer.appendLineBreak();
}
doSwitch(variant);
}
// events // events
printEvents(object.getEvents(), newLine); printEvents(object.getEvents(), newLine);
...@@ -121,7 +115,6 @@ public class MachinePrintSwitch extends MachineSwitch<Boolean> implements ...@@ -121,7 +115,6 @@ public class MachinePrintSwitch extends MachineSwitch<Boolean> implements
@Override @Override
public Boolean caseVariant(final Variant object) { public Boolean caseVariant(final Variant object) {
printer.appendWithSpace(VARIANT);
printer.appendFormula(object.getExpression(), printer printer.appendFormula(object.getExpression(), printer
.hasComment(object)); .hasComment(object));
printer.appendComment(object); printer.appendComment(object);
...@@ -251,6 +244,24 @@ public class MachinePrintSwitch extends MachineSwitch<Boolean> implements ...@@ -251,6 +244,24 @@ public class MachinePrintSwitch extends MachineSwitch<Boolean> implements
} }
} }
private void printVariants(final EList<Variant> variants,
final boolean newLine) {
if (variants.size() > 0) {
if (newLine) {
printer.appendLineBreak();
}
printer.appendWithLineBreak(VARIANT);
printer.increaseIndentLevel();
for (final Variant variant : variants) {
doSwitch(variant);
}
printer.decreaseIndentLevel();
}
}
private void printEvents(final EList<Event> events, final boolean newLine) { private void printEvents(final EList<Event> events, final boolean newLine) {
if (events.size() > 0) { if (events.size() > 0) {
if (newLine) { if (newLine) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment