diff options
author | Henrik Rentz-Reichert | 2017-11-03 17:55:33 +0000 |
---|---|---|
committer | Henrik Rentz-Reichert | 2017-11-03 17:55:33 +0000 |
commit | dd3e302364ab7e2e9ee244eafef6ca8108bca87d (patch) | |
tree | 46cb84c24ee7c06c7cfa5052744aa1290d167936 | |
parent | 37d506d21b2d9d2867c07d6470795c31965d96cf (diff) | |
download | org.eclipse.etrice-newfsmgen.tar.gz org.eclipse.etrice-newfsmgen.tar.xz org.eclipse.etrice-newfsmgen.zip |
for state machines
* bug fix for position provider and initial points
Change-Id: I0fd1c33096b886827daae0883f0790d1a5e970d4
10 files changed, 196 insertions, 576 deletions
diff --git a/plugins/org.eclipse.etrice.core.fsm/src/org/eclipse/etrice/core/fsm/util/FSMHelpers.java b/plugins/org.eclipse.etrice.core.fsm/src/org/eclipse/etrice/core/fsm/util/FSMHelpers.java index 38f91a58c..c6c28b6a0 100644 --- a/plugins/org.eclipse.etrice.core.fsm/src/org/eclipse/etrice/core/fsm/util/FSMHelpers.java +++ b/plugins/org.eclipse.etrice.core.fsm/src/org/eclipse/etrice/core/fsm/util/FSMHelpers.java @@ -243,12 +243,21 @@ public class FSMHelpers extends BaseHelpers { } /** + * @param sg a {@link StateGraph} + * @return <code>true</code> if the state graph represents the top level (i.e. + * is the actor's state machine) + */ + public boolean isTopLevel(StateGraph sg) { + return !(sg.eContainer() instanceof State); + } + + /** * @param s a {@link State} * @return <code>true</code> if the state resides in the top level (i.e. * directly in the actor's state machine) */ public boolean isTopLevel(StateGraphNode s) { - return !(s.eContainer().eContainer() instanceof State); + return isTopLevel((StateGraph) s.eContainer()); } /** diff --git a/plugins/org.eclipse.etrice.ui.behavior.fsm/.classpath b/plugins/org.eclipse.etrice.ui.behavior.fsm/.classpath index 358df1bc1..87e8cd659 100644 --- a/plugins/org.eclipse.etrice.ui.behavior.fsm/.classpath +++ b/plugins/org.eclipse.etrice.ui.behavior.fsm/.classpath @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" path="xtend-gen"/> - <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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="xtend-gen"/> <classpathentry kind="src" path="src"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/plugins/org.eclipse.etrice.ui.behavior.fsm/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.etrice.ui.behavior.fsm/.settings/org.eclipse.jdt.core.prefs index c537b6306..0c68a61dc 100644 --- a/plugins/org.eclipse.etrice.ui.behavior.fsm/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.eclipse.etrice.ui.behavior.fsm/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/plugins/org.eclipse.etrice.ui.behavior.fsm/META-INF/MANIFEST.MF b/plugins/org.eclipse.etrice.ui.behavior.fsm/META-INF/MANIFEST.MF index 7b4338cf0..ef8d440cf 100644 --- a/plugins/org.eclipse.etrice.ui.behavior.fsm/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.etrice.ui.behavior.fsm/META-INF/MANIFEST.MF @@ -19,7 +19,7 @@ Require-Bundle: org.eclipse.etrice.core.common.ui;bundle-version="1.1.0", org.eclipse.xtext.ui;bundle-version="2.7.0", org.eclipse.xtend.lib;bundle-version="2.7.0", org.eclipse.xtext.ui.shared;bundle-version="2.7.0" -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Export-Package: org.eclipse.etrice.ui.behavior.fsm.actioneditor, org.eclipse.etrice.ui.behavior.fsm.actioneditor.preferences, diff --git a/plugins/org.eclipse.etrice.ui.behavior.fsm/src/org/eclipse/etrice/ui/behavior/fsm/provider/BaseDiagramProvider.xtend b/plugins/org.eclipse.etrice.ui.behavior.fsm/src/org/eclipse/etrice/ui/behavior/fsm/provider/BaseDiagramProvider.xtend index 3d3f28823..33cab8742 100644 --- a/plugins/org.eclipse.etrice.ui.behavior.fsm/src/org/eclipse/etrice/ui/behavior/fsm/provider/BaseDiagramProvider.xtend +++ b/plugins/org.eclipse.etrice.ui.behavior.fsm/src/org/eclipse/etrice/ui/behavior/fsm/provider/BaseDiagramProvider.xtend @@ -18,7 +18,9 @@ import java.util.Collection import org.eclipse.emf.ecore.EObject import org.eclipse.emf.ecore.util.EcoreUtil import org.eclipse.etrice.core.fsm.fSM.ModelComponent +import org.eclipse.etrice.core.fsm.fSM.StateGraph import org.eclipse.etrice.ui.behavior.fsm.editor.AbstractFSMDiagramTypeProvider +import org.eclipse.etrice.ui.behavior.fsm.support.util.FSMSupportUtil import org.eclipse.etrice.ui.common.base.support.DiagramAccessBase import org.eclipse.graphiti.mm.pictograms.PictogramElement import org.eclipse.graphiti.mm.pictograms.PictogramLink @@ -33,6 +35,7 @@ import org.eclipse.graphiti.services.Graphiti class BaseDiagramProvider { val Multimap<EObject, PictogramElement> baseDiagramBusinessObjs = ArrayListMultimap.create + val fsmHelpers = FSMSupportUtil.instance.FSMHelpers new(AbstractFSMDiagramTypeProvider diagramTypeProvider) { val diagramAccess = diagramTypeProvider.injector.getInstance(DiagramAccessBase) @@ -53,14 +56,24 @@ class BaseDiagramProvider { // create mapping from business object to pictogram elements EcoreUtil.ExternalCrossReferencer.find(baseDiagram).forEach [ targetEObj, eFeatureSetting | eFeatureSetting.map[getEObject].filter(PictogramLink).map[pictogramElement].forEach [ pe | - baseDiagramBusinessObjs.put(targetEObj, pe) + put(mc, targetEObj, pe) ] ] // base diagram resource not needed anymore rs.resources.remove(baseDiagram.eResource) } - ] + ] + } + + private def put(ModelComponent mc, EObject obj, PictogramElement value) { + if (obj instanceof StateGraph) { + if (fsmHelpers.isTopLevel(obj)) { + // to find the initial point of the TOP level we need the ModelComponent's stateMachine as a key + baseDiagramBusinessObjs.put(mc.stateMachine, value) + } + } + baseDiagramBusinessObjs.put(obj, value) } def Collection<PictogramElement> getPictograms(EObject roomObj) { diff --git a/plugins/org.eclipse.etrice.ui.behavior.fsm/src/org/eclipse/etrice/ui/behavior/fsm/support/DefaultPositionProvider.java b/plugins/org.eclipse.etrice.ui.behavior.fsm/src/org/eclipse/etrice/ui/behavior/fsm/support/DefaultPositionProvider.java deleted file mode 100644 index 97b86b5d6..000000000 --- a/plugins/org.eclipse.etrice.ui.behavior.fsm/src/org/eclipse/etrice/ui/behavior/fsm/support/DefaultPositionProvider.java +++ /dev/null @@ -1,350 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 protos software gmbh (http://www.protos.de). - * 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: - * Henrik Rentz-Reichert (initial contribution) - * - *******************************************************************************/ - -package org.eclipse.etrice.ui.behavior.fsm.support; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.etrice.core.fsm.fSM.ChoicePoint; -import org.eclipse.etrice.core.fsm.fSM.ModelComponent; -import org.eclipse.etrice.core.fsm.fSM.State; -import org.eclipse.etrice.core.fsm.fSM.StateGraph; -import org.eclipse.etrice.core.fsm.fSM.StateGraphItem; -import org.eclipse.etrice.core.fsm.fSM.StateGraphNode; -import org.eclipse.etrice.core.fsm.fSM.TrPoint; -import org.eclipse.etrice.core.fsm.fSM.Transition; -import org.eclipse.etrice.core.fsm.naming.FSMNameProvider; -import org.eclipse.etrice.ui.behavior.fsm.commands.StateGraphContext; -import org.eclipse.etrice.ui.behavior.fsm.support.util.FSMSupportUtil; -import org.eclipse.etrice.ui.common.base.support.DiagramAccessBase; -import org.eclipse.graphiti.mm.algorithms.GraphicsAlgorithm; -import org.eclipse.graphiti.mm.algorithms.Text; -import org.eclipse.graphiti.mm.algorithms.styles.Point; -import org.eclipse.graphiti.mm.pictograms.Connection; -import org.eclipse.graphiti.mm.pictograms.ConnectionDecorator; -import org.eclipse.graphiti.mm.pictograms.ContainerShape; -import org.eclipse.graphiti.mm.pictograms.Diagram; -import org.eclipse.graphiti.mm.pictograms.FreeFormConnection; -import org.eclipse.graphiti.mm.pictograms.Shape; -import org.eclipse.graphiti.services.Graphiti; -import org.eclipse.graphiti.services.ILinkService; - -import com.google.inject.Injector; - -/** - * @author Henrik Rentz-Reichert (initial contribution) - * - */ -public class DefaultPositionProvider implements IPositionProvider { - private static class Position { - double x; - double y; - double sx; - double sy; - } - - private HashMap<String, Position> obj2pos = new HashMap<String, Position>(); - private HashMap<String, Position> subObj2pos = new HashMap<String, Position>(); - private HashMap<String, ArrayList<Position>> trans2points = new HashMap<String, ArrayList<Position>>(); - private HashMap<String, StateGraph> initialPointObj = new HashMap<String, StateGraph>(); - private HashMap<String, PosAndSize> sg2sz = new HashMap<String, PosAndSize>(); - private double scaleX; - private double scaleY; - private int posX, posY; - - public DefaultPositionProvider(ModelComponent mc, Injector injector) { - mapPositions(mc.getBase(), injector); - } - - /* (non-Javadoc) - * @see org.eclipse.etrice.ui.behavior.support.IPositionProvider#setScale(double, double) - */ - @Override - public void setScale(double sx, double sy) { - this.scaleX = sx; - this.scaleY = sy; - } - - @Override - public void setPosition(int x, int y){ - this.posX = x; - this.posY = y; - } - - public PosAndSize getPosition(StateGraphNode node) { - Position pos = obj2pos.get(FSMSupportUtil.getInstance().getFSMNameProvider().getFullPath(node)); - if (pos==null) - return null; - - int margin = getMargin(node); - PosAndSize pt = new PosAndSize( - (int) (pos.x * scaleX) + margin, - (int) (pos.y * scaleY) + margin, - (int) (pos.sx * scaleX), - (int) (pos.sy * scaleY) - ); - return pt; - } - - @Override - public PosAndSize getPosition(StateGraph graph) { - EObject container = graph.eContainer(); - String path = "#init"; - if(container instanceof StateGraphNode) - path = FSMSupportUtil.getInstance().getFSMNameProvider().getFullPath((StateGraphNode)container) + path; - Position pos = obj2pos.get(path); - - if (pos==null) - return null; - - int margin = getMargin(graph); - PosAndSize pt = new PosAndSize( - (int) (pos.x * scaleX) + margin, - (int) (pos.y * scaleY) + margin, - (int) (pos.sx * scaleX), - (int) (pos.sy * scaleY) - ); - return pt; - } - - public List<Pos> getPoints(Transition trans) { - ArrayList<Pos> result = new ArrayList<Pos>(); - - ArrayList<Position> list = trans2points.get(FSMSupportUtil.getInstance().getFSMNameProvider().getFullPath(trans)); - if (list!=null) { - int i = 0; - for (Position p : list) { - Pos pos = - new Pos( - (int) (p.x * scaleX) + ((i==0)?0:posX), - (int) (p.y * scaleY) + ((i==0)?0:posY) - ); - result.add(pos); - i++; - } - } - - return result; - } - - /* (non-Javadoc) - * @see org.eclipse.etrice.ui.behavior.support.IPositionProvider#getPositions(java.util.List) - */ - @Override - public <T extends StateGraphNode> List<PosAndSize> getPositions(List<T> nodes) { - ArrayList<PosAndSize> result = new ArrayList<PosAndSize>(nodes.size()); - - if (nodes.isEmpty()) - return result; - - int n = 0; - for (T node : nodes) { - PosAndSize pt = getPosition(node); - result.add(pt); - if (pt==null) - n++; - } - - int delta = (int) (scaleX/(n+1)); - int pos = delta; - - int h = StateGraphSupport.MARGIN; - if (nodes.get(0) instanceof State) - h = StateGraphSupport.MARGIN + StateGraphSupport.DEFAULT_SIZE_Y/4; - else if (nodes.get(0) instanceof ChoicePoint) - h = StateGraphSupport.MARGIN + StateGraphSupport.DEFAULT_SIZE_Y/2; - else if (nodes.get(0) instanceof TrPoint) - h = StateGraphSupport.MARGIN; - else { - assert(false): "unexpected sub type"; - } - - for (int i=0; i<nodes.size(); ++i) { - if (result.get(i)==null) { - PosAndSize pt = new PosAndSize( - pos, - h, - 0, - 0 - ); - result.set(i, pt); - - pos += delta; - } - } - - return result; - } - - /** - * Load base class diagrams recursively and put midpoint positions relative to boundary rectangle into map. - * - * Positions are relative to the invisible rectangle. They are transformed to the border rectangle and normalized. - * - * @param mc - * @param obj2pos - */ - private void mapPositions(ModelComponent mc, Injector injector) { - if (mc==null) - return; - - DiagramAccessBase diagramAccess = injector.getInstance(DiagramAccessBase.class); - Diagram diagram = diagramAccess.getDiagram(mc); - if (diagram==null) - return; - - StateGraphContext tree = StateGraphContext.createContextTree(FSMSupportUtil.getInstance().getModelComponent(diagram), injector); - FSMNameProvider fsmNameProvider = FSMSupportUtil.getInstance().getFSMNameProvider(); - - ILinkService linkService = Graphiti.getLinkService(); - for (Shape sgShape : diagram.getChildren()) { - // this is the level of StateGraphs - if (sgShape instanceof ContainerShape) { - EObject obj = linkService.getBusinessObjectForLinkedPictogramElement(sgShape); - GraphicsAlgorithm borderRect = sgShape.getGraphicsAlgorithm().getGraphicsAlgorithmChildren().get(0); - double width = borderRect.getWidth(); - double height = borderRect.getHeight(); - PosAndSize sz = new PosAndSize( - sgShape.getGraphicsAlgorithm().getX(), sgShape.getGraphicsAlgorithm().getY(), - borderRect.getWidth(), borderRect.getHeight()); - sg2sz.put(fsmNameProvider.getFullPath((StateGraph) obj), sz); - for (Shape sgItemShape : ((ContainerShape)sgShape).getChildren()) { - // this is the level of States, TrPoints and ChoicePoints - obj = linkService.getBusinessObjectForLinkedPictogramElement(sgItemShape); - GraphicsAlgorithm ga = sgItemShape.getGraphicsAlgorithm(); - if(ga==null) - continue; - int margin = 0; - String path = null; - if (obj instanceof StateGraphNode) { - StateGraphNode node = (StateGraphNode)obj; - margin = getMargin(node); - path = fsmNameProvider.getFullPath((StateGraphItem) obj); - - if(sgItemShape instanceof ContainerShape){ - // sub items - for(Shape childShape : ((ContainerShape)sgItemShape).getChildren()){ - EObject childObj = linkService.getBusinessObjectForLinkedPictogramElement(childShape); - if(childObj instanceof StateGraphItem){ - GraphicsAlgorithm childGa = childShape.getGraphicsAlgorithm(); - String childPath = fsmNameProvider.getFullPath((StateGraphItem) childObj); - if (childPath != null) { - Position pos = new Position(); - pos.x = childGa.getX() / (double) (ga.getWidth() - 2 * margin); - pos.y = childGa.getY() / (double) (ga.getHeight() - 2 * margin); - pos.sx = -1; - pos.sy = -1; - subObj2pos.put(childPath, pos); - } - } - } - } - } else if(obj instanceof StateGraph){ - StateGraph graph = (StateGraph)obj; - margin = getMargin(graph); - EObject container = graph.eContainer(); - path = "#init"; - if(container instanceof StateGraphNode) - path = fsmNameProvider.getFullPath((StateGraphNode)container) + path; - initialPointObj.put(path, graph); - } - if(path != null){ - Position pos = new Position(); - pos.x = ga.getX() / width; - pos.y = ga.getY() / height; - pos.sx = (ga.getWidth() - 2*margin) / width; - pos.sy = (ga.getHeight()- 2*margin) / height; - obj2pos.put(path, pos); - } - - // Entry and Exit Points on State borders are treated by the insertion of the State - } - } - } - - for (Connection conn : diagram.getConnections()) { - EObject obj = linkService.getBusinessObjectForLinkedPictogramElement(conn); - if (obj instanceof Transition) { - ConnectionDecorator cd = conn.getConnectionDecorators().get(1); - if (cd.getGraphicsAlgorithm() instanceof Text) { - Transition trans = (Transition) obj; - StateGraph sg = tree.getContext(trans).getStateGraph(); - - // graph size - PosAndSize sz = sg2sz.get(fsmNameProvider.getFullPath(sg)); - ArrayList<Position> points = new ArrayList<Position>(); - trans2points.put(fsmNameProvider.getFullPath((Transition) obj), points); - - // label position - Position pos = new Position(); - pos.x = cd.getGraphicsAlgorithm().getX() / ((double)sz.getWidth()); - pos.y = cd.getGraphicsAlgorithm().getY() / ((double)sz.getHeight()); - points.add(pos); - - if (conn instanceof FreeFormConnection) { - for (Point bp : ((FreeFormConnection) conn).getBendpoints()) { - pos = new Position(); - pos.x = (bp.getX() - sz.getX()) / ((double)sz.getWidth()); - pos.y = (bp.getY() - sz.getY()) / ((double)sz.getHeight()); - points.add(pos); - } - } - } - - } - } - - // recursion - mapPositions(mc.getBase(), injector); - } - - private int getMargin(StateGraphNode node) { - if (node instanceof State) - return StateSupport.MARGIN; - else if (node instanceof TrPoint) - return TrPointSupport.MARGIN; - - return 0; - } - - private int getMargin(StateGraph graph) { - return 0; - } - - public StateGraph getInitialPoint(StateGraph graph){ - EObject container = graph.eContainer(); - String path = "#init"; - if(container instanceof StateGraphNode) - path = FSMSupportUtil.getInstance().getFSMNameProvider().getFullPath((StateGraphNode)container) + path; - return initialPointObj.get(path); - } - - /* (non-Javadoc) - * @see org.eclipse.etrice.ui.behavior.support.IPositionProvider#getGraphSize(org.eclipse.etrice.core.room.StateGraph) - */ - @Override - public PosAndSize getGraphPosAndSize(StateGraph sg) { - return sg2sz.get(FSMSupportUtil.getInstance().getFSMNameProvider().getFullPath(sg)); - } - - @Override - public double[] getSubPosition(StateGraphNode subNode) { - Position pos = subObj2pos.get(FSMSupportUtil.getInstance().getFSMNameProvider().getFullPath(subNode)); - if (pos==null) - return null; - - return new double[]{pos.x, pos.y}; - } -} diff --git a/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/provider/BaseDiagramProvider.java b/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/provider/BaseDiagramProvider.java index b66cfeb7e..6aac43ccb 100644 --- a/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/provider/BaseDiagramProvider.java +++ b/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/provider/BaseDiagramProvider.java @@ -19,6 +19,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.function.BiConsumer; +import java.util.function.Consumer; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; @@ -26,7 +28,10 @@ import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.etrice.core.fsm.fSM.ModelComponent; +import org.eclipse.etrice.core.fsm.fSM.StateGraph; +import org.eclipse.etrice.core.fsm.util.FSMHelpers; import org.eclipse.etrice.ui.behavior.fsm.editor.AbstractFSMDiagramTypeProvider; +import org.eclipse.etrice.ui.behavior.fsm.support.util.FSMSupportUtil; import org.eclipse.etrice.ui.common.base.support.DiagramAccessBase; import org.eclipse.graphiti.mm.pictograms.Diagram; import org.eclipse.graphiti.mm.pictograms.PictogramElement; @@ -37,10 +42,8 @@ import org.eclipse.xtext.xbase.lib.CollectionLiterals; import org.eclipse.xtext.xbase.lib.Functions.Function1; import org.eclipse.xtext.xbase.lib.IterableExtensions; import org.eclipse.xtext.xbase.lib.ListExtensions; -import org.eclipse.xtext.xbase.lib.MapExtensions; import org.eclipse.xtext.xbase.lib.ObjectExtensions; import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure2; /** * Provides the {@linkplain PictogramElement} objects of the base class diagram. @@ -52,6 +55,8 @@ import org.eclipse.xtext.xbase.lib.Procedures.Procedure2; public class BaseDiagramProvider { private final Multimap<EObject, PictogramElement> baseDiagramBusinessObjs = ArrayListMultimap.<EObject, PictogramElement>create(); + private final FSMHelpers fsmHelpers = FSMSupportUtil.getInstance().getFSMHelpers(); + public BaseDiagramProvider(final AbstractFSMDiagramTypeProvider diagramTypeProvider) { Injector _injector = diagramTypeProvider.getInjector(); final DiagramAccessBase diagramAccess = _injector.<DiagramAccessBase>getInstance(DiagramAccessBase.class); @@ -63,60 +68,57 @@ public class BaseDiagramProvider { Resource _eResource = _diagram_1.eResource(); final ResourceSet rs = _eResource.getResourceSet(); ArrayList<ModelComponent> _newArrayList = CollectionLiterals.<ModelComponent>newArrayList(); - final Procedure1<ArrayList<ModelComponent>> _function = new Procedure1<ArrayList<ModelComponent>>() { - @Override - public void apply(final ArrayList<ModelComponent> it) { - ModelComponent base = mc.getBase(); - while (((base != null) && it.add(base))) { - ModelComponent _base = base.getBase(); - base = _base; - } + final Procedure1<ArrayList<ModelComponent>> _function = (ArrayList<ModelComponent> it) -> { + ModelComponent base = mc.getBase(); + while (((base != null) && it.add(base))) { + ModelComponent _base = base.getBase(); + base = _base; } }; final ArrayList<ModelComponent> baseClasses = ObjectExtensions.<ArrayList<ModelComponent>>operator_doubleArrow(_newArrayList, _function); List<ModelComponent> _reverseView = ListExtensions.<ModelComponent>reverseView(baseClasses); - final Procedure1<ModelComponent> _function_1 = new Procedure1<ModelComponent>() { - @Override - public void apply(final ModelComponent base) { - final Diagram baseDiagram = diagramAccess.getDiagram(base, rs); - boolean _notEquals = (!Objects.equal(baseDiagram, null)); - if (_notEquals) { - Map<EObject, Collection<EStructuralFeature.Setting>> _find = EcoreUtil.ExternalCrossReferencer.find(baseDiagram); - final Procedure2<EObject, Collection<EStructuralFeature.Setting>> _function = new Procedure2<EObject, Collection<EStructuralFeature.Setting>>() { - @Override - public void apply(final EObject targetEObj, final Collection<EStructuralFeature.Setting> eFeatureSetting) { - final Function1<EStructuralFeature.Setting, EObject> _function = new Function1<EStructuralFeature.Setting, EObject>() { - @Override - public EObject apply(final EStructuralFeature.Setting it) { - return it.getEObject(); - } - }; - Iterable<EObject> _map = IterableExtensions.<EStructuralFeature.Setting, EObject>map(eFeatureSetting, _function); - Iterable<PictogramLink> _filter = Iterables.<PictogramLink>filter(_map, PictogramLink.class); - final Function1<PictogramLink, PictogramElement> _function_1 = new Function1<PictogramLink, PictogramElement>() { - @Override - public PictogramElement apply(final PictogramLink it) { - return it.getPictogramElement(); - } - }; - Iterable<PictogramElement> _map_1 = IterableExtensions.<PictogramLink, PictogramElement>map(_filter, _function_1); - final Procedure1<PictogramElement> _function_2 = new Procedure1<PictogramElement>() { - @Override - public void apply(final PictogramElement pe) { - BaseDiagramProvider.this.baseDiagramBusinessObjs.put(targetEObj, pe); - } - }; - IterableExtensions.<PictogramElement>forEach(_map_1, _function_2); - } + final Consumer<ModelComponent> _function_1 = (ModelComponent base) -> { + final Diagram baseDiagram = diagramAccess.getDiagram(base, rs); + boolean _notEquals = (!Objects.equal(baseDiagram, null)); + if (_notEquals) { + Map<EObject, Collection<EStructuralFeature.Setting>> _find = EcoreUtil.ExternalCrossReferencer.find(baseDiagram); + final BiConsumer<EObject, Collection<EStructuralFeature.Setting>> _function_2 = (EObject targetEObj, Collection<EStructuralFeature.Setting> eFeatureSetting) -> { + final Function1<EStructuralFeature.Setting, EObject> _function_3 = (EStructuralFeature.Setting it) -> { + return it.getEObject(); }; - MapExtensions.<EObject, Collection<EStructuralFeature.Setting>>forEach(_find, _function); - EList<Resource> _resources = rs.getResources(); - Resource _eResource = baseDiagram.eResource(); - _resources.remove(_eResource); - } + Iterable<EObject> _map = IterableExtensions.<EStructuralFeature.Setting, EObject>map(eFeatureSetting, _function_3); + Iterable<PictogramLink> _filter = Iterables.<PictogramLink>filter(_map, PictogramLink.class); + final Function1<PictogramLink, PictogramElement> _function_4 = (PictogramLink it) -> { + return it.getPictogramElement(); + }; + Iterable<PictogramElement> _map_1 = IterableExtensions.<PictogramLink, PictogramElement>map(_filter, _function_4); + final Consumer<PictogramElement> _function_5 = (PictogramElement pe) -> { + this.put(mc, targetEObj, pe); + }; + _map_1.forEach(_function_5); + }; + _find.forEach(_function_2); + EList<Resource> _resources = rs.getResources(); + Resource _eResource_1 = baseDiagram.eResource(); + _resources.remove(_eResource_1); } }; - IterableExtensions.<ModelComponent>forEach(_reverseView, _function_1); + _reverseView.forEach(_function_1); + } + + private boolean put(final ModelComponent mc, final EObject obj, final PictogramElement value) { + boolean _xblockexpression = false; + { + if ((obj instanceof StateGraph)) { + boolean _isTopLevel = this.fsmHelpers.isTopLevel(((StateGraph)obj)); + if (_isTopLevel) { + StateGraph _stateMachine = mc.getStateMachine(); + this.baseDiagramBusinessObjs.put(_stateMachine, value); + } + } + _xblockexpression = this.baseDiagramBusinessObjs.put(obj, value); + } + return _xblockexpression; } public Collection<PictogramElement> getPictograms(final EObject roomObj) { diff --git a/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/provider/GenModelProvider.java b/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/provider/GenModelProvider.java index a1364f618..7f1520392 100644 --- a/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/provider/GenModelProvider.java +++ b/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/provider/GenModelProvider.java @@ -56,45 +56,39 @@ public class GenModelProvider { ILinkService _linkService = Graphiti.getLinkService(); Diagram _diagram = this.fsmDiagramProvider.getDiagram(); EObject _businessObjectForLinkedPictogramElement = _linkService.getBusinessObjectForLinkedPictogramElement(_diagram); - final Procedure1<EObject> _function = new Procedure1<EObject>() { - @Override - public void apply(final EObject it) { - GraphContainer _xifexpression = null; - if ((it instanceof ModelComponent)) { - _xifexpression = GenModelProvider.this.builder.createTransformedModel(((ModelComponent)it)); - } else { - _xifexpression = null; - } - GenModelProvider.this.modelInstance = _xifexpression; + final Procedure1<EObject> _function = (EObject it) -> { + GraphContainer _xifexpression = null; + if ((it instanceof ModelComponent)) { + _xifexpression = this.builder.createTransformedModel(((ModelComponent)it)); + } else { + _xifexpression = null; } + this.modelInstance = _xifexpression; }; ObjectExtensions.<EObject>operator_doubleArrow(_businessObjectForLinkedPictogramElement, _function); boolean _notEquals = (!Objects.equal(this.modelInstance, null)); if (_notEquals) { this.graphMap.clear(); TreeIterator<EObject> _eAllContents = this.modelInstance.eAllContents(); - final Procedure1<EObject> _function_1 = new Procedure1<EObject>() { - @Override - public void apply(final EObject it) { - boolean _matched = false; - if (it instanceof Graph) { + final Procedure1<EObject> _function_1 = (EObject it) -> { + boolean _matched = false; + if (it instanceof Graph) { + _matched=true; + StateGraph _stateGraph = ((Graph)it).getStateGraph(); + this.graphMap.put(_stateGraph, ((FSMGenElement)it)); + } + if (!_matched) { + if (it instanceof Node) { _matched=true; - StateGraph _stateGraph = ((Graph)it).getStateGraph(); - GenModelProvider.this.graphMap.put(_stateGraph, ((FSMGenElement)it)); - } - if (!_matched) { - if (it instanceof Node) { - _matched=true; - StateGraphNode _stateGraphNode = ((Node)it).getStateGraphNode(); - GenModelProvider.this.graphMap.put(_stateGraphNode, ((FSMGenElement)it)); - } + StateGraphNode _stateGraphNode = ((Node)it).getStateGraphNode(); + this.graphMap.put(_stateGraphNode, ((FSMGenElement)it)); } - if (!_matched) { - if (it instanceof Link) { - _matched=true; - TransitionBase _transition = ((Link)it).getTransition(); - GenModelProvider.this.graphMap.put(_transition, ((FSMGenElement)it)); - } + } + if (!_matched) { + if (it instanceof Link) { + _matched=true; + TransitionBase _transition = ((Link)it).getTransition(); + this.graphMap.put(_transition, ((FSMGenElement)it)); } } }; diff --git a/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/BaseDiagramPositionProvider.java b/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/BaseDiagramPositionProvider.java index 35a44cfc1..6d4755f44 100644 --- a/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/BaseDiagramPositionProvider.java +++ b/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/BaseDiagramPositionProvider.java @@ -118,12 +118,9 @@ public class BaseDiagramPositionProvider implements IPositionProvider { IPositionProvider.PosAndSize _xblockexpression = null; { Collection<PictogramElement> _pictograms = this.baseDiagram.getPictograms(sg); - final Function1<PictogramElement, Boolean> _function = new Function1<PictogramElement, Boolean>() { - @Override - public Boolean apply(final PictogramElement it) { - EObject _parentBo = BaseDiagramPositionProvider.this.getParentBo(it); - return Boolean.valueOf((_parentBo instanceof ModelComponent)); - } + final Function1<PictogramElement, Boolean> _function = (PictogramElement it) -> { + EObject _parentBo = this.getParentBo(it); + return Boolean.valueOf((_parentBo instanceof ModelComponent)); }; final PictogramElement pe = IterableExtensions.<PictogramElement>findFirst(_pictograms, _function); IPositionProvider.PosAndSize _xifexpression = null; @@ -164,59 +161,50 @@ public class BaseDiagramPositionProvider implements IPositionProvider { } final PictogramElement pe = _xifexpression; ArrayList<IPositionProvider.Pos> _newArrayList = CollectionLiterals.<IPositionProvider.Pos>newArrayList(); - final Procedure1<ArrayList<IPositionProvider.Pos>> _function = new Procedure1<ArrayList<IPositionProvider.Pos>>() { - @Override - public void apply(final ArrayList<IPositionProvider.Pos> pointList) { - if ((pe instanceof Connection)) { - EObject _eContainer = trans.eContainer(); - final IPositionProvider.PosAndSize graphPosAndSize = BaseDiagramPositionProvider.this.getGraphPosAndSize(((StateGraph) _eContainer)); - EList<ConnectionDecorator> _connectionDecorators = ((Connection)pe).getConnectionDecorators(); - final Function1<ConnectionDecorator, GraphicsAlgorithm> _function = new Function1<ConnectionDecorator, GraphicsAlgorithm>() { - @Override - public GraphicsAlgorithm apply(final ConnectionDecorator it) { - return it.getGraphicsAlgorithm(); - } - }; - List<GraphicsAlgorithm> _map = ListExtensions.<ConnectionDecorator, GraphicsAlgorithm>map(_connectionDecorators, _function); - Iterable<Text> _filter = Iterables.<Text>filter(_map, Text.class); - final Text text = IterableExtensions.<Text>head(_filter); - boolean _notEquals = (!Objects.equal(text, null)); - if (_notEquals) { - int _x = text.getX(); - int _width = graphPosAndSize.getWidth(); - double _divide = (_x / ((double) _width)); - double _multiply = (_divide * BaseDiagramPositionProvider.this.sx); - int _y = text.getY(); - int _height = graphPosAndSize.getHeight(); - double _divide_1 = (_y / ((double) _height)); - double _multiply_1 = (_divide_1 * BaseDiagramPositionProvider.this.sy); - IPositionProvider.Pos _pos = new IPositionProvider.Pos( - ((int) _multiply), - ((int) _multiply_1)); - pointList.add(_pos); - if ((pe instanceof FreeFormConnection)) { - EList<Point> _bendpoints = ((FreeFormConnection)pe).getBendpoints(); - final Function1<Point, IPositionProvider.Pos> _function_1 = new Function1<Point, IPositionProvider.Pos>() { - @Override - public IPositionProvider.Pos apply(final Point it) { - int _x = text.getX(); - int _width = graphPosAndSize.getWidth(); - double _divide = (_x / ((double) _width)); - double _multiply = (_divide * BaseDiagramPositionProvider.this.sx); - double _plus = (_multiply + BaseDiagramPositionProvider.this.x); - int _y = text.getY(); - int _height = graphPosAndSize.getHeight(); - double _divide_1 = (_y / ((double) _height)); - double _multiply_1 = (_divide_1 * BaseDiagramPositionProvider.this.sy); - double _plus_1 = (_multiply_1 + BaseDiagramPositionProvider.this.y); - return new IPositionProvider.Pos( - ((int) _plus), - ((int) _plus_1)); - } - }; - List<IPositionProvider.Pos> _map_1 = ListExtensions.<Point, IPositionProvider.Pos>map(_bendpoints, _function_1); - Iterables.<IPositionProvider.Pos>addAll(pointList, _map_1); - } + final Procedure1<ArrayList<IPositionProvider.Pos>> _function = (ArrayList<IPositionProvider.Pos> pointList) -> { + if ((pe instanceof Connection)) { + EObject _eContainer = trans.eContainer(); + final IPositionProvider.PosAndSize graphPosAndSize = this.getGraphPosAndSize(((StateGraph) _eContainer)); + EList<ConnectionDecorator> _connectionDecorators = ((Connection)pe).getConnectionDecorators(); + final Function1<ConnectionDecorator, GraphicsAlgorithm> _function_1 = (ConnectionDecorator it) -> { + return it.getGraphicsAlgorithm(); + }; + List<GraphicsAlgorithm> _map = ListExtensions.<ConnectionDecorator, GraphicsAlgorithm>map(_connectionDecorators, _function_1); + Iterable<Text> _filter = Iterables.<Text>filter(_map, Text.class); + final Text text = IterableExtensions.<Text>head(_filter); + boolean _notEquals = (!Objects.equal(text, null)); + if (_notEquals) { + int _x = text.getX(); + int _width = graphPosAndSize.getWidth(); + double _divide = (_x / ((double) _width)); + double _multiply = (_divide * this.sx); + int _y = text.getY(); + int _height = graphPosAndSize.getHeight(); + double _divide_1 = (_y / ((double) _height)); + double _multiply_1 = (_divide_1 * this.sy); + IPositionProvider.Pos _pos = new IPositionProvider.Pos( + ((int) _multiply), + ((int) _multiply_1)); + pointList.add(_pos); + if ((pe instanceof FreeFormConnection)) { + EList<Point> _bendpoints = ((FreeFormConnection)pe).getBendpoints(); + final Function1<Point, IPositionProvider.Pos> _function_2 = (Point it) -> { + int _x_1 = text.getX(); + int _width_1 = graphPosAndSize.getWidth(); + double _divide_2 = (_x_1 / ((double) _width_1)); + double _multiply_2 = (_divide_2 * this.sx); + double _plus = (_multiply_2 + this.x); + int _y_1 = text.getY(); + int _height_1 = graphPosAndSize.getHeight(); + double _divide_3 = (_y_1 / ((double) _height_1)); + double _multiply_3 = (_divide_3 * this.sy); + double _plus_1 = (_multiply_3 + this.y); + return new IPositionProvider.Pos( + ((int) _plus), + ((int) _plus_1)); + }; + List<IPositionProvider.Pos> _map_1 = ListExtensions.<Point, IPositionProvider.Pos>map(_bendpoints, _function_2); + Iterables.<IPositionProvider.Pos>addAll(pointList, _map_1); } } } @@ -228,25 +216,19 @@ public class BaseDiagramPositionProvider implements IPositionProvider { @Override public IPositionProvider.PosAndSize getPosition(final StateGraphNode node) { - final Function1<EObject, IPositionProvider.PosAndSize> _function = new Function1<EObject, IPositionProvider.PosAndSize>() { - @Override - public IPositionProvider.PosAndSize apply(final EObject it) { - Collection<PictogramElement> _pictograms = BaseDiagramPositionProvider.this.baseDiagram.getPictograms(it); - final Function1<PictogramElement, Boolean> _function = new Function1<PictogramElement, Boolean>() { - @Override - public Boolean apply(final PictogramElement it) { - EObject _parentBo = BaseDiagramPositionProvider.this.getParentBo(it); - return Boolean.valueOf((_parentBo instanceof StateGraph)); - } - }; - PictogramElement _findFirst = IterableExtensions.<PictogramElement>findFirst(_pictograms, _function); - IPositionProvider.PosAndSize _posAndSize = null; - if (_findFirst!=null) { - int _margin = BaseDiagramPositionProvider.this.getMargin(node); - _posAndSize=BaseDiagramPositionProvider.this.toPosAndSize(_findFirst, _margin); - } - return _posAndSize; + final Function1<EObject, IPositionProvider.PosAndSize> _function = (EObject it) -> { + Collection<PictogramElement> _pictograms = this.baseDiagram.getPictograms(it); + final Function1<PictogramElement, Boolean> _function_1 = (PictogramElement it_1) -> { + EObject _parentBo = this.getParentBo(it_1); + return Boolean.valueOf((_parentBo instanceof StateGraph)); + }; + PictogramElement _findFirst = IterableExtensions.<PictogramElement>findFirst(_pictograms, _function_1); + IPositionProvider.PosAndSize _posAndSize = null; + if (_findFirst!=null) { + int _margin = this.getMargin(node); + _posAndSize=this.toPosAndSize(_findFirst, _margin); } + return _posAndSize; }; final Function1<EObject, IPositionProvider.PosAndSize> getBasePos = _function; IPositionProvider.PosAndSize _xifexpression = null; @@ -288,12 +270,9 @@ public class BaseDiagramPositionProvider implements IPositionProvider { @Override public IPositionProvider.PosAndSize getPosition(final StateGraph graph) { Collection<PictogramElement> _pictograms = this.baseDiagram.getPictograms(graph); - final Function1<PictogramElement, Boolean> _function = new Function1<PictogramElement, Boolean>() { - @Override - public Boolean apply(final PictogramElement it) { - EObject _parentBo = BaseDiagramPositionProvider.this.getParentBo(it); - return Boolean.valueOf((_parentBo instanceof StateGraph)); - } + final Function1<PictogramElement, Boolean> _function = (PictogramElement it) -> { + EObject _parentBo = this.getParentBo(it); + return Boolean.valueOf((_parentBo instanceof StateGraph)); }; PictogramElement _findFirst = IterableExtensions.<PictogramElement>findFirst(_pictograms, _function); IPositionProvider.PosAndSize _posAndSize = null; @@ -306,18 +285,15 @@ public class BaseDiagramPositionProvider implements IPositionProvider { @Override public <T extends StateGraphNode> List<IPositionProvider.PosAndSize> getPositions(final List<T> items) { - final Function1<T, IPositionProvider.PosAndSize> _function = new Function1<T, IPositionProvider.PosAndSize>() { - @Override - public IPositionProvider.PosAndSize apply(final T it) { - Collection<PictogramElement> _pictograms = BaseDiagramPositionProvider.this.baseDiagram.getPictograms(it); - PictogramElement _head = IterableExtensions.<PictogramElement>head(_pictograms); - IPositionProvider.PosAndSize _posAndSize = null; - if (_head!=null) { - int _margin = BaseDiagramPositionProvider.this.getMargin(it); - _posAndSize=BaseDiagramPositionProvider.this.toPosAndSize(_head, _margin); - } - return _posAndSize; + final Function1<T, IPositionProvider.PosAndSize> _function = (T it) -> { + Collection<PictogramElement> _pictograms = this.baseDiagram.getPictograms(it); + PictogramElement _head = IterableExtensions.<PictogramElement>head(_pictograms); + IPositionProvider.PosAndSize _posAndSize = null; + if (_head!=null) { + int _margin = this.getMargin(it); + _posAndSize=this.toPosAndSize(_head, _margin); } + return _posAndSize; }; return ListExtensions.<T, IPositionProvider.PosAndSize>map(items, _function); } @@ -325,12 +301,9 @@ public class BaseDiagramPositionProvider implements IPositionProvider { @Override public double[] getSubPosition(final StateGraphNode subNode) { Collection<PictogramElement> _pictograms = this.baseDiagram.getPictograms(subNode); - final Function1<PictogramElement, Boolean> _function = new Function1<PictogramElement, Boolean>() { - @Override - public Boolean apply(final PictogramElement it) { - EObject _parentBo = BaseDiagramPositionProvider.this.getParentBo(it); - return Boolean.valueOf((_parentBo instanceof State)); - } + final Function1<PictogramElement, Boolean> _function = (PictogramElement it) -> { + EObject _parentBo = this.getParentBo(it); + return Boolean.valueOf((_parentBo instanceof State)); }; final PictogramElement pe = IterableExtensions.<PictogramElement>findFirst(_pictograms, _function); boolean _notEquals = (!Objects.equal(pe, null)); diff --git a/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/GenModelStateGraphContext.java b/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/GenModelStateGraphContext.java index c79d40e8b..f59b4a64d 100644 --- a/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/GenModelStateGraphContext.java +++ b/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/GenModelStateGraphContext.java @@ -67,11 +67,8 @@ public class GenModelStateGraphContext implements IStateGraphContext { @Override public List<ChoicePoint> getChPoints() { EList<Node> _nodes = this.graph.getNodes(); - final Function1<Node, StateGraphNode> _function = new Function1<Node, StateGraphNode>() { - @Override - public StateGraphNode apply(final Node it) { - return it.getStateGraphNode(); - } + final Function1<Node, StateGraphNode> _function = (Node it) -> { + return it.getStateGraphNode(); }; List<StateGraphNode> _map = ListExtensions.<Node, StateGraphNode>map(_nodes, _function); Iterable<ChoicePoint> _filter = Iterables.<ChoicePoint>filter(_map, ChoicePoint.class); @@ -81,21 +78,15 @@ public class GenModelStateGraphContext implements IStateGraphContext { @Override public List<IStateGraphContext> getChildren() { EList<Node> _nodes = this.graph.getNodes(); - final Function1<Node, Boolean> _function = new Function1<Node, Boolean>() { - @Override - public Boolean apply(final Node it) { - Graph _subgraph = it.getSubgraph(); - return Boolean.valueOf((!Objects.equal(_subgraph, null))); - } + final Function1<Node, Boolean> _function = (Node it) -> { + Graph _subgraph = it.getSubgraph(); + return Boolean.valueOf((!Objects.equal(_subgraph, null))); }; Iterable<Node> _filter = IterableExtensions.<Node>filter(_nodes, _function); - final Function1<Node, IStateGraphContext> _function_1 = new Function1<Node, IStateGraphContext>() { - @Override - public IStateGraphContext apply(final Node it) { - Graph _subgraph = it.getSubgraph(); - GenModelStateGraphContext _genModelStateGraphContext = new GenModelStateGraphContext(_subgraph, GenModelStateGraphContext.this); - return ((IStateGraphContext) _genModelStateGraphContext); - } + final Function1<Node, IStateGraphContext> _function_1 = (Node it) -> { + Graph _subgraph = it.getSubgraph(); + GenModelStateGraphContext _genModelStateGraphContext = new GenModelStateGraphContext(_subgraph, this); + return ((IStateGraphContext) _genModelStateGraphContext); }; Iterable<IStateGraphContext> _map = IterableExtensions.<Node, IStateGraphContext>map(_filter, _function_1); return IterableExtensions.<IStateGraphContext>toList(_map); @@ -105,11 +96,8 @@ public class GenModelStateGraphContext implements IStateGraphContext { public StateGraph getInitialPoint() { StateGraph _xifexpression = null; EList<Link> _links = this.graph.getLinks(); - final Function1<Link, TransitionBase> _function = new Function1<Link, TransitionBase>() { - @Override - public TransitionBase apply(final Link it) { - return it.getTransition(); - } + final Function1<Link, TransitionBase> _function = (Link it) -> { + return it.getTransition(); }; List<TransitionBase> _map = ListExtensions.<Link, TransitionBase>map(_links, _function); Iterable<InitialTransition> _filter = Iterables.<InitialTransition>filter(_map, InitialTransition.class); @@ -141,11 +129,8 @@ public class GenModelStateGraphContext implements IStateGraphContext { @Override public List<State> getStates() { EList<Node> _nodes = this.graph.getNodes(); - final Function1<Node, StateGraphNode> _function = new Function1<Node, StateGraphNode>() { - @Override - public StateGraphNode apply(final Node it) { - return it.getStateGraphNode(); - } + final Function1<Node, StateGraphNode> _function = (Node it) -> { + return it.getStateGraphNode(); }; List<StateGraphNode> _map = ListExtensions.<Node, StateGraphNode>map(_nodes, _function); Iterable<State> _filter = Iterables.<State>filter(_map, State.class); @@ -155,11 +140,8 @@ public class GenModelStateGraphContext implements IStateGraphContext { @Override public List<TrPoint> getTrPoints() { EList<Node> _nodes = this.graph.getNodes(); - final Function1<Node, StateGraphNode> _function = new Function1<Node, StateGraphNode>() { - @Override - public StateGraphNode apply(final Node it) { - return it.getStateGraphNode(); - } + final Function1<Node, StateGraphNode> _function = (Node it) -> { + return it.getStateGraphNode(); }; List<StateGraphNode> _map = ListExtensions.<Node, StateGraphNode>map(_nodes, _function); Iterable<TrPoint> _filter = Iterables.<TrPoint>filter(_map, TrPoint.class); @@ -169,11 +151,8 @@ public class GenModelStateGraphContext implements IStateGraphContext { @Override public List<Transition> getTransitions() { EList<Link> _links = this.graph.getLinks(); - final Function1<Link, TransitionBase> _function = new Function1<Link, TransitionBase>() { - @Override - public TransitionBase apply(final Link it) { - return it.getTransition(); - } + final Function1<Link, TransitionBase> _function = (Link it) -> { + return it.getTransition(); }; List<TransitionBase> _map = ListExtensions.<Link, TransitionBase>map(_links, _function); Iterable<Transition> _filter = Iterables.<Transition>filter(_map, Transition.class); |